Class: Plumb::SemanticMatcher::Merge

Inherits:
Object
  • Object
show all
Defined in:
lib/plumb/semantic_matcher.rb

Constant Summary collapse

EMPTY =
new(:empty)
UNKNOWN =
new(:unknown)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(state, node = nil) ⇒ Merge

Returns a new instance of Merge.



18
19
20
21
22
# File 'lib/plumb/semantic_matcher.rb', line 18

def initialize(state, node = nil)
  @state = state
  @node = node
  freeze
end

Instance Attribute Details

#nodeObject (readonly)

Returns the value of attribute node.



10
11
12
# File 'lib/plumb/semantic_matcher.rb', line 10

def node
  @node
end

Class Method Details

.merged(node) ⇒ Object



13
# File 'lib/plumb/semantic_matcher.rb', line 13

def merged(node) = new(:merged, node)

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


25
# File 'lib/plumb/semantic_matcher.rb', line 25

def empty? = equal?(EMPTY)

#merged?Boolean

Returns:

  • (Boolean)


24
# File 'lib/plumb/semantic_matcher.rb', line 24

def merged? = @state == :merged

#unknown?Boolean

Returns:

  • (Boolean)


26
# File 'lib/plumb/semantic_matcher.rb', line 26

def unknown? = equal?(UNKNOWN)