class Goodcheck::Pattern::Token::VarPattern

Attributes

negated[R]
patterns[R]
type[RW]

Public Class Methods

empty() click to toggle source
# File lib/goodcheck/pattern.rb, line 92
def self.empty
  VarPattern.new(patterns: [], negated: false)
end
new(patterns:, negated:) click to toggle source
# File lib/goodcheck/pattern.rb, line 57
def initialize(patterns:, negated:)
  @patterns = patterns
  @negated = negated
end

Public Instance Methods

cast(str) click to toggle source
# File lib/goodcheck/pattern.rb, line 62
def cast(str)
  case type
  when :int
    str.to_i
  when :float, :number
    str.to_f
  else
    str
  end
end
test(str) click to toggle source
# File lib/goodcheck/pattern.rb, line 73
def test(str)
  return true if patterns.empty?

  unless negated
    patterns.any? {|pattern| test2(pattern, str) }
  else
    patterns.none? {|pattern| test2(pattern, str) }
  end
end
test2(pattern, str) click to toggle source
# File lib/goodcheck/pattern.rb, line 83
def test2(pattern, str)
  case pattern
  when Numeric
    pattern == cast(str)
  else
    pattern === str
  end
end