Sha256: 06cd3d939171352333098261fcdcb3e5b6196554b43fa249d1f1d28477da7972

Contents?: true

Size: 1.85 KB

Versions: 9

Compression:

Stored size: 1.85 KB

Contents

module Compass::SassExtensions::Functions::Constants
  if defined?(Sass::Script::List)
    # returns the opposite position of a side or corner.
    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
  else
    # returns the opposite position of a side or corner.
    def opposite_position(position)
      opposite = position.value.split(/ +/).map do |pos|
        case pos
        when "top" then "bottom"
        when "bottom" then "top"
        when "left" then "right"
        when "right" then "left"
        when "center" then "center"
        else
          pos
        end
      end
      Sass::Script::String.new(opposite.join(" "), position.type)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
compass-0.11.beta.5 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.beta.4 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.beta.3 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.beta.2 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.beta.1 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.beta.0 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.alpha.4 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.alpha.3 lib/compass/sass_extensions/functions/constants.rb
compass-0.11.alpha.1 lib/compass/sass_extensions/functions/constants.rb