Module: CMYKLibrary
- Included in:
- Sass::Script::Functions
- Defined in:
- lib/sass-cmyk.rb
Instance Method Summary collapse
- #cmyk(c, m, y, k) ⇒ Object
- #cmyk_mix(cmyk_color1, cmyk_color2) ⇒ Object
- #cmyk_scale(cmyk_color, percent) ⇒ Object
Instance Method Details
#cmyk(c, m, y, k) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# 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) ⇒ Object
139 140 141 142 |
# 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) ⇒ Object
146 147 148 149 150 |
# 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 |