module CMYKLibrary

Public Instance Methods

cmyk(c, m, y, k) click to toggle source
# File lib/sass-cmyk.rb, line 116
def cmyk(c, m, y, k)
  cmyk_arr = [[:cyan, c], [:magenta, m], [:yellow, y], [:black, k]].map do |(comp_name, comp_value)|
    assert_type comp_value, :Number, comp_name
    if comp_value.is_unit?("%")
      comp_value_normalized = comp_value.value
    else
      comp_value_normalized = (comp_value.value * 100).round
    end

    if comp_value_normalized.is_a?(Fixnum) && comp_value_normalized.between?(0, 100)
      [comp_name, comp_value_normalized]
    else
      raise ArgumentError.new("Invalid #{comp_name} value #{comp_value}. Must be a float between 0 and 1 or a percent between 0 and 100.")
    end
  end

  cmyk_attrs = Hash[cmyk_arr]

  Sass::Script::Value::CMYK.new(cmyk_attrs)
end
cmyk_mix(cmyk_color1, cmyk_color2) click to toggle source
# File lib/sass-cmyk.rb, line 139
def cmyk_mix(cmyk_color1, cmyk_color2)
  raise ArgumentError.new("Bad arguments to cmyk_mix: #{cmyk_color1}, #{cmyk_color2}. cmyk_mix requires two CMYK colors as arguments") unless (cmyk_color1.is_a?(Sass::Script::Value::CMYK) && cmyk_color2.is_a?(Sass::Script::Value::CMYK))
  cmyk_color1.plus(cmyk_color2)
end
cmyk_scale(cmyk_color, percent) click to toggle source
# File lib/sass-cmyk.rb, line 146
def cmyk_scale(cmyk_color, percent)
  raise ArgumentError.new("Bad argument to cmyk_scale: #{cmyk_color}. First argument must be a CMYK color") unless cmyk_color.is_a?(Sass::Script::Value::CMYK)
  raise ArgumentError.new("Bad argument to cmyk_scale: #{percent}. Second argument must be a percent") unless (percent.is_a?(Sass::Script::Value::Number) && percent.is_unit?('%'))
  cmyk_color.times(percent)
end