module Sass::Script::Value::Helpers

def bool(value)

Returns:
  • (Sass::Script::Value::Bool) - whether the ruby value is truthy.

Parameters:
  • value (Object) -- A ruby object that will be tested for truthiness.
def bool(value)
  Bool.new(value)
end

def hex_color(value, alpha = nil)

Returns:
  • (Sass::Script::Value::Color) - the color object

Parameters:
  • alpha (::Number) -- The alpha channel. A number between 0 and 1.
  • value (::String) -- A string representing a hex color.
def hex_color(value, alpha = nil)
  Color.from_hex(value, alpha)
end

def hsl_color(hue, saturation, lightness, alpha = nil)

Returns:
  • (Sass::Script::Value::Color) - the color object

Parameters:
  • alpha (::Number) -- The alpha channel. A number between 0 and 1.
  • lightness (::Number) -- The lightness of the color.
  • saturation (::Number) -- The saturation of the color.
  • hue (::Number) -- The hue of the color in degrees.
def hsl_color(hue, saturation, lightness, alpha = nil)
  attrs = {:hue => hue, :saturation => saturation, :lightness => lightness}
  attrs[:alpha] = alpha if alpha
  Color.new(attrs)
end

def list(*elements)

Returns:
  • (Sass::Script::Value::List) - The space separated list.
  • (Sass::Script::Value::List) - The space separated list.

Parameters:
  • array (Array) -- A ruby array of Sass values
  • separator (Symbol) -- Either :space or :comma.
  • elements (Array) -- Each argument will be a list element.

Overloads:
  • list(array, separator)
  • list(*elements, separator)
def list(*elements)
  unless elements.last.is_a?(Symbol)
    raise ArgumentError.new("A list type of :space or :comma must be specified.")
  end
  separator = elements.pop
  if elements.size == 1 && elements.first.is_a?(Array)
    elements = elements.first
  end
  Sass::Script::Value::List.new(elements, separator)
end

def map(hash)

Returns:
  • (Sass::Script::Value::Map) - The map.

Parameters:
  • hash (Hash) -- ash [Hash
def map(hash)
  Map.new(hash)
end

def null

Returns:

  • (Sass::Script::Value::Null) -
def null
  Sass::Script::Value::Null.new
end

def number(number, unit_string = nil)

Returns:
  • (Sass::Script::Value::Number) - The sass number representing the given ruby number.

Other tags:
    See: Sass::Script::Value::Number#unit_str -

Parameters:
  • unit_string (::String) -- A unit string of the form
  • number (::Number) -- A numeric value.
def number(number, unit_string = nil)
  Number.new(number, *parse_unit_string(unit_string))
end

def parse_unit_string(unit_string)

Returns:
  • (Array>) - A list of numerator units and a list of denominator units.

Parameters:
  • unit_string (String) -- A string adhering to the output of a number with complex
def parse_unit_string(unit_string)
  denominator_units = numerator_units = Sass::Script::Value::Number::NO_UNITS
  return numerator_units, denominator_units unless unit_string && unit_string.length > 0
  num_over_denominator = unit_string.split(/ *\/ */)
  unless (1..2).include?(num_over_denominator.size)
    raise ArgumentError.new("Malformed unit string: #{unit_string}")
  end
  numerator_units = num_over_denominator[0].split(/ *\* */)
  denominator_units = (num_over_denominator[1] || "").split(/ *\* */)
  [[numerator_units, "numerator"], [denominator_units, "denominator"]].each do |units, name|
    if unit_string =~ /\// && units.size == 0
      raise ArgumentError.new("Malformed unit string: #{unit_string}")
    end
    if units.any? {|unit| unit !~ VALID_UNIT}
      raise ArgumentError.new("Malformed #{name} in unit string: #{unit_string}")
    end
  end
  [numerator_units, denominator_units]
end

def quoted_string(str)

Returns:
  • (Sass::Script::Value::String) - A quoted string.

Parameters:
  • str (::String) -- A ruby string.
def quoted_string(str)
  Sass::Script::String.new(str, :string)
end

def rgb_color(red, green, blue, alpha = nil)

Returns:
  • (Sass::Script::Value::Color) - the color object

Parameters:
  • alpha (::Number) -- The alpha channel. A number between 0 and 1.
  • blue (::Number) -- The blue component. Must be between 0 and 255 inclusive.
  • green (::Number) -- The green component. Must be between 0 and 255 inclusive.
  • red (::Number) -- The red component. Must be between 0 and 255 inclusive.
def rgb_color(red, green, blue, alpha = nil)
  attrs = {:red => red, :green => green, :blue => blue}
  attrs[:alpha] = alpha if alpha
  Color.new(attrs)
end

def unquoted_string(str)

Returns:
  • (Sass::Script::Value::String) - An unquoted string.

Parameters:
  • str (::String) -- A ruby string.
def unquoted_string(str)
  Sass::Script::String.new(str, :identifier)
end