Class: Selenium::WebDriver::Support::Color
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Support::Color
- Defined in:
- rb/lib/selenium/webdriver/support/color.rb
Constant Summary
- RGB_PATTERN =
/^\s*rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)\s*$/
- RGB_PCT_PATTERN =
/^\s*rgb\(\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)%\s*\)\s*$/
- RGBA_PATTERN =
/^\s*rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0\.\d+)\s*\)\s*$/
- RGBA_PCT_PATTERN =
/^\s*rgba\(\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,\s*(0|1|0\.\d+)\s*\)\s*$/
- HEX_PATTERN =
pXDigit or h only works on Ruby 1.9
/#([A-Fa-f0-9]{2})([A-Fa-f0-9]{2})([A-Fa-f0-9]{2})/
- HEX3_PATTERN =
pXDigit or h only works on Ruby 1.9
/#([A-Fa-f0-9])([A-Fa-f0-9])([A-Fa-f0-9])/
- HSL_PATTERN =
/^\s*hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)\s*$/
- HSLA_PATTERN =
/^\s*hsla\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*,\s*(0|1|0\.\d+)\s*\)\s*$/
Instance Attribute Summary (collapse)
-
- (Object) alpha
readonly
Returns the value of attribute alpha.
-
- (Object) blue
readonly
Returns the value of attribute blue.
-
- (Object) green
readonly
Returns the value of attribute green.
-
- (Object) red
readonly
Returns the value of attribute red.
Class Method Summary (collapse)
Instance Method Summary (collapse)
- - (Object) ==(other) (also: #eql?)
- - (Object) hash
- - (Object) hex
-
- (Color) initialize(red, green, blue, alpha = 1)
constructor
A new instance of Color.
- - (Object) rgb
- - (Object) rgba
Constructor Details
- (Color) initialize(red, green, blue, alpha = 1)
Returns a new instance of Color
75 76 77 78 79 80 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 75 def initialize(red, green, blue, alpha = 1) @red = Integer(red) @green = Integer(green) @blue = Integer(blue) @alpha = Float(alpha) end |
Instance Attribute Details
- (Object) alpha (readonly)
Returns the value of attribute alpha
14 15 16 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 14 def alpha @alpha end |
- (Object) blue (readonly)
Returns the value of attribute blue
14 15 16 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 14 def blue @blue end |
- (Object) green (readonly)
Returns the value of attribute green
14 15 16 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 14 def green @green end |
- (Object) red (readonly)
Returns the value of attribute red
14 15 16 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 14 def red @red end |
Class Method Details
+ (Object) from_hsl(h, s, l, a)
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 37 def self.from_hsl(h, s, l, a) h = Float(h) / 360 s = Float(s) / 100 l = Float(l) / 100 a = Float(a || 1) if s == 0 r = l g = r b = r else luminocity2 = (l < 0.5) ? l * (1 + s) : l + s - l * s luminocity1 = 2 * l - luminocity2 hue_to_rgb = lambda do |lum1, lum2, hue| hue += 1 if hue < 0.0 hue -= 1 if hue > 1.0 if hue < 1.0 / 6.0 (lum1 + (lum2 - lum1) * 6.0 * hue) elsif hue < 1.0 / 2.0 lum2 elsif hue < 2.0 / 3.0 lum1 + (lum2 - lum1) * ((2.0 / 3.0) - hue) * 6.0 else lum1 end end r = hue_to_rgb.call(luminocity1, luminocity2, h + 1.0 / 3.0) g = hue_to_rgb.call(luminocity1, luminocity2, h) b = hue_to_rgb.call(luminocity1, luminocity2, h - 1.0 / 3.0) end new r * 256, g * 256, b * 256, a end |
+ (Object) from_string(str)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 16 def self.from_string(str) case str when RGB_PATTERN new $1, $2, $3 when RGB_PCT_PATTERN new(*[$1, $2, $3].map { |e| Float(e) / 100 * 255 }) when RGBA_PATTERN new $1, $2, $3, $4 when RGBA_PCT_PATTERN new(*[$1, $2, $3].map { |e| Float(e) / 100 * 255 } << $4) when HEX_PATTERN new(*[$1, $2, $3].map { |e| e.to_i(16) }) when HEX3_PATTERN new(*[$1, $2, $3].map { |e| (e * 2).to_i(16) }) when HSL_PATTERN, HSLA_PATTERN from_hsl($1, $2, $3, $4) else raise ArgumentError, "could not convert #{str.inspect} into color" end end |
Instance Method Details
- (Object) ==(other) Also known as: eql?
82 83 84 85 86 87 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 82 def ==(other) return true if equal?(other) return false unless other.kind_of?(self.class) [red, green, blue, alpha] == [other.red, other.green, other.blue, other.alpha] end |
- (Object) hash
90 91 92 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 90 def hash [red, green, blue, alpha].hash ^ self.class.hash end |
- (Object) hex
103 104 105 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 103 def hex "#%02x%02x%02x" % [red, green, blue] end |
- (Object) rgb
94 95 96 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 94 def rgb "rgb(#{red}, #{green}, #{blue})" end |
- (Object) rgba
98 99 100 101 |
# File 'rb/lib/selenium/webdriver/support/color.rb', line 98 def rgba a = alpha == 1 ? '1' : alpha "rgba(#{red}, #{green}, #{blue}, #{a})" end |