module MARC::Spec::Queries::DSL

Public Instance Methods

all_c(*c) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 19
def all_c(*c)
  Condition.all_of(*c)
end
any_c(*c) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 23
def any_c(*c)
  Condition.any_of(*c)
end
c(*args) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 47
def c(*args)
  case args.size
  when 2
    Condition.new(args[0], right: args[1])
  when 3
    Condition.new(args[1], left: args[0], right: args[2])
  end
end
cspec(chars) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 56
def cspec(chars)
  # noinspection RubyArgCount
  CharacterSpec.new(chars)
end
cstr(s) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 43
def cstr(s)
  ComparisonString.new(s)
end
indv(ind) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 61
def indv(ind)
  IndicatorValue.new(ind)
end
pos(p) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 39
def pos(p)
  Position.new(p)
end
q(t = nil, s: nil, c: nil, sq: []) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 35
def q(t = nil, s: nil, c: nil, sq: [])
  Query.new(tag: t, selector: s, condition: c, subqueries: sq)
end
rng(from, to = nil) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 31
def rng(from, to = nil)
  AlNumRange.new(from, to)
end
sf(code, index = nil) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 65
def sf(code, index = nil)
  Subfield.new(code, index: index)
end
sfv(sf, cspc = nil) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 69
def sfv(sf, cspc = nil)
  cspc = cspec(cspc) if cspc.is_a?(PositionOrRange)
  SubfieldValue.new(sf, cspc)
end
tag(t, index = nil) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 74
def tag(t, index = nil)
  Tag.new(t, index)
end
vfv(sf) click to toggle source
# File lib/marc/spec/queries/dsl.rb, line 27
def vfv(sf)
  sf
end