Module: MARC::Spec::Queries::DSL

Defined in:
lib/marc/spec/queries/dsl.rb

Instance Method Summary collapse

Instance Method Details

#all_c(*c) ⇒ Object



19
20
21
# File 'lib/marc/spec/queries/dsl.rb', line 19

def all_c(*c)
  Condition.all_of(*c)
end

#any_c(*c) ⇒ Object



23
24
25
# File 'lib/marc/spec/queries/dsl.rb', line 23

def any_c(*c)
  Condition.any_of(*c)
end

#c(*args) ⇒ Object



47
48
49
50
51
52
53
54
# 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) ⇒ Object



56
57
58
59
# File 'lib/marc/spec/queries/dsl.rb', line 56

def cspec(chars)
  # noinspection RubyArgCount
  CharacterSpec.new(chars)
end

#cstr(s) ⇒ Object



43
44
45
# File 'lib/marc/spec/queries/dsl.rb', line 43

def cstr(s)
  ComparisonString.new(s)
end

#indv(ind) ⇒ Object



61
62
63
# File 'lib/marc/spec/queries/dsl.rb', line 61

def indv(ind)
  IndicatorValue.new(ind)
end

#pos(p) ⇒ Object



39
40
41
# File 'lib/marc/spec/queries/dsl.rb', line 39

def pos(p)
  Position.new(p)
end

#q(t = nil, s: nil, c: nil, sq: []) ⇒ Object



35
36
37
# 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) ⇒ Object



31
32
33
# File 'lib/marc/spec/queries/dsl.rb', line 31

def rng(from, to = nil)
  AlNumRange.new(from, to)
end

#sf(code, index = nil) ⇒ Object



65
66
67
# File 'lib/marc/spec/queries/dsl.rb', line 65

def sf(code, index = nil)
  Subfield.new(code, index: index)
end

#sfv(sf, cspc = nil) ⇒ Object



69
70
71
72
# 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) ⇒ Object



74
75
76
# File 'lib/marc/spec/queries/dsl.rb', line 74

def tag(t, index = nil)
  Tag.new(t, index)
end

#vfv(sf) ⇒ Object



27
28
29
# File 'lib/marc/spec/queries/dsl.rb', line 27

def vfv(sf)
  sf
end