# 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
# 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
# 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 =~ %r^url\(.*\)$/) Sass::Script::Bool.new(is_url) else Sass::Script::Bool.new(false) end end
returns the opposite position of a side or corner.
# 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