### Home Classes Methods

### In Files

- lib/selenium/webdriver/support/color.rb

### Parent

Object

### Methods

- ::from_hsl
- ::from_string
- ::new
- #==
- #eql?
- #hash
- #hex
- #rgb
- #rgba

### Class/Module Index

Quicksearch

- Selenium
- Selenium::Client
- Selenium::Client::Base
- Selenium::Client::CommandError
- Selenium::Client::Driver
- Selenium::Client::Extensions
- Selenium::Client::GeneratedDriver
- Selenium::Client::Idiomatic
- Selenium::Client::JavascriptExpressionBuilder
- Selenium::Client::JavascriptFrameworks
- Selenium::Client::JavascriptFrameworks::JQuery
- Selenium::Client::JavascriptFrameworks::Prototype
- Selenium::Client::Protocol
- Selenium::Client::ProtocolError
- Selenium::Client::SeleniumHelper
- Selenium::Rake
- Selenium::Rake::MissingJarFileError
- Selenium::Rake::ServerTask
- Selenium::Server
- Selenium::Server::Error
- Selenium::WebDriver
- Selenium::WebDriver::ActionBuilder
- Selenium::WebDriver::Alert
- Selenium::WebDriver::Android
- Selenium::WebDriver::Android::Bridge
- Selenium::WebDriver::BridgeHelper
- Selenium::WebDriver::Chrome
- Selenium::WebDriver::Chrome::Bridge
- Selenium::WebDriver::Chrome::Profile
- Selenium::WebDriver::Chrome::Service
- Selenium::WebDriver::Driver
- Selenium::WebDriver::DriverExtensions
- Selenium::WebDriver::DriverExtensions::HasBrowserConnection
- Selenium::WebDriver::DriverExtensions::HasInputDevices
- Selenium::WebDriver::DriverExtensions::HasLocation
- Selenium::WebDriver::DriverExtensions::HasSessionId
- Selenium::WebDriver::DriverExtensions::HasTouchScreen
- Selenium::WebDriver::DriverExtensions::HasWebStorage
- Selenium::WebDriver::DriverExtensions::Rotatable
- Selenium::WebDriver::DriverExtensions::TakesScreenshot
- Selenium::WebDriver::DriverExtensions::UploadsFiles
- Selenium::WebDriver::Element
- Selenium::WebDriver::Error
- Selenium::WebDriver::Error::ElementNotDisplayedError
- Selenium::WebDriver::Error::ElementNotSelectableError
- Selenium::WebDriver::Error::ElementNotVisibleError
- Selenium::WebDriver::Error::ExpectedError
- Selenium::WebDriver::Error::IMEEngineActivationFailedError
- Selenium::WebDriver::Error::IMENotAvailableError
- Selenium::WebDriver::Error::IndexOutOfBoundsError
- Selenium::WebDriver::Error::InvalidCookieDomainError
- Selenium::WebDriver::Error::InvalidElementCoordinatesError
- Selenium::WebDriver::Error::InvalidElementStateError
- Selenium::WebDriver::Error::InvalidSelectorError
- Selenium::WebDriver::Error::JavascriptError
- Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
- Selenium::WebDriver::Error::NoAlertOpenError
- Selenium::WebDriver::Error::NoAlertPresentError
- Selenium::WebDriver::Error::NoCollectionError
- Selenium::WebDriver::Error::NoScriptResultError
- Selenium::WebDriver::Error::NoStringError
- Selenium::WebDriver::Error::NoStringLengthError
- Selenium::WebDriver::Error::NoStringWrapperError
- Selenium::WebDriver::Error::NoSuchCollectionError
- Selenium::WebDriver::Error::NoSuchDocumentError
- Selenium::WebDriver::Error::NoSuchDriverError
- Selenium::WebDriver::Error::NoSuchElementError
- Selenium::WebDriver::Error::NoSuchFrameError
- Selenium::WebDriver::Error::NoSuchWindowError
- Selenium::WebDriver::Error::NullPointerError
- Selenium::WebDriver::Error::ObsoleteElementError
- Selenium::WebDriver::Error::ScriptTimeOutError
- Selenium::WebDriver::Error::ServerError
- Selenium::WebDriver::Error::StaleElementReferenceError
- Selenium::WebDriver::Error::TimeOutError
- Selenium::WebDriver::Error::UnableToSetCookieError
- Selenium::WebDriver::Error::UnexpectedJavascriptError
- Selenium::WebDriver::Error::UnhandledAlertError
- Selenium::WebDriver::Error::UnhandledError
- Selenium::WebDriver::Error::UnknownCommandError
- Selenium::WebDriver::Error::UnknownError
- Selenium::WebDriver::Error::UnsupportedOperationError
- Selenium::WebDriver::Error::WebDriverError
- Selenium::WebDriver::Error::XPathLookupError
- Selenium::WebDriver::FileReaper
- Selenium::WebDriver::Firefox
- Selenium::WebDriver::Firefox::Binary
- Selenium::WebDriver::Firefox::Bridge
- Selenium::WebDriver::Firefox::Extension
- Selenium::WebDriver::Firefox::Launcher
- Selenium::WebDriver::Firefox::Profile
- Selenium::WebDriver::Firefox::ProfilesIni
- Selenium::WebDriver::Firefox::SocketLock
- Selenium::WebDriver::Firefox::Util
- Selenium::WebDriver::HTML5
- Selenium::WebDriver::HTML5::LocalStorage
- Selenium::WebDriver::HTML5::SessionStorage
- Selenium::WebDriver::HTML5::SharedWebStorage
- Selenium::WebDriver::IE
- Selenium::WebDriver::IE::Bridge
- Selenium::WebDriver::IE::Server
- Selenium::WebDriver::IPhone
- Selenium::WebDriver::IPhone::Bridge
- Selenium::WebDriver::JsonHelper
- Selenium::WebDriver::Keyboard
- Selenium::WebDriver::Keys
- Selenium::WebDriver::LogEntry
- Selenium::WebDriver::Mouse
- Selenium::WebDriver::Navigation
- Selenium::WebDriver::Opera
- Selenium::WebDriver::Opera::Bridge
- Selenium::WebDriver::Opera::Service
- Selenium::WebDriver::Options
- Selenium::WebDriver::PhantomJS
- Selenium::WebDriver::PhantomJS::Bridge
- Selenium::WebDriver::PhantomJS::Service
- Selenium::WebDriver::Platform
- Selenium::WebDriver::PortProber
- Selenium::WebDriver::ProfileHelper
- Selenium::WebDriver::ProfileHelper::ClassMethods
- Selenium::WebDriver::Proxy
- Selenium::WebDriver::Remote
- Selenium::WebDriver::Remote::Bridge
- Selenium::WebDriver::Remote::Capabilities
- Selenium::WebDriver::Remote::Http
- Selenium::WebDriver::Remote::Http::Common
- Selenium::WebDriver::Remote::Http::Curb
- Selenium::WebDriver::Remote::Http::Default
- Selenium::WebDriver::Remote::Http::Persistent
- Selenium::WebDriver::Remote::Response
- Selenium::WebDriver::Safari
- Selenium::WebDriver::Safari::Bridge
- Selenium::WebDriver::Safari::Browser
- Selenium::WebDriver::Safari::Extension
- Selenium::WebDriver::Safari::Server
- Selenium::WebDriver::SearchContext
- Selenium::WebDriver::SocketPoller
- Selenium::WebDriver::Support
- Selenium::WebDriver::Support::AbstractEventListener
- Selenium::WebDriver::Support::BlockEventListener
- Selenium::WebDriver::Support::Color
- Selenium::WebDriver::Support::EventFiringBridge
- Selenium::WebDriver::Support::Select
- Selenium::WebDriver::Support::Select::Escaper
- Selenium::WebDriver::TargetLocator
- Selenium::WebDriver::Timeouts
- Selenium::WebDriver::TouchActionBuilder
- Selenium::WebDriver::TouchScreen
- Selenium::WebDriver::Wait
- Selenium::WebDriver::Window
- Selenium::WebDriver::Zipper
- Base64
- Dir
- SocketError
- String

