Sha256: dd5f170d5f6154e835e8f1fac8147532258c8232f6c66bb96d4e2b054aa6288e

Contents?: true

Size: 1020 Bytes

Versions: 5

Compression:

Stored size: 1020 Bytes

Contents

require_relative 'colors/color'
require_relative 'colors/hue_saturation'
require_relative 'colors/color_temperature'
require_relative 'colors/xy'
require_relative 'colors/rgb'

module Hue
  module Colors

    def self.parse(*args)
      case args.size
      when 1
        Colors::ColorTemperature.new(args.first)
      when 2
        a,b = args.first.to_f, args.last.to_f
        if a > 1.0
          Colors::HueSaturation.new(args.first, args.last)
        else
          Colors::XY.new(*args)
        end
      when 3
        Colors::RGB.new(*args)
      else
        raise Error.new("Unable to parse to color: #{args.inspect}")
      end
    end

    def self.parse_state(state)
      case state['colormode']
      when 'ct'
        Colors::ColorTemperature.new(state['ct'])
      when 'xy'
        Colors::XY.new(*state['xy'])
      when 'hs'
        Colors::HueSaturation.new(state['hue'], state['sat'])
      else
        raise Error.new("Unknown or missing state: #{state.inspect}")
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hue-lib-0.7.4 lib/hue/colors.rb
hue-lib-0.7.3 lib/hue/colors.rb
hue-lib-0.7.2 lib/hue/colors.rb
hue-lib-0.7.1 lib/hue/colors.rb
hue-lib-0.7.0 lib/hue/colors.rb