Class: Sass::Script::Value::Base
- Inherits:
-
Object
- Object
- Sass::Script::Value::Base
- Defined in:
- .ruby-sass/lib/sass/script/value/base.rb
Overview
The abstract superclass for SassScript objects.
Many of these methods, especially the ones that correspond to SassScript operations, are designed to be overridden by subclasses which may change the semantics somewhat. The operations listed here are just the defaults.
Instance Attribute Summary (collapse)
-
#options ⇒ {Symbol => Object}
Returns the options hash for this node.
-
#source_range ⇒ Sass::Source::Range
The source range in the document on which this node appeared.
-
#value ⇒ Object
readonly
Returns the Ruby value of the value.
Instance Method Summary (collapse)
-
#==(other) ⇒ Boolean
Compares this object with another.
- #assert_int! ⇒ Object
-
#bracketed ⇒ Boolean
Whether the value is surrounded by square brackets.
-
#div(other) ⇒ Script::Value::String
The SassScript `/` operation.
-
#eq(other) ⇒ Sass::Script::Value::Bool
The SassScript `==` operation.
- #eql?(other) ⇒ Boolean
-
#hash ⇒ Integer for Ruby 2.4.0+, Fixnum for earlier Ruby versions
Returns the hash code of this value.
-
#initialize(value = nil) ⇒ Base
constructor
Creates a new value.
-
#inspect ⇒ String
A readable representation of the value.
-
#minus(other) ⇒ Script::Value::String
The SassScript `-` operation.
-
#neq(other) ⇒ Sass::Script::Value::Bool
The SassScript `!=` operation.
-
#null? ⇒ Boolean
Returns whether or not this object is null.
-
#plus(other) ⇒ Script::Value::String
The SassScript `+` operation.
-
#separator ⇒ Symbol
Returns the separator for this value.
-
#single_eq(other) ⇒ Script::Value::String
The SassScript `=` operation (used for proprietary MS syntax like `alpha(opacity=20)`).
-
#to_a ⇒ Array<Value>
Returns the value of this value as a list.
-
#to_bool ⇒ Boolean
`true` (the Ruby boolean value).
-
#to_h ⇒ Hash<Value, Value>
Returns the value of this value as a hash.
-
#to_i ⇒ Integer
The integer value of this value.
-
#to_s(opts = {}) ⇒ String
(also: #to_sass)
Returns the string representation of this value as it would be output to the CSS document.
-
#unary_div ⇒ Script::Value::String
The SassScript unary `/` operation (e.g. `/$a`).
-
#unary_minus ⇒ Script::Value::String
The SassScript unary `-` operation (e.g. `-$a`).
-
#unary_not ⇒ Sass::Script::Value::Bool
The SassScript `==` operation.
-
#unary_plus ⇒ Script::Value::String
The SassScript unary `+` operation (e.g. `+$a`).
-
#with_contents(contents, separator: self.separator, bracketed: self.bracketed) ⇒ Sass::Script::Value::List
Creates a new list containing `contents` but with the same brackets and separators as this object, when interpreted as a list.
Constructor Details
#initialize(value = nil) ⇒ Base
Creates a new value.
22 23 24 25 26 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 22 def initialize(value = nil) value.freeze unless value.nil? || value == true || value == false @value = value @options = nil end |
Constructor Details
#initialize(value = nil) ⇒ Base
Creates a new value.
22 23 24 25 26 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 22 def initialize(value = nil) value.freeze unless value.nil? || value == true || value == false @value = value @options = nil end |
Instance Attribute Details
#options ⇒ {Symbol => Object}
Returns the options hash for this node.
41 42 43 44 45 46 47 48 49 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 41 def return @options if @options raise Sass::SyntaxError.new(<<MSG) The #options attribute is not set on this #{self.class}. This error is probably occurring because #to_s was called on this value within a custom Sass function without first setting the #options attribute. MSG end |
#source_range ⇒ Sass::Source::Range
The source range in the document on which this node appeared.
17 18 19 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 17 def source_range @source_range end |
#value ⇒ Object (readonly)
Returns the Ruby value of the value. The type of this value varies based on the subclass.
12 13 14 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 12 def value @value end |
Instance Method Details
#==(other) ⇒ Boolean
Compares this object with another.
175 176 177 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 175 def ==(other) eq(other).to_bool end |
#assert_int! ⇒ Object
186 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 186 def assert_int!; to_i; end |
#bracketed ⇒ Boolean
Whether the value is surrounded by square brackets. For non-list values, this will be `false`.
199 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 199 def bracketed; false; end |
#div(other) ⇒ Script::Value::String
The SassScript `/` operation.
118 119 120 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 118 def div(other) Sass::Script::Value::String.new("#{self}/#{other}") end |
#eq(other) ⇒ Sass::Script::Value::Bool
The SassScript `==` operation. **Note that this returns a Sass::Script::Value::Bool object, not a Ruby boolean**.
58 59 60 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 58 def eq(other) Sass::Script::Value::Bool.new(self.class == other.class && value == other.value) end |
#eql?(other) ⇒ Boolean
157 158 159 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 157 def eql?(other) self == other end |
#hash ⇒ Integer for Ruby 2.4.0+, Fixnum for earlier Ruby versions
Returns the hash code of this value. Two objects' hash codes should be equal if the objects are equal.
153 154 155 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 153 def hash value.hash end |
#inspect ⇒ String
Returns A readable representation of the value
162 163 164 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 162 def inspect value.inspect end |
#minus(other) ⇒ Script::Value::String
The SassScript `-` operation.
109 110 111 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 109 def minus(other) Sass::Script::Value::String.new("#{self}-#{other}") end |
#neq(other) ⇒ Sass::Script::Value::Bool
The SassScript `!=` operation. **Note that this returns a Sass::Script::Value::Bool object, not a Ruby boolean**.
69 70 71 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 69 def neq(other) Sass::Script::Value::Bool.new(!eq(other).to_bool) end |
#null? ⇒ Boolean
Returns whether or not this object is null.
233 234 235 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 233 def null? false end |
#plus(other) ⇒ Script::Value::String
The SassScript `+` operation.
99 100 101 102 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 99 def plus(other) type = other.is_a?(Sass::Script::Value::String) ? other.type : :identifier Sass::Script::Value::String.new(to_s(:quote => :none) + other.to_s(:quote => :none), type) end |
#separator ⇒ Symbol
Returns the separator for this value. For non-list-like values or the empty list, this will be `nil`. For lists or maps, it will be `:space` or `:comma`.
193 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 193 def separator; nil; end |
#single_eq(other) ⇒ Script::Value::String
The SassScript `=` operation (used for proprietary MS syntax like `alpha(opacity=20)`).
90 91 92 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 90 def single_eq(other) Sass::Script::Value::String.new("#{self}=#{other}") end |
#to_a ⇒ Array<Value>
Returns the value of this value as a list. Single values are considered the same as single-element lists.
205 206 207 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 205 def to_a [self] end |
#to_bool ⇒ Boolean
Returns `true` (the Ruby boolean value)
167 168 169 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 167 def to_bool true end |
#to_h ⇒ Hash<Value, Value>
Returns the value of this value as a hash. Most values don't have hash representations, but [Map]s and empty [List]s do.
214 215 216 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 214 def to_h raise Sass::SyntaxError.new("#{inspect} is not a map.") end |
#to_i ⇒ Integer
Returns The integer value of this value
181 182 183 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 181 def to_i raise Sass::SyntaxError.new("#{inspect} is not an integer.") end |
#to_s(opts = {}) ⇒ String Also known as: to_sass
Returns the string representation of this value as it would be output to the CSS document.
225 226 227 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 225 def to_s(opts = {}) Sass::Util.abstract(self) end |
#unary_div ⇒ Script::Value::String
The SassScript unary `/` operation (e.g. `/$a`).
145 146 147 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 145 def unary_div Sass::Script::Value::String.new("/#{self}") end |
#unary_minus ⇒ Script::Value::String
The SassScript unary `-` operation (e.g. `-$a`).
136 137 138 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 136 def unary_minus Sass::Script::Value::String.new("-#{self}") end |
#unary_not ⇒ Sass::Script::Value::Bool
The SassScript `==` operation. **Note that this returns a Sass::Script::Value::Bool object, not a Ruby boolean**.
80 81 82 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 80 def unary_not Sass::Script::Value::Bool.new(!to_bool) end |
#unary_plus ⇒ Script::Value::String
The SassScript unary `+` operation (e.g. `+$a`).
127 128 129 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 127 def unary_plus Sass::Script::Value::String.new("+#{self}") end |
#with_contents(contents, separator: self.separator, bracketed: self.bracketed) ⇒ Sass::Script::Value::List
Creates a new list containing `contents` but with the same brackets and separators as this object, when interpreted as a list.
244 245 246 |
# File '.ruby-sass/lib/sass/script/value/base.rb', line 244 def with_contents(contents, separator: self.separator, bracketed: self.bracketed) Sass::Script::Value::List.new(contents, separator: separator, bracketed: bracketed) end |