Module: Sass::Script::Value::Helpers
- Included in:
- Functions::EvaluationContext
- Defined in:
- .ruby-sass/lib/sass/script/value/helpers.rb
Overview
Provides helper functions for creating sass values from within ruby methods.
Constant Summary
Instance Method Summary (collapse)
-
#bool(value) ⇒ Sass::Script::Value::Bool
Construct a Sass Boolean.
-
#calc?(literal) ⇒ Boolean
Returns true when the literal is a string containing a calc().
-
#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, separator: nil, bracketed: false) ⇒ Object
-
#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.
-
#special_number?(literal) ⇒ Boolean
Returns whether the literal is a special CSS value that may evaluate to a number, such as `calc()` or `var()`.
-
#unquoted_string(str) ⇒ Sass::Script::Value::String
(also: #identifier)
Create an unquoted string.
-
#var?(literal) ⇒ Boolean
Returns true when the literal is a string containing a var().
Instance Method Details
#bool(value) ⇒ Sass::Script::Value::Bool
Construct a Sass Boolean.
11 12 13 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 11 def bool(value) Bool.new(value) end |
#calc?(literal) ⇒ Boolean
Returns true when the literal is a string containing a calc().
Use #special_number? in preference to this.
214 215 216 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 214 def calc?(literal) literal.is_a?(Sass::Script::Value::String) && literal.value =~ /calc\(/ end |
#hex_color(value, alpha = nil) ⇒ Sass::Script::Value::Color
Construct a Sass Color from a hex color string.
21 22 23 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 21 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.
36 37 38 39 40 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 36 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: , bracketed: false) ⇒ Sass::Script::Value::List #list(array, separator: , bracketed: false) ⇒ Sass::Script::Value::List
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 85 def list(*elements, separator: nil, bracketed: false) # Support passing separator as the last value in elements for # backwards-compatibility. if separator.nil? if elements.last.is_a?(Symbol) separator = elements.pop else raise ArgumentError.new("A separator of :space or :comma must be specified.") end end if elements.size == 1 && elements.first.is_a?(Array) elements = elements.first end Sass::Script::Value::List.new(elements, separator: separator, bracketed: bracketed) end |
#map(hash) ⇒ Sass::Script::Value::Map
Construct a Sass map.
107 108 109 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 107 def map(hash) Map.new(hash) end |
#null ⇒ Sass::Script::Value::Null
Create a sass null value.
114 115 116 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 114 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.
67 68 69 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 67 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.
172 173 174 175 176 177 178 179 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 172 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.tr('_', '-')}: #{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.
193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 193 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.tr('_', '-')}: #{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.
147 148 149 150 151 152 153 154 155 156 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 147 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.tr('_', '-')}: #{err}" if name raise ArgumentError.new(err) end end |
#quoted_string(str) ⇒ Sass::Script::Value::String
Create a quoted string.
122 123 124 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 122 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.
50 51 52 53 54 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 50 def rgb_color(red, green, blue, alpha = nil) attrs = {:red => red, :green => green, :blue => blue} attrs[:alpha] = alpha if alpha Color.new(attrs) end |
#special_number?(literal) ⇒ Boolean
Returns whether the literal is a special CSS value that may evaluate to a number, such as `calc()` or `var()`.
231 232 233 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 231 def special_number?(literal) literal.is_a?(Sass::Script::Value::String) && literal.value =~ /(calc|var)\(/ end |
#unquoted_string(str) ⇒ Sass::Script::Value::String Also known as: identifier
Create an unquoted string.
130 131 132 |
# File '.ruby-sass/lib/sass/script/value/helpers.rb', line 130 def unquoted_string(str) Sass::Script::String.new(str, :identifier) end |