marcspec 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGES CHANGED
@@ -1,3 +1,5 @@
1
+ 1.1.1
2
+ * Fixed bug with :noMapKeyDefault => :passthrough for MVMap
1
3
  1.1.0
2
4
  * Added support for Proc objects as the value in a MVMap
3
5
  1.0.0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
@@ -40,7 +40,11 @@ module MARCSpec
40
40
  if rv.size > 0
41
41
  return rv
42
42
  else
43
- return [default]
43
+ if default == :passthrough
44
+ return key
45
+ else
46
+ return default
47
+ end
44
48
  end
45
49
  end
46
50
 
data/spec/maps_spec.rb CHANGED
@@ -26,10 +26,30 @@ describe "Maps" do
26
26
  @kvmap['two'].should.equal ['2', 'zwei']
27
27
  end
28
28
 
29
- it "gets nothing on nonmatches" do
29
+ it "gets nothing on nonmatches for kvmap" do
30
30
  @kvmap['ddd'].should.equal nil
31
- @mvmap['ddd'].should.equal [nil]
32
31
  end
32
+
33
+ it "gets nothing on nonmatches for mvmap" do
34
+ @mvmap['ddd'].should.equal nil
35
+ end
36
+
37
+ it "gets default if set for nonmatches with KVMap" do
38
+ @kvmap['ddd', 'default'].should.equal 'default'
39
+ end
40
+
41
+ it "gets default if set for nonmatches with MVMap" do
42
+ @mvmap['ddd', 'default'].should.equal 'default'
43
+ end
44
+
45
+ it "gets key if default is :passthrough for nonmatches with KVMap" do
46
+ @kvmap['ddd', :passthrough].should.equal 'ddd'
47
+ end
48
+
49
+ it "gets key if default is :passthrough for nonmatches with KVMap" do
50
+ @mvmap['ddd', :passthrough].should.equal 'ddd'
51
+ end
52
+
33
53
 
34
54
  it "gets correct values from multivaluemap" do
35
55
  @mvmap['bi'].should.equal ['Bill']
@@ -40,7 +60,7 @@ describe "Maps" do
40
60
 
41
61
  it "correctly uses default value" do
42
62
  @mvmap['bi', 'default'].should.equal ['Bill']
43
- @mvmap['ddd', 'default'].should.equal ['default']
63
+ @mvmap['ddd', 'default'].should.equal 'default'
44
64
  @kvmap['ddd', 'default'].should.equal 'default'
45
65
  @kvmap['one', 'default'].should.equal '1'
46
66
  end
@@ -64,7 +84,6 @@ describe "Maps" do
64
84
 
65
85
  it "can't round-trip a multivaluemap with a Proc" do
66
86
  s = @mvmap.asPPString
67
- puts s
68
87
  newmvmap = MARCSpec::MultiValueMap.fromPPString s
69
88
  newmvmap.should.not.equal @mvmap
70
89
  end
@@ -65,6 +65,31 @@ describe "SolrFieldSpec" do
65
65
  sfs << @nonmatchingSpec
66
66
  sfs.marc_values(@one).should.equal [@default]
67
67
  end
68
+ end
69
+
70
+ describe "Solr Field Specs and maps" do
71
+
72
+ before do
73
+ @one = MARC4J4R::Reader.new("#{DIR}/data/one.dat").first
74
+ # @batch = MARC4J4R::Reader.new("#{DIR}/batch.dat").collect
75
+ @opts = {:solrField=>'solrfield'}
76
+ @titleAC = MARCSpec::VariableFieldSpec.new('245', ['a', 'c'])
77
+ @titleACValue = "The Texas ranger Sung by Beale D. Taylor."
78
+ @twosixtyC = MARCSpec::VariableFieldSpec.new('260', 'c')
79
+ @twosixtyCValue = "1939."
80
+
81
+ @nonmatchingSpec = MARCSpec::VariableFieldSpec.new('999', ['a', 'c'])
82
+
83
+ @default = 'DEFAULT'
84
+
85
+
86
+ @mapValue = "twosixtyCMapValue"
87
+ @mapValueForDefault = 'mapValueForDefaultValue'
88
+ @noMapKeyDefault = 'noMapKeyDefault'
89
+
90
+ @map = MARCSpec::KVMap.new('nameOfTheMap', {@twosixtyCValue => @mapValue, @default=>@mapValueForDefault})
91
+
92
+ end
68
93
 
69
94
  it "works with a KV Map and no defaults" do
70
95
  @opts[:map] = @map
@@ -91,7 +116,7 @@ describe "SolrFieldSpec" do
91
116
  sfs << @nonmatchingSpec
92
117
  sfs.marc_values(@one).should.equal [@default]
93
118
  end
94
-
119
+
95
120
  it "returns multiple values from a kv map when appropriate" do
96
121
  @map[@twosixtyCValue] = ['one', 'two']
97
122
  @opts[:map] = @map
@@ -109,7 +134,7 @@ describe "SolrFieldSpec" do
109
134
  sfs << @titleAC
110
135
  sfs.marc_values(@one).sort.should.equal ['one', 'two', 'three', 'four'].sort
111
136
  end
112
-
137
+
113
138
 
114
139
  it "round trips if you add the map by hand" do
115
140
  @opts[:map] = @map
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marcspec
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 0
10
- version: 1.1.0
9
+ - 1
10
+ version: 1.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - BillDueber