class Sass::Script::Functions::EvaluationContext
are available to use in functions.
That means that all instance methods of {EvaluationContext}
The context in which methods in {Script::Functions} are evaluated.
def assert_integer(number, name = nil)
-
(ArgumentError)
- if number is not an integer or is not a number.
Parameters:
-
name
(::String
) -- The name of the parameter being validated. -
number
(Sass::Script::Value::Base
) -- The value to be validated.
def assert_integer(number, name = nil) assert_type number, :Number, name return if number.int? if name raise ArgumentError.new("Expected $#{name} to be an integer but got #{number}") else raise ArgumentError.new("Expected #{number} to be an integer") end end
def assert_type(value, type, name = nil)
-
(ArgumentError)
- if value is not of the correct type.
Parameters:
-
name
(String, Symbol, nil
) -- The name of the argument. -
type
(Symbol, Array
) -- The name(s) of the type the value is expected to be -
value
(Sass::Script::Value::Base
) -- A SassScript value
def assert_type(value, type, name = nil) valid_types = Array(type) found_type = valid_types.find do |t| value.is_a?(Sass::Script::Value.const_get(t)) || t == :Map && value.is_a?(Sass::Script::Value::List) && value.value.empty? end if found_type value.check_deprecated_interp if found_type == :String return end err = if valid_types.size == 1 "#{value.inspect} is not a #{TYPE_NAMES[type] || type.to_s.downcase}" else type_names = valid_types.map {|t| TYPE_NAMES[t] || t.to_s.downcase} "#{value.inspect} is not any of #{type_names.join(', ')}" end err = "$#{name.to_s.tr('_', '-')}: " + err if name raise ArgumentError.new(err) end
def assert_unit(number, unit, name = nil)
-
(ArgumentError)
- if number is not of the correct unit or is not a number.
Parameters:
-
name
(::String
) -- The name of the parameter being validated. -
unit
(::String
) -- -
number
(Sass::Script::Value::Number
) -- The number to be validated.
def assert_unit(number, unit, name = nil) assert_type number, :Number, name return if number.is_unit?(unit) expectation = unit ? "have a unit of #{unit}" : "be unitless" if name raise ArgumentError.new("Expected $#{name} to #{expectation} but got #{number}") else raise ArgumentError.new("Expected #{number} to #{expectation}") end end
def initialize(environment)
-
environment
(Environment
) -- See \{#environment}
def initialize(environment) @environment = environment @options = environment.options end
def perform(node, env = environment.caller)
-
env
(Sass::Environment
) -- The environment within which to perform the node. -
node
(Sass::Script::Tree::Node,
) -- ode [Sass::Script::Tree::Node,
Other tags:
- Private: -
def perform(node, env = environment.caller) if node.is_a?(Sass::Script::Value::Base) node else node.perform(env) end end