Module: Mabmapper::MabXml::QueryHelper
Instance Method Summary collapse
Instance Method Details
#field(name_or_enum, options = {}) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/mabmapper/mab_xml/query_helper.rb', line 5 def field(name_or_enum, ={}) if name_or_enum.is_a?(String) query.add_field(name_or_enum, ) elsif name_or_enum.is_a?(Enumerable) name_or_enum.inject(query) { |q, name| q.add_field(name, ) } end end |
#get ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/mabmapper/mab_xml/query_helper.rb', line 21 def get results = ResultSet.new query.xml.xpath(fields_xpath).each do |field_xml| name = field_xml.attribute('tag').to_s field = Field.new(name) field_xml.xpath(subfields_xpath).each do |subfield_xml| name = subfield_xml.attribute('code').to_s value = subfield_xml.text.presence subfield = Subfield.new(name, value) field.add_subfield(subfield) end results.add_field(field) end results end |
#subfield(name_or_enum) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/mabmapper/mab_xml/query_helper.rb', line 13 def subfield(name_or_enum) if name_or_enum.is_a?(String) query.add_subfield(name_or_enum) elsif name_or_enum.is_a?(Enumerable) name_or_enum.inject(query) { |q, name| q.add_subfield(name) } end end |