Class: NodeQuery::Compiler::String

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/node_query/compiler/string.rb

Overview

String represents a ruby string value.

Constant Summary

Constants included from Comparable

Comparable::ARRAY_VALID_OPERATORS, Comparable::NUMBER_VALID_OPERATORS, Comparable::REGEXP_VALID_OPERATORS, Comparable::SIMPLE_VALID_OPERATORS, Comparable::STRING_VALID_OPERATORS

Instance Method Summary collapse

Methods included from Comparable

#actual_value, #match?, #valid_operator?

Constructor Details

#initialize(value:) ⇒ String

Initialize a String.

Parameters:

  • value (String)

    the string value



10
11
12
# File 'lib/node_query/compiler/string.rb', line 10

def initialize(value:)
  @value = value
end

Instance Method Details

#expected_value(base_node) ⇒ String

Get the expected value.

Examples:

if the source code of the node is @id = id,
and the @value is "@{{right_vaue}}",
then it returns "@id".

Parameters:

  • base_node (Node)

    the base node for evaluated value

Returns:

  • (String)

    the expected string, if it contains evaluated value, evaluate the node value.



21
22
23
# File 'lib/node_query/compiler/string.rb', line 21

def expected_value(base_node)
  NodeQuery::Helper.evaluate_node_value(base_node, @value)
end

#is_equal?(actual, expected) ⇒ Boolean

Check if the actual value equals the node value.

Parameters:

  • node (Node)

    the node

  • base_node (Node)

    the base node for evaluated value

Returns:

  • (Boolean)

    true if the actual value equals the node value.



29
30
31
# File 'lib/node_query/compiler/string.rb', line 29

def is_equal?(actual, expected)
  NodeQuery::Helper.to_string(actual) == expected
end

#to_sObject



39
40
41
# File 'lib/node_query/compiler/string.rb', line 39

def to_s
  "\"#{@value}\""
end

#valid_operatorsArray

Get valid operators.

Returns:

  • (Array)

    valid operators



35
36
37
# File 'lib/node_query/compiler/string.rb', line 35

def valid_operators
  STRING_VALID_OPERATORS
end