marcspec 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,7 @@
1
+ 0.7.2
2
+ * Also change methodArgs to functionArgs
1
3
  0.7.1
2
- * Forgot to update this CHANGES file.
4
+ * Forgot to update this CHANGES file.
3
5
  0.7.0
4
6
  * Change configuration for custom functions to use :functionSymbol instead of :methodSymbol. Because, you know, they're
5
7
  module functions, not class methods.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1
1
+ 0.7.2
@@ -32,7 +32,7 @@ module MARCSpec
32
32
 
33
33
  class CustomSolrSpec < SolrFieldSpec
34
34
 
35
- attr_accessor :module, :functionSymbol, :methodArgs
35
+ attr_accessor :module, :functionSymbol, :functionArgs
36
36
 
37
37
  # Get a new Custom Solr Spec based on the passed in options.
38
38
  # @param [Hash] opts Initialization options
@@ -58,7 +58,7 @@ module MARCSpec
58
58
  end
59
59
 
60
60
 
61
- @methodArgs = opts[:methodArgs] || []
61
+ @functionArgs = opts[:functionArgs] || []
62
62
 
63
63
  @first = opts[:firstOnly] || false
64
64
  @default = opts[:default] || nil
@@ -86,7 +86,7 @@ module MARCSpec
86
86
  # @return [Array<String>] An array of values returned by the custom method
87
87
 
88
88
  def raw_marc_values r, doc
89
- return @module.send(@functionSymbol, doc, r, *@methodArgs)
89
+ return @module.send(@functionSymbol, doc, r, *@functionArgs)
90
90
  end
91
91
 
92
92
 
@@ -121,9 +121,9 @@ module MARCSpec
121
121
  PP.singleline_pp(@module, s)
122
122
  s.print(",\n :functionSymbol => ")
123
123
  PP.singleline_pp(@functionSymbol, s)
124
- if @methodArgs
125
- s.print(",\n :methodArgs => ")
126
- PP.singleline_pp(@methodArgs, s)
124
+ if @functionArgs
125
+ s.print(",\n :functionArgs => ")
126
+ PP.singleline_pp(@functionArgs, s)
127
127
  end
128
128
  s.print "\n}"
129
129
  return s.string
data/lib/marcspec.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'logger'
2
+ require 'marc4j4r'
2
3
 
3
4
  $LOG = Logger.new(STDOUT)
4
5
  $LOG.level = Logger::WARN
@@ -8,4 +9,24 @@ require "marcspec/solrfieldspec"
8
9
  require "marcspec/kvmap"
9
10
  require "marcspec/multivaluemap"
10
11
  require "marcspec/specset"
11
- require "marcspec/marcfieldspec"
12
+ require "marcspec/marcfieldspec"
13
+
14
+
15
+ # Build up a little module to include in MARC4J4R::Record that
16
+ # gives us a way to cache computed values within the record itself
17
+ # It's just a hash.
18
+
19
+ module CacheSpot
20
+ def cacheadd k, v
21
+ @_cachespot ||= {}
22
+ @_cachespot[k] = v
23
+ return v
24
+ end
25
+
26
+ def cacheget k
27
+ @_cachespot ||= {}
28
+ return @_cachespot[k]
29
+ end
30
+ end
31
+
32
+ MARC4J4R::Record.send(:include, CacheSpot)
@@ -170,24 +170,24 @@ describe "CustomSolrSpec" do
170
170
  end
171
171
 
172
172
  it "accepts nil for no args" do
173
- css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :module=>A::B, :functionSymbol=>:titleUp, :methodArgs=>nil)
173
+ css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :module=>A::B, :functionSymbol=>:titleUp, :functionArgs=>nil)
174
174
  css.marc_values(@one).should.equal [@one['245'].value.upcase]
175
175
  end
176
176
 
177
177
 
178
178
  it "uses a custom method with args but no map" do
179
- css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :module=>A::B, :functionSymbol=>:titleUp, :methodArgs=>[['a', 'c']])
179
+ css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :module=>A::B, :functionSymbol=>:titleUp, :functionArgs=>[['a', 'c']])
180
180
  css.marc_values(@one).should.equal [@titleACValue.upcase]
181
181
  end
182
182
 
183
183
  it "works with a map" do
184
- css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :map=>@map, :module=>A::B, :functionSymbol=>:titleUp, :methodArgs=>[['a', 'c']])
184
+ css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :map=>@map, :module=>A::B, :functionSymbol=>:titleUp, :functionArgs=>[['a', 'c']])
185
185
  css.marc_values(@one).should.equal [@mapValue]
186
186
  end
187
187
 
188
188
  it "works with a map that has multiple return values" do
189
189
  @map[@titleACValue.upcase] = ['two', 'one']
190
- css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :map=>@map, :module=>A::B, :functionSymbol=>:titleUp, :methodArgs=>[['a', 'c']])
190
+ css = MARCSpec::CustomSolrSpec.new(:solrField=>'solrField', :map=>@map, :module=>A::B, :functionSymbol=>:titleUp, :functionArgs=>[['a', 'c']])
191
191
  css.marc_values(@one).should.equal ['two', 'one']
192
192
  end
193
193
 
data/spec/specset_spec.rb CHANGED
@@ -65,7 +65,7 @@ describe "SpecSet Basics" do
65
65
  end
66
66
 
67
67
  it "allows customs that reference previous work" do
68
- @speclist << {:solrField=>'titleSort', :module=>A::B, :functionSymbol=>:sortable, :methodArgs=>['title']}
68
+ @speclist << {:solrField=>'titleSort', :module=>A::B, :functionSymbol=>:sortable, :functionArgs=>['title']}
69
69
  ss = MARCSpec::SpecSet.new
70
70
  ss.buildSpecsFromList(@speclist)
71
71
  h = ss.hash_from_marc @one
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: 1
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 1
10
- version: 0.7.1
9
+ - 2
10
+ version: 0.7.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - BillDueber