Class: Liquidice::Transformer::Nodes::LiquidInterpolationPart

Inherits:
Base
  • Object
show all
Defined in:
lib/liquidice/transformer/nodes/liquid_interpolation_part.rb

Constant Summary collapse

TYPES =
[
  OPEN_DELIMITER_TYPE = :open_delimiter,
  CLOSE_DELIMITER_TYPE = :close_delimiter,
  INTERPOLATION_CONTENT_TYPE = :interpolation_content
].freeze

Instance Attribute Summary

Attributes inherited from Base

#children, #options, #original_text

Instance Method Summary collapse

Methods inherited from Base

#dot_id, #initialize, #strict_mode?, #transform!, #write_dot, #write_dot_file

Constructor Details

This class inherits a constructor from Liquidice::Transformer::Nodes::Base

Instance Method Details

#can_be_merged?(other) ⇒ Boolean



35
36
37
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 35

def can_be_merged?(other)
  other.is_a?(::Liquidice::Transformer::Nodes::LiquidInterpolationPart) && type == other.type
end

#close_delimiter?Boolean



19
20
21
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 19

def close_delimiter?
  type == CLOSE_DELIMITER_TYPE
end

#interpolation_content?Boolean



23
24
25
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 23

def interpolation_content?
  type == INTERPOLATION_CONTENT_TYPE
end

#merge(other) ⇒ Object



31
32
33
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 31

def merge(other)
  @original_text += other.original_text
end

#open_delimiter?Boolean



15
16
17
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 15

def open_delimiter?
  type == OPEN_DELIMITER_TYPE
end

#text_valueObject



39
40
41
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 39

def text_value
  @original_text
end

#to_sObject



43
44
45
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 43

def to_s
  @original_text
end

#typeObject



27
28
29
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 27

def type
  @type ||= options[:type]
end

#validate!Object



11
12
13
# File 'lib/liquidice/transformer/nodes/liquid_interpolation_part.rb', line 11

def validate!
  raise(Liquidice::Errors::TransformerValidationError, "Children must be empty, it always must be a leaf node") unless children.empty?
end