Module: Sass::Script::Value::Helpers
- Included in:
- Functions::EvaluationContext
- Defined in:
- lib/sass/script/value/helpers.rb
Overview
Provides helper functions for creating sass values from within ruby methods.
Instance Method Summary collapse
-
#bool(value) ⇒ Sass::Script::Value::Bool
Construct a Sass Boolean.
-
#hex_color(value, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from a hex color string.
-
#hsl_color(hue, saturation, lightness, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from hsl values.
- #list(*elements)
-
#map(hash) ⇒ Sass::Script::Value::Map
Construct a Sass map.
-
#null ⇒ Sass::Script::Value::Null
Create a sass null value.
-
#number(number, unit_string = nil) ⇒ Sass::Script::Value::Number
Construct a Sass Number from a ruby number.
-
#parse_complex_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::Sequence
Parses a user-provided complex selector.
-
#parse_compound_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::SimpleSequence
Parses a user-provided compound selector.
-
#parse_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::CommaSequence
Parses a user-provided selector.
-
#quoted_string(str) ⇒ Sass::Script::Value::String
Create a quoted string.
-
#rgb_color(red, green, blue, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from rgb values.
-
#unquoted_string(str) ⇒ Sass::Script::Value::String
(also: #identifier)
Create an unquoted string.
Instance Method Details
#bool(value) ⇒ Sass::Script::Value::Bool
Construct a Sass Boolean.
9 10 11 |
# File 'lib/sass/script/value/helpers.rb', line 9
def bool(value)
Bool.new(value)
end
|
#hex_color(value, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from a hex color string.
19 20 21 |
# File 'lib/sass/script/value/helpers.rb', line 19
def hex_color(value, alpha = nil)
Color.from_hex(value, alpha)
end
|
#hsl_color(hue, saturation, lightness, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from hsl values.
34 35 36 37 38 |
# File 'lib/sass/script/value/helpers.rb', line 34
def hsl_color(hue, saturation, lightness, alpha = nil)
attrs = {:hue => hue, :saturation => saturation, :lightness => lightness}
attrs[:alpha] = alpha if alpha
Color.new(attrs)
end
|
#list(*elements, separator) ⇒ Sass::Script::Value::List #list(array, separator) ⇒ Sass::Script::Value::List
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/sass/script/value/helpers.rb', line 80
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
|
#map(hash) ⇒ Sass::Script::Value::Map
Construct a Sass map.
96 97 98 |
# File 'lib/sass/script/value/helpers.rb', line 96
def map(hash)
Map.new(hash)
end
|
#null ⇒ Sass::Script::Value::Null
Create a sass null value.
103 104 105 |
# File 'lib/sass/script/value/helpers.rb', line 103
def null
Sass::Script::Value::Null.new
end
|
#number(number, unit_string = nil) ⇒ Sass::Script::Value::Number
Construct a Sass Number from a ruby number.
65 66 67 |
# File 'lib/sass/script/value/helpers.rb', line 65
def number(number, unit_string = nil)
Number.new(number, *parse_unit_string(unit_string))
end
|
#parse_complex_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::Sequence
Parses a user-provided complex selector.
A complex selector can contain combinators but cannot contain commas.
161 162 163 164 165 166 167 168 |
# File 'lib/sass/script/value/helpers.rb', line 161
def parse_complex_selector(value, name = nil, allow_parent_ref = false)
selector = parse_selector(value, name, allow_parent_ref)
return seq if selector.members.length == 1
err = "#{value.inspect} is not a complex selector"
err = "$#{name.to_s.gsub('_', '-')}: #{err}" if name
raise ArgumentError.new(err)
end
|
#parse_compound_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::SimpleSequence
Parses a user-provided compound selector.
A compound selector cannot contain combinators or commas.
182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/sass/script/value/helpers.rb', line 182
def parse_compound_selector(value, name = nil, allow_parent_ref = false)
assert_type value, :String, name
selector = parse_selector(value, name, allow_parent_ref)
seq = selector.members.first
sseq = seq.members.first
if selector.members.length == 1 && seq.members.length == 1 &&
sseq.is_a?(Sass::Selector::SimpleSequence)
return sseq
end
err = "#{value.inspect} is not a compound selector"
err = "$#{name.to_s.gsub('_', '-')}: #{err}" if name
raise ArgumentError.new(err)
end
|
#parse_selector(value, name = nil, allow_parent_ref = false) ⇒ Sass::Selector::CommaSequence
Parses a user-provided selector.
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/sass/script/value/helpers.rb', line 136
def parse_selector(value, name = nil, allow_parent_ref = false)
str = normalize_selector(value, name)
begin
Sass::SCSS::StaticParser.new(str, nil, nil, 1, 1, allow_parent_ref).parse_selector
rescue Sass::SyntaxError => e
err = "#{value.inspect} is not a valid selector: #{e}"
err = "$#{name.to_s.gsub('_', '-')}: #{err}" if name
raise ArgumentError.new(err)
end
end
|
#quoted_string(str) ⇒ Sass::Script::Value::String
Create a quoted string.
111 112 113 |
# File 'lib/sass/script/value/helpers.rb', line 111
def quoted_string(str)
Sass::Script::String.new(str, :string)
end
|
#rgb_color(red, green, blue, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from rgb values.
48 49 50 51 52 |
# File 'lib/sass/script/value/helpers.rb', line 48
def rgb_color(red, green, blue, alpha = nil)
attrs = {:red => red, :green => green, :blue => blue}
attrs[:alpha] = alpha if alpha
Color.new(attrs)
end
|
#unquoted_string(str) ⇒ Sass::Script::Value::String Also known as: identifier
Create an unquoted string.
119 120 121 |
# File 'lib/sass/script/value/helpers.rb', line 119
def unquoted_string(str)
Sass::Script::String.new(str, :identifier)
end
|