class Ferrum::RGBA

Attributes

alpha[RW]
blue[RW]
green[RW]
red[RW]

Public Class Methods

new(red, green, blue, alpha) click to toggle source
# File lib/ferrum/rbga.rb, line 3
def initialize(red, green, blue, alpha)
  self.red = red
  self.green = green
  self.blue = blue
  self.alpha = alpha

  validate
end

Public Instance Methods

to_h() click to toggle source
# File lib/ferrum/rbga.rb, line 12
def to_h
  { r: red, g: green, b: blue, a: alpha }
end

Private Instance Methods

validate() click to toggle source
# File lib/ferrum/rbga.rb, line 20
def validate
  [red, green, blue].each(&method(:validate_color))
  validate_alpha
end
validate_alpha() click to toggle source
# File lib/ferrum/rbga.rb, line 31
def validate_alpha
  return if alpha && alpha.is_a?(Float) && Range.new(0.0, 1.0).include?(alpha)

  raise ArgumentError,
        "Wrong alpha value #{alpha} should be Float between 0.0 (fully transparent) and 1.0 (fully opaque)"
end
validate_color(value) click to toggle source
# File lib/ferrum/rbga.rb, line 25
def validate_color(value)
  return if value && value.is_a?(Integer) && Range.new(0, 255).include?(value)

  raise ArgumentError, "Wrong value of #{value} should be Integer from 0 to 255"
end