class MirrorMirror::Transformation::LinearGradient
Constants
- DIRECTIONAL_KEYWORDS
- IMAGE_PROPERTIES
- S360
Public Instance Methods
color_stop?(e)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 56 def color_stop?(e) e.is_a?(Sass::Script::Color) || (e.is_a?(Sass::Script::List) && e.value.first.is_a?(Sass::Script::Color)) end
degree?(e)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 42 def degree?(e) e.is_a?(Sass::Script::Number) && e.numerator_units.first == "deg" end
direction?(e)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 52 def direction?(e) degree?(e) || directional_keywords?(e) end
directional_keywords?(e)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 47 def directional_keywords?(e) (e.is_a?(Sass::Script::List) && e.value.first.is_a?(Sass::Script::String) && DIRECTIONAL_KEYWORDS.include?(e.value.first.value)) || e.is_a?(Sass::Script::String) && DIRECTIONAL_KEYWORDS.include?(e.value) end
find_linear_gradient(expression)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 29 def find_linear_gradient(expression) case expression when Sass::Script::List expression.value.each do |v| grad = find_linear_gradient(v) return grad if grad end nil when Sass::Script::Funcall expression if expression.name =~ /^(-(moz|webkit|o|ms)-)?(repeating-)?linear-gradient$/ end end
flip(direction)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 62 def flip(direction) if degree?(direction) opts(direction.options) { S360.minus(direction).mod(S360) } else case direction when Sass::Script::List direction.value.map!{|v| flip(v) } direction when Sass::Script::String if direction.value == "left" opts(direction.options) { Sass::Script::String.new("right") } elsif direction.value == "right" opts(direction.options) { Sass::Script::String.new("left") } else direction end else direction end end end
transform_expression(name, expression)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 16 def transform_expression(name, expression) for_each_value(expression) do |e| if grad = find_linear_gradient(e) if direction?(grad.args[0]) grad.args[0] = flip(grad.args[0]) end e else e end end end
transform_expression?(name)
click to toggle source
# File lib/mirror-mirror/transformation/linear_gradient.rb, line 12 def transform_expression?(name) IMAGE_PROPERTIES.include?(name) end