Module: Travis::Conditions::V0

Defined in:
lib/travis/conditions/v0.rb,
lib/travis/conditions/v0/data.rb,
lib/travis/conditions/v0/eval.rb,
lib/travis/conditions/v0/parser.rb

Defined Under Namespace

Classes: Data, Eval, Parser, Transform

Class Method Summary collapse

Class Method Details

.eval(str, data, opts = {}) ⇒ Object



9
10
11
# File 'lib/travis/conditions/v0.rb', line 9

def eval(str, data, opts = {})
  Eval.new(parse(str, keys: data.keys), Data.new(data)).apply
end

.parse(str, opts = {}) ⇒ Object



13
14
15
16
17
18
# File 'lib/travis/conditions/v0.rb', line 13

def parse(str, opts = {})
  tree = parser(opts).parse(str)
  Transform.new.apply(tree)
rescue Parslet::ParseFailed
  raise ParseError
end

.parser(opts) ⇒ Object



20
21
22
# File 'lib/travis/conditions/v0.rb', line 20

def parser(opts)
  parsers[opts] ||= Parser.new(opts)
end

.parsersObject



24
25
26
# File 'lib/travis/conditions/v0.rb', line 24

def parsers
  @parsers ||= {}
end