solrizer 4.0.0 → 4.1.0

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
- 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