solrizer 4.0.0 → 4.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d9aa32a4193f5ad11975f40824475634bf149efb
4
- data.tar.gz: 6300a897b884f28fd8a335f36e6a2ee214df4d16
2
+ SHA256:
3
+ metadata.gz: dc6d242c302939e2cc964c846f06a73cd176da41c65279fa91f7bc610b140d40
4
+ data.tar.gz: 25f68fc2e37a417539103fce936893d9af55d51e0e6e057a9635851785f20000
5
5
  SHA512:
6
- metadata.gz: 955481c893fbd628a1c61a088465f40d07978647eb5d711f1ad7ff63711da6301a4a735dd7a770d2d95e63a93dc430a509d715cdeddd7a1c4b1a57131a2ed8bd
7
- data.tar.gz: c7eb036b3a788b8de7a764c077f60ef7e74ae90ce70335f613463920852cc47f5adb6541d2a304fc509c0000619f1d2601924a6fa4a314275d4ba186323952f0
6
+ metadata.gz: 4c171f8c6a6e7c3535a39d150e1b92bd052e0cc7a6a78bf668caa5258df8c6df669af62968d7c6d4481f2cb285cd3c1b845e0322d2908f60c57ccae0be526ac8
7
+ data.tar.gz: 74f5b29305e30af4326dd84618499bbca2693a2908a031a789c209012c5934eef9d8b0ff2add326dc0db48ed37ed355299dfeaa3a944dda211528078d25aaaa8
data/Gemfile CHANGED
@@ -6,6 +6,6 @@ gem 'activesupport', ENV.fetch('AS_VERSION', '5.0.1')
6
6
 
7
7
 
8
8
  group :development, :test do
9
- gem 'simplecov', :platform => :mri_19
10
- gem 'simplecov-rcov', :platform => :mri_19
9
+ gem 'simplecov'
10
+ gem 'coveralls'
11
11
  end
data/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/projecthydra/solrizer.png?branch=master)](https://travis-ci.org/projecthydra/solrizer)
4
4
  [![Gem Version](https://badge.fury.io/rb/solrizer.png)](http://badge.fury.io/rb/solrizer)
5
+ [![Dependencies](https://gemnasium.com/projecthydra/solrizer.png)](https://gemnasium.com/projecthydra/solrizer)
6
+ [![Coverage Status](https://img.shields.io/coveralls/projecthydra/solrizer.svg)](https://coveralls.io/r/projecthydra/solrizer)
7
+
5
8
 
6
9
  A lightweight tool for creating dynamic solr schema sufixes.
7
10
 
@@ -4,6 +4,7 @@ require 'active_support/core_ext/module/attribute_accessors'
4
4
  module Solrizer
5
5
  extend ActiveSupport::Autoload
6
6
 
7
+ autoload :CachingFieldMapper
7
8
  autoload :Common
8
9
  autoload :Descriptor
9
10
  autoload :FieldMapper
@@ -26,9 +27,12 @@ module Solrizer
26
27
  @@default_field_mapper = field_mapper
27
28
  end
28
29
 
29
-
30
+ def caching_field_mapper
31
+ @caching_field_mapper ||= Solrizer::CachingFieldMapper.new(default_field_mapper)
32
+ end
33
+
30
34
  def solr_name(*args)
31
- default_field_mapper.solr_name(*args)
35
+ caching_field_mapper.solr_name(*args)
32
36
  end
33
37
 
34
38
  # @params [Hash] doc the hash to insert the value into
@@ -0,0 +1,26 @@
1
+ module Solrizer
2
+ class CachingFieldMapper
3
+ # @param [FieldMapper] the object that changes arguments into a name.
4
+ def initialize(field_mapper)
5
+ @field_mapper = field_mapper
6
+ end
7
+
8
+ # Given a field name, index_type, etc., returns the corresponding Solr name.
9
+ # @param [String] field_name the ruby (term) name which will get a suffix appended to become a Solr field name
10
+ # @param opts - index_type is only needed if the FieldDescriptor requires it (e.g. :searcahble)
11
+ # @return [String] name of the solr field, based on the params
12
+ def solr_name(*args)
13
+ cache(args) do
14
+ @field_mapper.solr_name(*args)
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def cache(*args)
21
+ @cache ||= {}
22
+ @cache[args] ||= yield(*args)
23
+ end
24
+ end
25
+ end
26
+
@@ -1,3 +1,3 @@
1
1
  module Solrizer
2
- VERSION = "4.0.0"
2
+ VERSION = "4.1.0"
3
3
  end
@@ -0,0 +1,11 @@
1
+ require 'solrizer'
2
+ require 'benchmark'
3
+
4
+ n = 500_000
5
+ Benchmark.bm do |x|
6
+ x.report do
7
+ n.times do
8
+ Solrizer.solr_name('foo', :stored_searchable)
9
+ end
10
+ end
11
+ end
@@ -1,13 +1,10 @@
1
1
  require 'rubygems'
2
2
 
3
+ require 'simplecov'
4
+ require 'coveralls'
3
5
 
4
- if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.9/
5
- require 'simplecov'
6
- require 'simplecov-rcov'
7
-
8
- SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
9
- SimpleCov.start
10
- end
6
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
7
+ SimpleCov.start
11
8
 
12
9
  require 'rspec'
13
10
  require 'solrizer'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solrizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -126,6 +126,7 @@ files:
126
126
  - README.md
127
127
  - Rakefile
128
128
  - lib/solrizer.rb
129
+ - lib/solrizer/caching_field_mapper.rb
129
130
  - lib/solrizer/common.rb
130
131
  - lib/solrizer/default_descriptors.rb
131
132
  - lib/solrizer/descriptor.rb
@@ -136,6 +137,7 @@ files:
136
137
  - solrizer.gemspec
137
138
  - spec/.rspec
138
139
  - spec/fixtures/druid-bv448hq0314-descMetadata.xml
140
+ - spec/load_test.rb
139
141
  - spec/spec_helper.rb
140
142
  - spec/units/common_spec.rb
141
143
  - spec/units/field_mapper_spec.rb
@@ -160,13 +162,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
162
  version: '0'
161
163
  requirements: []
162
164
  rubyforge_project:
163
- rubygems_version: 2.6.8
165
+ rubygems_version: 2.7.1
164
166
  signing_key:
165
167
  specification_version: 4
166
168
  summary: A utility for building solr indexes, usually from Fedora repository content
167
169
  with solrizer-fedora extension gem.
168
170
  test_files:
169
171
  - spec/fixtures/druid-bv448hq0314-descMetadata.xml
172
+ - spec/load_test.rb
170
173
  - spec/spec_helper.rb
171
174
  - spec/units/common_spec.rb
172
175
  - spec/units/field_mapper_spec.rb