class Agave::Local::FieldType::Color

Attributes

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

Public Class Methods

new(red, green, blue, alpha) click to toggle source
# File lib/agave/local/field_type/color.rb, line 18
def initialize(red, green, blue, alpha)
  @red = red
  @green = green
  @blue = blue
  @alpha = alpha / 255.0
end
parse(value, _repo) click to toggle source
# File lib/agave/local/field_type/color.rb, line 9
def self.parse(value, _repo)
  value && new(
    value[:red],
    value[:green],
    value[:blue],
    value[:alpha]
  )
end

Public Instance Methods

hex() click to toggle source
# File lib/agave/local/field_type/color.rb, line 33
def hex
  r = red.to_s(16)
  g = green.to_s(16)
  b = blue.to_s(16)
  a = (alpha * 255).to_i.to_s(16)

  r = "0#{r}" if r.length == 1
  g = "0#{g}" if g.length == 1
  b = "0#{b}" if b.length == 1
  a = "0#{a}" if a.length == 1

  hex = '#' + r + g + b

  hex += a if a != 'ff'

  hex
end
rgb() click to toggle source
# File lib/agave/local/field_type/color.rb, line 25
def rgb
  if alpha == 1.0
    "rgb(#{red}, #{green}, #{blue})"
  else #
    "rgba(#{red}, #{green}, #{blue}, #{alpha})"
  end
end
to_hash(*_args) click to toggle source
# File lib/agave/local/field_type/color.rb, line 51
def to_hash(*_args)
  {
    red: red,
    green: green,
    blue: blue,
    rgb: rgb,
    hex: hex
  }
end