No matching classes.

# Selenium::WebDriver::Support::Color

### Constants

HEX3_PATTERN
HEX_PATTERN
HSLA_PATTERN
HSL_PATTERN
RGBA_PATTERN
RGBA_PCT_PATTERN
RGB_PATTERN
RGB_PCT_PATTERN

### Attributes

alpha[R]
blue[R]
green[R]
red[R]

### Public Class Methods

from_hsl(h, s, l, a) click to toggle source

    # File 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

from_string(str) click to toggle source

    # File 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

new(red, green, blue, alpha = 1) click to toggle source

    # File 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

### Public Instance Methods

==(other) click to toggle source

    # File 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

Also aliased as: eql?
eql?(other) click to toggle source
Alias for: ==
hash() click to toggle source

    # File lib/selenium/webdriver/support/color.rb, line 90
    def hash
      [red, green, blue, alpha].hash ^ self.class.hash
    end

hex() click to toggle source

    # File lib/selenium/webdriver/support/color.rb, line 103
    def hex
      "#%02x%02x%02x" % [red, green, blue]
    end

rgb() click to toggle source

    # File lib/selenium/webdriver/support/color.rb, line 94
    def rgb
      "rgb(#{red}, #{green}, #{blue})"
    end

rgba() click to toggle source

    # File lib/selenium/webdriver/support/color.rb, line 98
    def rgba
      a = alpha == 1 ? '1' : alpha
      "rgba(#{red}, #{green}, #{blue}, #{a})"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.