Module: Compass::Magick::Functions::Types
- Included in:
- Compass::Magick::Functions
- Defined in:
- lib/magick/functions/types.rb
Overview
Methods for creating new Types.
Instance Method Summary collapse
-
#magick_color_stop(offset, color) ⇒ Compass::Magick::Types::ColorStop
Creates a new Types::ColorStop instance.
-
#magick_linear_gradient(*args) ⇒ Compass::Magick::Types::Gradients::Linear
Creates a new Types::Gradients::Linear instance.
-
#magick_solid(color) ⇒ Compass::Magick::Types::Solid
Creates a new Types::Solid instance.
Instance Method Details
#magick_color_stop(offset, color) ⇒ Compass::Magick::Types::ColorStop
Creates a new Types::ColorStop instance.
20 21 22 |
# File 'lib/magick/functions/types.rb', line 20 def magick_color_stop(offset, color) Compass::Magick::Types::Gradients::ColorStop.new(offset, color) end |
#magick_linear_gradient(angle, stops) ⇒ Compass::Magick::Types::Gradients::Linear #magick_linear_gradient(stops) ⇒ Compass::Magick::Types::Gradients::Linear
Creates a new Types::Gradients::Linear instance.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/magick/functions/types.rb', line 37 def magick_linear_gradient(*args) angle = args.shift if args[0].kind_of?(Sass::Script::Number) angle ||= Sass::Script::Number.new(90) stops = [] last_offset = 0 args.each_with_index do |stop, index| if stop.kind_of?(Sass::Script::Color) if index > 0 if index == args.length - 1 offset = 100 else next_index = 0 next_offset = nil args.slice(index, args.length).each do |next_stop| next_index = next_index + 1 if next_stop.kind_of?(Compass::Magick::Types::Gradients::ColorStop) next_offset = next_stop.offset.value break end end next_offset ||= 100 offset = last_offset + (next_offset - last_offset) / next_index end else offset = 0 end stops.push(Compass::Magick::Types::Gradients::ColorStop.new(Sass::Script::Number.new(offset), stop)) last_offset = offset elsif stop.kind_of?(Sass::Script::List) stops.push(Compass::Magick::Types::Gradients::ColorStop.new(stop.value[1], stop.value[0])) last_offset = stop.value[1].value else stops.push(stop) last_offset = stop.offset.value if stop.respond_to?(:offset) end end Compass::Magick::Types::Gradients::Linear.new(angle, stops) end |
#magick_solid(color) ⇒ Compass::Magick::Types::Solid
Creates a new Types::Solid instance.
10 11 12 |
# File 'lib/magick/functions/types.rb', line 10 def magick_solid(color) Compass::Magick::Types::Solid.new(color) end |