Module: MARC::Spec
- Defined in:
- lib/marc/spec.rb,
lib/marc/spec/module_info.rb,
lib/marc/spec/queries/dsl.rb,
lib/marc/spec/queries/tag.rb,
lib/marc/spec/queries/part.rb,
lib/marc/spec/queries/query.rb,
lib/marc/spec/parsing/parser.rb,
lib/marc/spec/queries/operator.rb,
lib/marc/spec/queries/position.rb,
lib/marc/spec/queries/selector.rb,
lib/marc/spec/queries/subfield.rb,
lib/marc/spec/queries/condition.rb,
lib/marc/spec/queries/transform.rb,
lib/marc/spec/queries/applicable.rb,
lib/marc/spec/queries/al_num_range.rb,
lib/marc/spec/queries/character_spec.rb,
lib/marc/spec/queries/query_executor.rb,
lib/marc/spec/queries/subfield_value.rb,
lib/marc/spec/queries/indicator_value.rb,
lib/marc/spec/parsing/closed_int_range.rb,
lib/marc/spec/queries/comparison_string.rb,
lib/marc/spec/queries/condition_context.rb,
lib/marc/spec/queries/position_or_range.rb,
lib/marc/spec/parsing/closed_lc_alpha_range.rb
Defined Under Namespace
Modules: Parsing, Queries
Classes: ModuleInfo
Class Method Summary
collapse
Class Method Details
.execute_query(query, marc_record) ⇒ Object
27
28
29
30
|
# File 'lib/marc/spec.rb', line 27
def execute_query(query, marc_record)
executor = executor_for(query, marc_record)
executor.execute
end
|
.exists?(query_string, marc_record) ⇒ Boolean
12
13
14
15
16
|
# File 'lib/marc/spec.rb', line 12
def exists?(query_string, marc_record)
root = parse_query(query_string)
executor = executor_for(root, marc_record)
executor.any_results?
end
|
.find(query_string, marc_record) ⇒ Object
7
8
9
10
|
# File 'lib/marc/spec.rb', line 7
def find(query_string, marc_record)
root = parse_query(query_string)
execute_query(root, marc_record)
end
|
.parse_query(query_string) ⇒ Object
18
19
20
21
22
23
24
25
|
# File 'lib/marc/spec.rb', line 18
def parse_query(query_string)
parse_tree = parser.parse(query_string, reporter: reporter)
xform_result = xform.apply(parse_tree)
xform_result.is_a?(Queries::Query) ? xform_result : Queries::Query.new(tag: xform_result)
rescue Parslet::ParseFailed => e
raise ArgumentError, "Unable to parse query: #{query_string.inspect}: #{e}"
end
|