class Atomy::Pattern::Equality

Attributes

value[R]

Public Class Methods

new(value) click to toggle source
# File lib/atomy/pattern/equality.rb, line 7
def initialize(value)
  @value = value
end

Public Instance Methods

inline_matches?(gen) click to toggle source
# File lib/atomy/pattern/equality.rb, line 15
def inline_matches?(gen)
  push_value(gen)
  gen.swap
  gen.send(:==, 1)
end
matches?(val) click to toggle source
# File lib/atomy/pattern/equality.rb, line 11
def matches?(val)
  @value == val
end
target() click to toggle source
# File lib/atomy/pattern/equality.rb, line 21
def target
  @value.class
end

Private Instance Methods

push_value(gen) click to toggle source
# File lib/atomy/pattern/equality.rb, line 27
def push_value(gen)
  case @value
  when true
    gen.push_true
  when false
    gen.push_false
  when nil
    gen.push_nil
  when Integer
    gen.push_int(@value)
  else
    gen.push_literal(@value)
  end
end