Class: Sass::Script::Tree::Operation
- Inherits:
-
Node
- Object
- Node
- Sass::Script::Tree::Operation
- Defined in:
- .ruby-sass/lib/sass/script/tree/operation.rb
Overview
A SassScript parse node representing a binary operation, such as `$a + $b` or `“foo” + 1`.
Constant Summary
- @@color_arithmetic_deprecation =
Sass::Deprecation.new
- @@unitless_equals_deprecation =
Sass::Deprecation.new
Instance Attribute Summary (collapse)
-
#operand1 ⇒ Object
readonly
Returns the value of attribute operand1.
-
#operand2 ⇒ Object
readonly
Returns the value of attribute operand2.
-
#operator ⇒ Object
readonly
Returns the value of attribute operator.
Attributes inherited from Node
#filename, #line, #options, #source_range
Instance Method Summary (collapse)
-
#children ⇒ Array<Node>
Returns the operands for this operation.
- #deep_copy ⇒ Object
-
#initialize(operand1, operand2, operator) ⇒ Operation
constructor
A new instance of Operation.
-
#inspect ⇒ String
A human-readable s-expression representation of the operation.
- #to_sass(opts = {}) ⇒ Object
Methods inherited from Node
Constructor Details
#initialize(operand1, operand2, operator) ⇒ Operation
Returns a new instance of Operation
18 19 20 21 22 23 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 18 def initialize(operand1, operand2, operator) @operand1 = operand1 @operand2 = operand2 @operator = operator super() end |
Constructor Details
#initialize(operand1, operand2, operator) ⇒ Operation
Returns a new instance of Operation
18 19 20 21 22 23 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 18 def initialize(operand1, operand2, operator) @operand1 = operand1 @operand2 = operand2 @operator = operator super() end |
Instance Attribute Details
#operand1 ⇒ Object (readonly)
Returns the value of attribute operand1
8 9 10 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 8 def operand1 @operand1 end |
#operand2 ⇒ Object (readonly)
Returns the value of attribute operand2
9 10 11 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 9 def operand2 @operand2 end |
#operator ⇒ Object (readonly)
Returns the value of attribute operator
10 11 12 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 10 def operator @operator end |
Instance Method Details
#children ⇒ Array<Node>
Returns the operands for this operation.
47 48 49 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 47 def children [@operand1, @operand2] end |
#deep_copy ⇒ Object
52 53 54 55 56 57 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 52 def deep_copy node = dup node.instance_variable_set('@operand1', @operand1.deep_copy) node.instance_variable_set('@operand2', @operand2.deep_copy) node end |
#inspect ⇒ String
Returns A human-readable s-expression representation of the operation
26 27 28 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 26 def inspect "(#{@operator.inspect} #{@operand1.inspect} #{@operand2.inspect})" end |
#to_sass(opts = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File '.ruby-sass/lib/sass/script/tree/operation.rb', line 31 def to_sass(opts = {}) o1 = operand_to_sass @operand1, :left, opts o2 = operand_to_sass @operand2, :right, opts sep = case @operator when :comma; ", " when :space; " " else; " #{Sass::Script::Lexer::OPERATORS_REVERSE[@operator]} " end "#{o1}#{sep}#{o2}" end |