Module: Compass::SassExtensions::Functions::Constants
- Included in:
- GradientSupport::LinearGradient, GradientSupport::RadialGradient, Sass::Script::Functions
- Defined in:
- lib/compass/sass_extensions/functions/constants.rb
Constant Summary
- POSITIONS =
/top|bottom|left|right|center/
Instance Method Summary (collapse)
- - (Object) is_position(position)
- - (Object) is_position_list(position_list)
- - (Object) is_url(string)
-
- (Object) opposite_position(position)
returns the opposite position of a side or corner.
Instance Method Details
- (Object) is_position(position)
4 5 6 |
# File 'lib/compass/sass_extensions/functions/constants.rb', line 4 def is_position(position) Sass::Script::Bool.new(position.is_a?(Sass::Script::String) && !!(position.value =~ POSITIONS)) end |
- (Object) is_position_list(position_list)
7 8 9 |
# File 'lib/compass/sass_extensions/functions/constants.rb', line 7 def is_position_list(position_list) Sass::Script::Bool.new(position_list.is_a?(Sass::Script::List) && position_list.value.all?{|p| is_position(p).to_bool}) end |
- (Object) is_url(string)
49 50 51 52 53 54 55 56 |
# File 'lib/compass/sass_extensions/functions/constants.rb', line 49 def is_url(string) if string.is_a?(Sass::Script::String) is_url = !!(string.value =~ /^url\(.*\)$/) Sass::Script::Bool.new(is_url) else Sass::Script::Bool.new(false) end end |
- (Object) opposite_position(position)
returns the opposite position of a side or corner.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/compass/sass_extensions/functions/constants.rb', line 11 def opposite_position(position) position = unless position.is_a?(Sass::Script::List) Sass::Script::List.new([position], :space) else Sass::Script::List.new(position.value.dup, position.separator) end position.value.map! do |pos| if pos.is_a? Sass::Script::String opposite = case pos.value when "top" then "bottom" when "bottom" then "top" when "left" then "right" when "right" then "left" when "center" then "center" else Compass::Util.compass_warn("Cannot determine the opposite position of: #{pos}") pos.value end Sass::Script::String.new(opposite) elsif pos.is_a? Sass::Script::Number if pos.numerator_units == ["%"] && pos.denominator_units == [] Sass::Script::Number.new(100-pos.value, ["%"]) else Compass::Util.compass_warn("Cannot determine the opposite position of: #{pos}") pos end else Compass::Util.compass_warn("Cannot determine the opposite position of: #{pos}") pos end end if position.value.size == 1 position.value.first else position end end |