Object
# File lib/term/ansicolor/rgb_triple.rb, line 35 def self.[](thing) case when thing.respond_to?(:to_rgb_triple) then thing when thing.respond_to?(:to_ary) then RGBTriple.from_array(thing.to_ary) when thing.respond_to?(:to_str) then RGBTriple.from_html(thing.to_str.sub(/\Aon_/, '')) # XXX somewhat hacky when thing.respond_to?(:to_hash) then RGBTriple.from_hash(thing.to_hash) else raise ArgumentError, "cannot convert #{thing.inspect} into #{self}" end end
# File lib/term/ansicolor/rgb_triple.rb, line 31 def self.from_array(array) new(*array) end
# File lib/term/ansicolor/rgb_triple.rb, line 23 def self.from_hash(options) new( convert_value(options[:red]), convert_value(options[:green]), convert_value(options[:blue]) ) end
# File lib/term/ansicolor/rgb_triple.rb, line 14 def self.from_html(html) case html when /\A#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\z/ new(*$~.captures.map { |c| convert_value(c.to_i(16)) }) when /\A#([0-9a-f])([0-9a-f])([0-9a-f])\z/ new(*$~.captures.map { |c| convert_value(c.to_i(16) << 4) }) end end
# File lib/term/ansicolor/rgb_triple.rb, line 78 def ==(other) @values == other.values end
# File lib/term/ansicolor/rgb_triple.rb, line 57 def blue @values[2] end
# File lib/term/ansicolor/rgb_triple.rb, line 82 def distance_to(other) Math.sqrt( ((red - other.red) * 0.299) ** 2 + ((green - other.green) * 0.587) ** 2 + ((blue - other.blue) * 0.114) ** 2 ) end
# File lib/term/ansicolor/rgb_triple.rb, line 53 def green @values[1] end
# File lib/term/ansicolor/rgb_triple.rb, line 61 def html s = '#' @values.each { |c| s << '%02x' % c } s end
# File lib/term/ansicolor/rgb_triple.rb, line 49 def red @values[0] end
Generated with the Darkfish Rdoc Generator 2.