marcspec 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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