metacrunch-mab2 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e58083a8b10b6796906050c64d31ed1e3b565b92
4
- data.tar.gz: e76670a16196f8c9ab0d1ed7aa4be9592f6fe79d
3
+ metadata.gz: 3d18a21ab3c3dbd48cacdeb4385d022cff0a2f2a
4
+ data.tar.gz: bfb0dd9ee58c7c2e8bc9ca47381dc8ce729b71f2
5
5
  SHA512:
6
- metadata.gz: 6facef45723b7ae6d4c7af8f6e32ddbc4ec9a34fa81e5b80e253556fe9b4ccfe2a2058c82f3874ba945c2fea59f8ef1188c8c6785460c93fec11356d77e7b801
7
- data.tar.gz: 22a9eb459fd762b0a597bdb6472e3484dd8c5ec96fd28465ac07ec5907d0461aa1f49800f985fb68ed2fdc05fbc7a9466feeadb9125bfbb18a3c9f5ae6d6edd7
6
+ metadata.gz: d9791c95b98fba1533bf925363fe6508e985ce6edad30ca744834a281ad4bd199aa5e8f565f0b307242c635ee33cc4735fd959079b3756d4f66a23c55f03a1c1
7
+ data.tar.gz: ea69883558fa5b81adce0b51cbdc52ca2c928579174981ab6349b4fc4abd73767ba0f1517c9f04c0add14ebc0449fe82620aa01388973c0e35da6bb5506555cd
@@ -55,6 +55,14 @@ module Metacrunch
55
55
  @values.at(index)
56
56
  end
57
57
 
58
+ # ------------------------------------------------------------------------------
59
+ # Serialization
60
+ # ------------------------------------------------------------------------------
61
+
62
+ def to_xml(builder)
63
+ builder.controlfield(values.join("|"), tag: tag)
64
+ end
65
+
58
66
  private
59
67
 
60
68
  def string2values(string)
@@ -48,6 +48,18 @@ module Metacrunch
48
48
  subfields_struct[subfield.code] = subfield_set
49
49
  end
50
50
 
51
+ # ------------------------------------------------------------------------------
52
+ # Serialization
53
+ # ------------------------------------------------------------------------------
54
+
55
+ def to_xml(builder)
56
+ builder.datafield(tag: tag, ind1: ind1, ind2: ind2) do
57
+ subfields_struct.values.each do |_subfield_set|
58
+ _subfield_set.to_xml(builder)
59
+ end
60
+ end
61
+ end
62
+
51
63
  end
52
64
  end
53
65
  end
@@ -40,6 +40,16 @@ module Metacrunch
40
40
  set
41
41
  end
42
42
 
43
+ # ------------------------------------------------------------------------------
44
+ # Serialization
45
+ # ------------------------------------------------------------------------------
46
+
47
+ def to_xml(builder)
48
+ self.each do |_datafield|
49
+ _datafield.to_xml(builder)
50
+ end
51
+ end
52
+
43
53
  end
44
54
  end
45
55
  end
@@ -12,6 +12,14 @@ module Metacrunch
12
12
  @value = value
13
13
  end
14
14
 
15
+ # ------------------------------------------------------------------------------
16
+ # Serialization
17
+ # ------------------------------------------------------------------------------
18
+
19
+ def to_xml(builder)
20
+ builder.subfield(code: code, value: value)
21
+ end
22
+
15
23
  end
16
24
  end
17
25
  end
@@ -34,6 +34,20 @@ module Metacrunch
34
34
  @subfields.map{ |subfield| subfield.value }
35
35
  end
36
36
 
37
+ def first_value
38
+ values.find{ |v| v.present? }
39
+ end
40
+
41
+ # ------------------------------------------------------------------------------
42
+ # Serialization
43
+ # ------------------------------------------------------------------------------
44
+
45
+ def to_xml(builder)
46
+ self.each do |_subfield|
47
+ _subfield.to_xml(builder)
48
+ end
49
+ end
50
+
37
51
  end
38
52
  end
39
53
  end
@@ -79,10 +79,11 @@ module Metacrunch
79
79
  return set if set.empty?
80
80
 
81
81
  if ind1 || ind2
82
- filtered_datafields = set.select do |_datafield|
83
- (!ind1 || _datafield.ind1 == ind1) && (!ind2 || _datafield.ind2 == ind2)
82
+ filtered_datafields = set.select do |datafield|
83
+ (!ind1 || (ind1 == :blank ? datafield.ind1 == " " || datafield.ind1 == "-" : datafield.ind1 == ind1)) &&
84
+ (!ind2 || (ind2 == :blank ? datafield.ind2 == " " || datafield.ind2 == "-" : datafield.ind2 == ind2))
84
85
  end
85
-
86
+
86
87
  Datafield::Set.new(filtered_datafields)
87
88
  else
88
89
  set
@@ -101,6 +102,24 @@ module Metacrunch
101
102
  datafields_struct[datafield.tag] = datafield_set
102
103
  end
103
104
 
105
+ # ------------------------------------------------------------------------------
106
+ # Serialization
107
+ # ------------------------------------------------------------------------------
108
+
109
+ def to_xml
110
+ builder = Builder::XmlMarkup.new(indent: 2)
111
+ builder.instruct!(:xml, :encoding => "UTF-8")
112
+ builder.mab_xml do
113
+ controlfields_struct.values.each do |_controlfield|
114
+ _controlfield.to_xml(builder)
115
+ end
116
+
117
+ datafields_struct.values.each do |_datafield_set|
118
+ _datafield_set.to_xml(builder)
119
+ end
120
+ end
121
+ end
122
+
104
123
  end
105
124
  end
106
125
  end
@@ -1,5 +1,5 @@
1
1
  module Metacrunch
2
2
  module Mab2
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
@@ -37,7 +37,7 @@ describe Metacrunch::Mab2::Document do
37
37
  subject { document.datafields("100") }
38
38
 
39
39
  it "returns only datafields with tag=100" do
40
- expect(subject.count).to eq(2)
40
+ expect(subject.count).to eq(3)
41
41
  end
42
42
  end
43
43
 
@@ -64,6 +64,14 @@ describe Metacrunch::Mab2::Document do
64
64
  expect(subject.count).to eq(1)
65
65
  end
66
66
  end
67
+
68
+ context "given tag=100 and ind1=:blank" do
69
+ subject { document.datafields("100", ind1: :blank) }
70
+
71
+ it "returns only datafields with tag=100 and ind1=' ' or ind1=-" do
72
+ expect(subject.count).to eq(2)
73
+ end
74
+ end
67
75
  end
68
76
 
69
77
  private
@@ -88,6 +96,11 @@ private
88
96
  datafield.add_subfield(create_subfield("9", "123456789"))
89
97
  document.add_datafield(datafield)
90
98
 
99
+ datafield = create_datafield("100", ind1: " ", ind2: "1")
100
+ datafield.add_subfield(create_subfield("p", "Sievers, Michael"))
101
+ datafield.add_subfield(create_subfield("9", "123456789"))
102
+ document.add_datafield(datafield)
103
+
91
104
  datafield = create_datafield("331", ind1: "-", ind2: "1")
92
105
  datafield.add_subfield(create_subfield("a", "<<The>> art of MAB processing"))
93
106
  document.add_datafield(datafield)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metacrunch-mab2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Sprotte
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-07 00:00:00.000000000 Z
13
+ date: 2015-06-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: metacrunch
@@ -116,4 +116,3 @@ test_files:
116
116
  - spec/document/control_field_spec.rb
117
117
  - spec/document/document_spec.rb
118
118
  - spec/spec_helper.rb
119
- has_rdoc: