solrizer 1.0.4 → 1.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.
- data/.gitignore +23 -0
- data/Gemfile +1 -16
- data/README.textile +159 -0
- data/Rakefile +2 -26
- data/SOLRIZING_OM_DOCUMENTS.textile +9 -0
- data/lib/solrizer/extractor.rb +4 -2
- data/lib/solrizer/field_mapper.rb +3 -3
- data/lib/solrizer/railtie.rb +10 -0
- data/lib/solrizer/version.rb +3 -0
- data/lib/solrizer.rb +8 -2
- data/lib/tasks/solrizer.rake +10 -3
- data/solrizer.gemspec +27 -144
- metadata +66 -198
- data/VERSION +0 -1
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,19 +1,4 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
|
4
|
-
gem "xml-simple"
|
5
|
-
gem "om", ">= 1.0.0" # only required by xml/terminology_based_solrizer ...
|
6
|
-
gem "mediashelf-loggable"
|
7
|
-
gem "stomp"
|
8
|
-
gem "daemons"
|
3
|
+
gemspec
|
9
4
|
|
10
|
-
group :development, :test do
|
11
|
-
gem "jeweler"
|
12
|
-
gem 'ruby-debug'
|
13
|
-
gem 'ruby-debug-base'
|
14
|
-
gem 'rspec', '<2.0.0'
|
15
|
-
gem 'rcov'
|
16
|
-
gem 'mocha'
|
17
|
-
gem 'yard'
|
18
|
-
gem 'RedCloth'
|
19
|
-
end
|
data/README.textile
CHANGED
@@ -2,6 +2,165 @@ h1. solrizer
|
|
2
2
|
|
3
3
|
A lightweight, configurable tool for indexing metadata into solr. Can be triggered from within your application, from the command line, or as a JMS listener.
|
4
4
|
|
5
|
+
Solrizer provides the baseline and structures for the process of solrizing. In order to actually read objects from a
|
6
|
+
datasource and write solr documents into a solr instance, you need to use an implementation specific gem, such as
|
7
|
+
"solrizer-fedora":https://github.com/projecthydra/solrizer-fedora, which provides the
|
8
|
+
mechanics for reading from a fedora repository and writing to a solr instance.
|
9
|
+
|
10
|
+
|
11
|
+
h2. Installation
|
12
|
+
|
13
|
+
The gem is hosted on rubygems.org. The best way to manage the gems for your project is to use bundler. Create a Gemfile in the root of your application and include the following:
|
14
|
+
|
15
|
+
<pre>
|
16
|
+
source "http://rubygems.org"
|
17
|
+
|
18
|
+
gem 'solrizer'
|
19
|
+
</pre>
|
20
|
+
|
21
|
+
Then:
|
22
|
+
|
23
|
+
<pre>bundle install</pre>
|
24
|
+
|
25
|
+
h2. Usage
|
26
|
+
|
27
|
+
h3. Fire up the console:
|
28
|
+
|
29
|
+
The code snippets in the following sections can be cut/paste into your console, giving you the opportunity to play with Solrizer
|
30
|
+
and demonstrate the functionality underlying the implementation-specific gems, such as solrizer-fedora.
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
Start up a console and load solrizer:
|
35
|
+
|
36
|
+
<pre>
|
37
|
+
irb
|
38
|
+
require "rubygems"
|
39
|
+
require "solrizer"
|
40
|
+
</pre>
|
41
|
+
|
42
|
+
|
43
|
+
h3. Field Mapper
|
44
|
+
|
45
|
+
The FieldMapper maps term names and values to Solr fields, based on the term’s data type and any index_as options. Solrizer comes with default mappings (which are defined in the config/solr_mappings.yml):
|
46
|
+
|
47
|
+
<pre>
|
48
|
+
default_mapper = Solrizer::FieldMapper::Default.new
|
49
|
+
|
50
|
+
# some of the default mappings in solrizer
|
51
|
+
default_mapper.solr_name("foo",:string) # returns foo_t
|
52
|
+
default_mapper.solr_name("foo",:date) # returns foo_dt
|
53
|
+
default_mapper.solr_name("foo",:integer) # returns foo_i
|
54
|
+
default_mapper.solr_name("foo",:string,:facetable) # returns foo_facet
|
55
|
+
default_mapper.solr_name("foo",:text,:facetable) # returns foo_facet
|
56
|
+
default_mapper.solr_name("foo",:integer,:facetable) # returns foo_facet
|
57
|
+
</pre>
|
58
|
+
|
59
|
+
FieldMapper provides some defaults:
|
60
|
+
<pre>
|
61
|
+
default_mapper.solr_names_and_values("foo","bar",:string,[:facetable]) # returns searchable and facetable by default => {"foo_facet"=>["bar"], "foo_t"=>["bar"]}
|
62
|
+
default_mapper.solr_names_and_values("foo","bar",:string,[:not_searchable, :facetable]) # returns just facetable => {"foo_facet"=>["bar"]}
|
63
|
+
</pre>
|
64
|
+
Which can be tweaked:
|
65
|
+
<pre>
|
66
|
+
default_mapper.default_index_types << :facetable
|
67
|
+
default_mapper.solr_names_and_values("foo","bar",:string,[]) # returns searchable and facetable by default => {"foo_facet"=>["bar"], "foo_t"=>["bar"]}
|
68
|
+
</pre>
|
69
|
+
|
70
|
+
Custom Mappings can also be provided (with custom converters):
|
71
|
+
|
72
|
+
<pre>
|
73
|
+
class CustomMapper < Solrizer::FieldMapper
|
74
|
+
index_as :searchable, :suffix => "_search" do |type|
|
75
|
+
type.reversed :suffix => "_reverse" do |value|
|
76
|
+
value.reverse
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
</pre>
|
81
|
+
|
82
|
+
<pre>
|
83
|
+
custom_mapper = CustomMapper.new
|
84
|
+
|
85
|
+
custom_mapper.solr_names_and_values("foo","bar",:string,[:searchable]) # returns {"foo_search"=>["bar"]}
|
86
|
+
custom_mapper.solr_names_and_values("foo","bar",:reversed,[:searchable]) # returns {"foo_reverse"=>["rab"]}
|
87
|
+
</pre>
|
88
|
+
|
89
|
+
For more detailed information on custom mappings, see the documetnation for the FieldMapper class.
|
90
|
+
|
91
|
+
h3. Extractor and Extractor Mixins
|
92
|
+
|
93
|
+
Solrizer::Extractor provides utilities for extracting solr fields from objects or inserting solr fields into documents:
|
94
|
+
|
95
|
+
<pre>
|
96
|
+
extractor = Solrizer::Extractor.new
|
97
|
+
|
98
|
+
extractor.format_node_value(["foo ","\n bar"]) # returns "foo bar"
|
99
|
+
|
100
|
+
solr_doc = Hash.new
|
101
|
+
extractor.insert_solr_field_value(solr_doc, "foo","bar") # solr_doc is now {"foo" => ["bar"]}
|
102
|
+
extractor.insert_solr_field_value(solr_doc,"foo","baz") # solr_doc is now {"foo" => ["bar","baz"]}
|
103
|
+
extractor.insert_solr_field_value(solr_doc, "boo","hoo") # solr_doc is now {"foo" => ["bar","baz"], "boo" => ["hoo"]}
|
104
|
+
</pre>
|
105
|
+
|
106
|
+
h4. Solrizer provides some default mixins:
|
107
|
+
|
108
|
+
* Solrizer::HTML::Extractor -=> provides html_to_solr method
|
109
|
+
* Solrizer::XML::Extractor -=> provides xml_to_solr method
|
110
|
+
|
111
|
+
<pre>
|
112
|
+
xml = "<fields><foo>bar</foo><bar>baz</bar></fields>"
|
113
|
+
|
114
|
+
extractor.xml_to_solr(xml) # returns {:foo_t=>"bar", :bar_t=>"baz"}
|
115
|
+
</pre>
|
116
|
+
|
117
|
+
h4. Solrizer::XML::TerminologyBasedSolrizer
|
118
|
+
|
119
|
+
Another powerful mixin for use with classes that include the OM::XML::Document module is Solrizer::XML::TerminologyBasedSolrizer.
|
120
|
+
The methods provided by this module map provides a robust way of mapping terms and solr fields via om terminologies. A notable example
|
121
|
+
can be found in ActiveFedora::NokogiriDatatstream.
|
122
|
+
|
123
|
+
|
124
|
+
h2. JMS Listener for Hydra Rails Applications
|
125
|
+
|
126
|
+
h3. The executables: solrizer and solrizerd
|
127
|
+
|
128
|
+
The solrizer gem provides two executables:
|
129
|
+
|
130
|
+
* solrizer is a stomp consumer which listens for fedora.apim.updates and solrizes (or de-solrizes) objects accordingly.
|
131
|
+
* solrizerd is a wrapper script that spawns a daemonized version of solrizer and handles start|stop|restart|status requests.
|
132
|
+
|
133
|
+
h3. Usage
|
134
|
+
|
135
|
+
The usage for solrizerd is as follows:
|
136
|
+
|
137
|
+
<pre>
|
138
|
+
solrizerd command --hydra_home PATH [options]
|
139
|
+
</pre>
|
140
|
+
|
141
|
+
The commands are as follows:
|
142
|
+
* start start an instance of the application
|
143
|
+
* stop stop all instances of the application
|
144
|
+
* restart stop all instances and restart them afterwards
|
145
|
+
* status show status (PID) of application instances
|
146
|
+
|
147
|
+
Required parameters:
|
148
|
+
|
149
|
+
--hydra_home: this is the path to your hydra rails applications' root directory. Solrizerd needs this in order to load all your models and corresponding terminoligies.
|
150
|
+
|
151
|
+
The options:
|
152
|
+
* -p, --port Stomp port 61613
|
153
|
+
* -o, --host Host to connect to localhost
|
154
|
+
* -u, --user User name for stomp listener
|
155
|
+
* -w, --password Password for stomp listener
|
156
|
+
* -d, --destination Topic to listen to (default: /topic/fedora.apim.update)
|
157
|
+
* -h, --help Display this screen
|
158
|
+
|
159
|
+
Note:
|
160
|
+
|
161
|
+
Since the solrizer script must fire up your hydra rails application, it must have all the gems installed that your hydra instance needs.
|
162
|
+
|
163
|
+
|
5
164
|
h2. Note on Patches/Pull Requests
|
6
165
|
|
7
166
|
* Fork the project.
|
data/Rakefile
CHANGED
@@ -1,35 +1,11 @@
|
|
1
|
+
require 'bundler'
|
1
2
|
require 'rubygems'
|
2
3
|
require 'rake'
|
3
4
|
|
4
5
|
# load rake tasks in lib/tasks
|
5
6
|
Dir.glob('lib/tasks/*.rake').each { |r| import r }
|
6
7
|
|
7
|
-
|
8
|
-
require 'jeweler'
|
9
|
-
Jeweler::Tasks.new do |gem|
|
10
|
-
gem.name = "solrizer"
|
11
|
-
gem.summary = %Q{A utility for building solr indexes, usually from Fedora repository content.}
|
12
|
-
gem.description = %Q{Use solrizer to populate solr indexes from Fedora repository content or from other sources. You can run solrizer from within your apps, using the provided rake tasks, or as a JMS listener}
|
13
|
-
gem.email = "matt.zumwalt@yourmediashelf.com"
|
14
|
-
gem.homepage = "http://github.com/projecthydra/solrizer"
|
15
|
-
gem.authors = ["Matt Zumwalt"]
|
16
|
-
gem.executables = ["solrizer","solrizerd"]
|
17
|
-
gem.add_dependency "nokogiri"
|
18
|
-
gem.add_dependency "om"
|
19
|
-
gem.add_dependency "nokogiri"
|
20
|
-
gem.add_dependency "mediashelf-loggable"
|
21
|
-
gem.add_development_dependency "jeweler"
|
22
|
-
gem.add_development_dependency 'ruby-debug'
|
23
|
-
gem.add_development_dependency 'ruby-debug-base'
|
24
|
-
gem.add_development_dependency 'rspec', '<2.0.0'
|
25
|
-
gem.add_development_dependency 'mocha'
|
26
|
-
|
27
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
28
|
-
end
|
29
|
-
Jeweler::GemcutterTasks.new
|
30
|
-
rescue LoadError
|
31
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
32
|
-
end
|
8
|
+
Bundler::GemHelper.install_tasks
|
33
9
|
|
34
10
|
require 'spec/rake/spectask'
|
35
11
|
Spec::Rake::SpecTask.new(:spec) do |spec|
|
data/lib/solrizer/extractor.rb
CHANGED
@@ -6,12 +6,14 @@ module Solrizer
|
|
6
6
|
# Provides utilities for extracting solr fields from a variety of objects and/or creating solr documents from a given object
|
7
7
|
# Note: These utilities are optional. You can implement .to_solr directly on your classes if you want to bypass using Extractors.
|
8
8
|
#
|
9
|
-
# Each of the Solrizer implementations provides its own Extractor module that extends the behaviors of Solrizer::Extractor
|
10
|
-
# with methods specific to that implementation (ie. extract_tag, extract_rels_ext, xml_to_solr, html_to_solr)
|
9
|
+
# Each of the Solrizer implementations (ie. solrizer-fedora) provides its own Extractor module that extends the behaviors of Solrizer::Extractor
|
10
|
+
# with methods specific to that implementation (ie. extract_tag, extract_rels_ext, xml_to_solr, html_to_solr).
|
11
|
+
# By convention, the solrizer implementations will mix their own Extractors' behaviors into this class when you load them into an application.
|
11
12
|
#
|
12
13
|
class Extractor
|
13
14
|
|
14
15
|
# Insert +field_value+ for +field_name+ into +solr_doc+
|
16
|
+
# Handles inserting new values into a Hash while ensuring that you don't destroy or overwrite any existing values in the hash.
|
15
17
|
# Ensures that field values are always appended to arrays within the values hash.
|
16
18
|
# Also ensures that values are run through format_node_value
|
17
19
|
# @param [Hash] solr_doc
|
@@ -147,12 +147,12 @@ module Solrizer
|
|
147
147
|
# Loads solr mappings from yml file.
|
148
148
|
# Assumes that string values are solr field name suffixes.
|
149
149
|
# This is meant as a simple entry point for working with solr mappings. For more powerful control over solr mappings, create your own subclasses of FieldMapper instead of using a yml file.
|
150
|
-
# @param [String] config_path This is the path to the directory where your mappings file is stored. Defaults to "
|
150
|
+
# @param [String] config_path This is the path to the directory where your mappings file is stored. Defaults to "Rails.root/config/solr_mappings.yml"
|
151
151
|
def self.load_mappings( config_path=nil )
|
152
152
|
|
153
153
|
if config_path.nil?
|
154
|
-
if defined?(
|
155
|
-
config_path = File.join(
|
154
|
+
if defined?(Rails.root) && !Rails.root.nil?
|
155
|
+
config_path = File.join(Rails.root, "config", "solr_mappings.yml")
|
156
156
|
end
|
157
157
|
# Default to using the config file within the gem
|
158
158
|
if !File.exist?(config_path.to_s)
|
data/lib/solrizer.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
module Solrizer
|
2
|
+
module Solrizer
|
3
|
+
def self.version
|
4
|
+
Solrizer::VERSION
|
5
|
+
end
|
6
|
+
end
|
3
7
|
|
4
8
|
require "solrizer/extractor"
|
5
9
|
# Dir[File.join(File.dirname(__FILE__),"solrizer","*.rb")].each {|file| require file }
|
6
10
|
Dir[File.join(File.dirname(__FILE__),"solrizer","*.rb")].each do |file|
|
7
|
-
require "solrizer/"+File.basename(file, File.extname(file))
|
11
|
+
require "solrizer/"+File.basename(file, File.extname(file)) unless file.match(/railtie.rb$/)
|
8
12
|
end
|
13
|
+
|
14
|
+
require 'solrizer/railtie' if defined?(Rails) && Rails.version >= '3.0'
|
data/lib/tasks/solrizer.rake
CHANGED
@@ -12,9 +12,16 @@ begin
|
|
12
12
|
doc_destination = File.join(project_root, 'doc')
|
13
13
|
|
14
14
|
YARD::Rake::YardocTask.new(:doc) do |yt|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
readme_filename = 'README.textile'
|
16
|
+
textile_docs = []
|
17
|
+
Dir[File.join(project_root, "*.textile")].each_with_index do |f, index|
|
18
|
+
unless f.include?("/#{readme_filename}") # Skip readme, which is already built by the --readme option
|
19
|
+
textile_docs << '-'
|
20
|
+
textile_docs << f
|
21
|
+
end
|
22
|
+
end
|
23
|
+
yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) + textile_docs
|
24
|
+
yt.options = ['--output-dir', doc_destination, '--readme', readme_filename]
|
18
25
|
end
|
19
26
|
rescue LoadError
|
20
27
|
desc "Generate YARD Documentation"
|
data/solrizer.gemspec
CHANGED
@@ -1,155 +1,38 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "solrizer/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
6
|
+
s.name = "solrizer"
|
7
|
+
s.version = Solrizer::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Matt Zumwalt"]
|
10
|
+
s.email = %q{matt.zumwalt@yourmediashelf.com}
|
11
|
+
s.homepage = %q{http://github.com/projecthydra/solrizer}
|
12
|
+
s.summary = %q{A utility for building solr indexes, usually from Fedora repository content.}
|
13
13
|
s.description = %q{Use solrizer to populate solr indexes from Fedora repository content or from other sources. You can run solrizer from within your apps, using the provided rake tasks, or as a JMS listener}
|
14
|
-
|
15
|
-
s.
|
14
|
+
|
15
|
+
s.add_dependency "nokogiri"
|
16
|
+
s.add_dependency "om", ">=1.0.0"
|
17
|
+
s.add_dependency "xml-simple"
|
18
|
+
s.add_dependency "mediashelf-loggable"
|
19
|
+
s.add_dependency "stomp"
|
20
|
+
s.add_dependency "daemons"
|
21
|
+
s.add_development_dependency 'ruby-debug'
|
22
|
+
s.add_development_dependency 'ruby-debug-base'
|
23
|
+
s.add_development_dependency 'rspec', '<2.0.0'
|
24
|
+
s.add_development_dependency 'rcov'
|
25
|
+
s.add_development_dependency 'mocha'
|
26
|
+
s.add_development_dependency 'yard'
|
27
|
+
s.add_development_dependency 'RedCloth'
|
28
|
+
|
29
|
+
s.files = `git ls-files`.split("\n")
|
30
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
31
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
32
|
s.extra_rdoc_files = [
|
17
33
|
"LICENSE",
|
18
34
|
"README.textile"
|
19
35
|
]
|
20
|
-
s.files = [
|
21
|
-
".rvmrc",
|
22
|
-
"Gemfile",
|
23
|
-
"Gemfile.lock",
|
24
|
-
"History.txt",
|
25
|
-
"LICENSE",
|
26
|
-
"README.textile",
|
27
|
-
"Rakefile",
|
28
|
-
"VERSION",
|
29
|
-
"bin/solrizer",
|
30
|
-
"bin/solrizerd",
|
31
|
-
"config/fedora.yml",
|
32
|
-
"config/hydra_types.yml",
|
33
|
-
"config/solr.yml",
|
34
|
-
"config/solr_mappings.yml",
|
35
|
-
"config/solr_mappings_af_0.1.yml",
|
36
|
-
"lib/solrizer.rb",
|
37
|
-
"lib/solrizer/extractor.rb",
|
38
|
-
"lib/solrizer/field_mapper.rb",
|
39
|
-
"lib/solrizer/field_name_mapper.rb",
|
40
|
-
"lib/solrizer/html.rb",
|
41
|
-
"lib/solrizer/html/extractor.rb",
|
42
|
-
"lib/solrizer/xml.rb",
|
43
|
-
"lib/solrizer/xml/extractor.rb",
|
44
|
-
"lib/solrizer/xml/terminology_based_solrizer.rb",
|
45
|
-
"lib/tasks/solrizer.rake",
|
46
|
-
"solrizer.gemspec",
|
47
|
-
"spec/.rspec",
|
48
|
-
"spec/fixtures/druid-bv448hq0314-descMetadata.xml",
|
49
|
-
"spec/fixtures/druid-bv448hq0314-extProperties.xml",
|
50
|
-
"spec/fixtures/druid-cm234kq4672-extProperties.xml",
|
51
|
-
"spec/fixtures/druid-cm234kq4672-stories.xml",
|
52
|
-
"spec/fixtures/druid-hc513kw4806-descMetadata.xml",
|
53
|
-
"spec/fixtures/mods_articles/hydrangea_article1.xml",
|
54
|
-
"spec/fixtures/test_solr_mappings.yml",
|
55
|
-
"spec/rcov.opts",
|
56
|
-
"spec/spec_helper.rb",
|
57
|
-
"spec/units/extractor_spec.rb",
|
58
|
-
"spec/units/field_mapper_spec.rb",
|
59
|
-
"spec/units/field_name_mapper_spec.rb",
|
60
|
-
"spec/units/xml_extractor_spec.rb",
|
61
|
-
"spec/units/xml_terminology_based_solrizer_spec.rb"
|
62
|
-
]
|
63
|
-
s.homepage = %q{http://github.com/projecthydra/solrizer}
|
64
36
|
s.require_paths = ["lib"]
|
65
|
-
s.rubygems_version = %q{1.3.7}
|
66
|
-
s.summary = %q{A utility for building solr indexes, usually from Fedora repository content.}
|
67
|
-
s.test_files = [
|
68
|
-
"spec/spec_helper.rb",
|
69
|
-
"spec/units/extractor_spec.rb",
|
70
|
-
"spec/units/field_mapper_spec.rb",
|
71
|
-
"spec/units/field_name_mapper_spec.rb",
|
72
|
-
"spec/units/xml_extractor_spec.rb",
|
73
|
-
"spec/units/xml_terminology_based_solrizer_spec.rb"
|
74
|
-
]
|
75
|
-
|
76
|
-
if s.respond_to? :specification_version then
|
77
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
78
|
-
s.specification_version = 3
|
79
|
-
|
80
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
81
|
-
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
82
|
-
s.add_runtime_dependency(%q<xml-simple>, [">= 0"])
|
83
|
-
s.add_runtime_dependency(%q<om>, [">= 1.0.0"])
|
84
|
-
s.add_runtime_dependency(%q<mediashelf-loggable>, [">= 0"])
|
85
|
-
s.add_runtime_dependency(%q<stomp>, [">= 0"])
|
86
|
-
s.add_runtime_dependency(%q<daemons>, [">= 0"])
|
87
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
88
|
-
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
89
|
-
s.add_development_dependency(%q<ruby-debug-base>, [">= 0"])
|
90
|
-
s.add_development_dependency(%q<rspec>, ["< 2.0.0"])
|
91
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
92
|
-
s.add_development_dependency(%q<mocha>, [">= 0"])
|
93
|
-
s.add_development_dependency(%q<yard>, [">= 0"])
|
94
|
-
s.add_development_dependency(%q<RedCloth>, [">= 0"])
|
95
|
-
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
96
|
-
s.add_runtime_dependency(%q<om>, [">= 0"])
|
97
|
-
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
98
|
-
s.add_runtime_dependency(%q<mediashelf-loggable>, [">= 0"])
|
99
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
100
|
-
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
101
|
-
s.add_development_dependency(%q<ruby-debug-base>, [">= 0"])
|
102
|
-
s.add_development_dependency(%q<rspec>, ["< 2.0.0"])
|
103
|
-
s.add_development_dependency(%q<mocha>, [">= 0"])
|
104
|
-
else
|
105
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
106
|
-
s.add_dependency(%q<xml-simple>, [">= 0"])
|
107
|
-
s.add_dependency(%q<om>, [">= 1.0.0"])
|
108
|
-
s.add_dependency(%q<mediashelf-loggable>, [">= 0"])
|
109
|
-
s.add_dependency(%q<stomp>, [">= 0"])
|
110
|
-
s.add_dependency(%q<daemons>, [">= 0"])
|
111
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
112
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
113
|
-
s.add_dependency(%q<ruby-debug-base>, [">= 0"])
|
114
|
-
s.add_dependency(%q<rspec>, ["< 2.0.0"])
|
115
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
116
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
117
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
118
|
-
s.add_dependency(%q<RedCloth>, [">= 0"])
|
119
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
120
|
-
s.add_dependency(%q<om>, [">= 0"])
|
121
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
122
|
-
s.add_dependency(%q<mediashelf-loggable>, [">= 0"])
|
123
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
124
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
125
|
-
s.add_dependency(%q<ruby-debug-base>, [">= 0"])
|
126
|
-
s.add_dependency(%q<rspec>, ["< 2.0.0"])
|
127
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
128
|
-
end
|
129
|
-
else
|
130
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
131
|
-
s.add_dependency(%q<xml-simple>, [">= 0"])
|
132
|
-
s.add_dependency(%q<om>, [">= 1.0.0"])
|
133
|
-
s.add_dependency(%q<mediashelf-loggable>, [">= 0"])
|
134
|
-
s.add_dependency(%q<stomp>, [">= 0"])
|
135
|
-
s.add_dependency(%q<daemons>, [">= 0"])
|
136
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
137
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
138
|
-
s.add_dependency(%q<ruby-debug-base>, [">= 0"])
|
139
|
-
s.add_dependency(%q<rspec>, ["< 2.0.0"])
|
140
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
141
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
142
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
143
|
-
s.add_dependency(%q<RedCloth>, [">= 0"])
|
144
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
145
|
-
s.add_dependency(%q<om>, [">= 0"])
|
146
|
-
s.add_dependency(%q<nokogiri>, [">= 0"])
|
147
|
-
s.add_dependency(%q<mediashelf-loggable>, [">= 0"])
|
148
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
149
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
150
|
-
s.add_dependency(%q<ruby-debug-base>, [">= 0"])
|
151
|
-
s.add_dependency(%q<rspec>, ["< 2.0.0"])
|
152
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
153
|
-
end
|
154
37
|
end
|
155
38
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solrizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 19
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.4
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Zumwalt
|
@@ -15,28 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-06-21 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :runtime
|
24
21
|
name: nokogiri
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 3
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
version: "0"
|
34
|
-
requirement: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
22
|
prerelease: false
|
37
|
-
|
38
|
-
name: xml-simple
|
39
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
40
24
|
none: false
|
41
25
|
requirements:
|
42
26
|
- - ">="
|
@@ -45,12 +29,12 @@ dependencies:
|
|
45
29
|
segments:
|
46
30
|
- 0
|
47
31
|
version: "0"
|
48
|
-
requirement: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
prerelease: false
|
51
32
|
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
52
35
|
name: om
|
53
|
-
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
54
38
|
none: false
|
55
39
|
requirements:
|
56
40
|
- - ">="
|
@@ -61,12 +45,12 @@ dependencies:
|
|
61
45
|
- 0
|
62
46
|
- 0
|
63
47
|
version: 1.0.0
|
64
|
-
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
65
50
|
- !ruby/object:Gem::Dependency
|
51
|
+
name: xml-simple
|
66
52
|
prerelease: false
|
67
|
-
|
68
|
-
name: mediashelf-loggable
|
69
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
70
54
|
none: false
|
71
55
|
requirements:
|
72
56
|
- - ">="
|
@@ -75,12 +59,12 @@ dependencies:
|
|
75
59
|
segments:
|
76
60
|
- 0
|
77
61
|
version: "0"
|
78
|
-
|
62
|
+
type: :runtime
|
63
|
+
version_requirements: *id003
|
79
64
|
- !ruby/object:Gem::Dependency
|
65
|
+
name: mediashelf-loggable
|
80
66
|
prerelease: false
|
81
|
-
|
82
|
-
name: stomp
|
83
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
84
68
|
none: false
|
85
69
|
requirements:
|
86
70
|
- - ">="
|
@@ -89,12 +73,12 @@ dependencies:
|
|
89
73
|
segments:
|
90
74
|
- 0
|
91
75
|
version: "0"
|
92
|
-
|
76
|
+
type: :runtime
|
77
|
+
version_requirements: *id004
|
93
78
|
- !ruby/object:Gem::Dependency
|
79
|
+
name: stomp
|
94
80
|
prerelease: false
|
95
|
-
|
96
|
-
name: daemons
|
97
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
98
82
|
none: false
|
99
83
|
requirements:
|
100
84
|
- - ">="
|
@@ -103,12 +87,12 @@ dependencies:
|
|
103
87
|
segments:
|
104
88
|
- 0
|
105
89
|
version: "0"
|
106
|
-
|
90
|
+
type: :runtime
|
91
|
+
version_requirements: *id005
|
107
92
|
- !ruby/object:Gem::Dependency
|
93
|
+
name: daemons
|
108
94
|
prerelease: false
|
109
|
-
|
110
|
-
name: jeweler
|
111
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
112
96
|
none: false
|
113
97
|
requirements:
|
114
98
|
- - ">="
|
@@ -117,12 +101,12 @@ dependencies:
|
|
117
101
|
segments:
|
118
102
|
- 0
|
119
103
|
version: "0"
|
120
|
-
|
104
|
+
type: :runtime
|
105
|
+
version_requirements: *id006
|
121
106
|
- !ruby/object:Gem::Dependency
|
122
|
-
prerelease: false
|
123
|
-
type: :development
|
124
107
|
name: ruby-debug
|
125
|
-
|
108
|
+
prerelease: false
|
109
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
126
110
|
none: false
|
127
111
|
requirements:
|
128
112
|
- - ">="
|
@@ -131,12 +115,12 @@ dependencies:
|
|
131
115
|
segments:
|
132
116
|
- 0
|
133
117
|
version: "0"
|
134
|
-
requirement: *id008
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
prerelease: false
|
137
118
|
type: :development
|
119
|
+
version_requirements: *id007
|
120
|
+
- !ruby/object:Gem::Dependency
|
138
121
|
name: ruby-debug-base
|
139
|
-
|
122
|
+
prerelease: false
|
123
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
140
124
|
none: false
|
141
125
|
requirements:
|
142
126
|
- - ">="
|
@@ -145,12 +129,12 @@ dependencies:
|
|
145
129
|
segments:
|
146
130
|
- 0
|
147
131
|
version: "0"
|
148
|
-
requirement: *id009
|
149
|
-
- !ruby/object:Gem::Dependency
|
150
|
-
prerelease: false
|
151
132
|
type: :development
|
133
|
+
version_requirements: *id008
|
134
|
+
- !ruby/object:Gem::Dependency
|
152
135
|
name: rspec
|
153
|
-
|
136
|
+
prerelease: false
|
137
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
154
138
|
none: false
|
155
139
|
requirements:
|
156
140
|
- - <
|
@@ -161,40 +145,12 @@ dependencies:
|
|
161
145
|
- 0
|
162
146
|
- 0
|
163
147
|
version: 2.0.0
|
164
|
-
requirement: *id010
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
prerelease: false
|
167
148
|
type: :development
|
168
|
-
|
169
|
-
version_requirements: &id011 !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
|
-
requirements:
|
172
|
-
- - ">="
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
hash: 3
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
version: "0"
|
178
|
-
requirement: *id011
|
179
|
-
- !ruby/object:Gem::Dependency
|
180
|
-
prerelease: false
|
181
|
-
type: :development
|
182
|
-
name: mocha
|
183
|
-
version_requirements: &id012 !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
|
-
requirements:
|
186
|
-
- - ">="
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
hash: 3
|
189
|
-
segments:
|
190
|
-
- 0
|
191
|
-
version: "0"
|
192
|
-
requirement: *id012
|
149
|
+
version_requirements: *id009
|
193
150
|
- !ruby/object:Gem::Dependency
|
151
|
+
name: rcov
|
194
152
|
prerelease: false
|
195
|
-
|
196
|
-
name: yard
|
197
|
-
version_requirements: &id013 !ruby/object:Gem::Requirement
|
153
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
198
154
|
none: false
|
199
155
|
requirements:
|
200
156
|
- - ">="
|
@@ -203,82 +159,12 @@ dependencies:
|
|
203
159
|
segments:
|
204
160
|
- 0
|
205
161
|
version: "0"
|
206
|
-
requirement: *id013
|
207
|
-
- !ruby/object:Gem::Dependency
|
208
|
-
prerelease: false
|
209
162
|
type: :development
|
210
|
-
|
211
|
-
version_requirements: &id014 !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
|
-
requirements:
|
214
|
-
- - ">="
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
hash: 3
|
217
|
-
segments:
|
218
|
-
- 0
|
219
|
-
version: "0"
|
220
|
-
requirement: *id014
|
221
|
-
- !ruby/object:Gem::Dependency
|
222
|
-
prerelease: false
|
223
|
-
type: :runtime
|
224
|
-
name: nokogiri
|
225
|
-
version_requirements: &id015 !ruby/object:Gem::Requirement
|
226
|
-
none: false
|
227
|
-
requirements:
|
228
|
-
- - ">="
|
229
|
-
- !ruby/object:Gem::Version
|
230
|
-
hash: 3
|
231
|
-
segments:
|
232
|
-
- 0
|
233
|
-
version: "0"
|
234
|
-
requirement: *id015
|
235
|
-
- !ruby/object:Gem::Dependency
|
236
|
-
prerelease: false
|
237
|
-
type: :runtime
|
238
|
-
name: om
|
239
|
-
version_requirements: &id016 !ruby/object:Gem::Requirement
|
240
|
-
none: false
|
241
|
-
requirements:
|
242
|
-
- - ">="
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
hash: 3
|
245
|
-
segments:
|
246
|
-
- 0
|
247
|
-
version: "0"
|
248
|
-
requirement: *id016
|
249
|
-
- !ruby/object:Gem::Dependency
|
250
|
-
prerelease: false
|
251
|
-
type: :runtime
|
252
|
-
name: nokogiri
|
253
|
-
version_requirements: &id017 !ruby/object:Gem::Requirement
|
254
|
-
none: false
|
255
|
-
requirements:
|
256
|
-
- - ">="
|
257
|
-
- !ruby/object:Gem::Version
|
258
|
-
hash: 3
|
259
|
-
segments:
|
260
|
-
- 0
|
261
|
-
version: "0"
|
262
|
-
requirement: *id017
|
263
|
-
- !ruby/object:Gem::Dependency
|
264
|
-
prerelease: false
|
265
|
-
type: :runtime
|
266
|
-
name: mediashelf-loggable
|
267
|
-
version_requirements: &id018 !ruby/object:Gem::Requirement
|
268
|
-
none: false
|
269
|
-
requirements:
|
270
|
-
- - ">="
|
271
|
-
- !ruby/object:Gem::Version
|
272
|
-
hash: 3
|
273
|
-
segments:
|
274
|
-
- 0
|
275
|
-
version: "0"
|
276
|
-
requirement: *id018
|
163
|
+
version_requirements: *id010
|
277
164
|
- !ruby/object:Gem::Dependency
|
165
|
+
name: mocha
|
278
166
|
prerelease: false
|
279
|
-
|
280
|
-
name: jeweler
|
281
|
-
version_requirements: &id019 !ruby/object:Gem::Requirement
|
167
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
282
168
|
none: false
|
283
169
|
requirements:
|
284
170
|
- - ">="
|
@@ -287,26 +173,12 @@ dependencies:
|
|
287
173
|
segments:
|
288
174
|
- 0
|
289
175
|
version: "0"
|
290
|
-
requirement: *id019
|
291
|
-
- !ruby/object:Gem::Dependency
|
292
|
-
prerelease: false
|
293
176
|
type: :development
|
294
|
-
|
295
|
-
version_requirements: &id020 !ruby/object:Gem::Requirement
|
296
|
-
none: false
|
297
|
-
requirements:
|
298
|
-
- - ">="
|
299
|
-
- !ruby/object:Gem::Version
|
300
|
-
hash: 3
|
301
|
-
segments:
|
302
|
-
- 0
|
303
|
-
version: "0"
|
304
|
-
requirement: *id020
|
177
|
+
version_requirements: *id011
|
305
178
|
- !ruby/object:Gem::Dependency
|
179
|
+
name: yard
|
306
180
|
prerelease: false
|
307
|
-
|
308
|
-
name: ruby-debug-base
|
309
|
-
version_requirements: &id021 !ruby/object:Gem::Requirement
|
181
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
310
182
|
none: false
|
311
183
|
requirements:
|
312
184
|
- - ">="
|
@@ -315,28 +187,12 @@ dependencies:
|
|
315
187
|
segments:
|
316
188
|
- 0
|
317
189
|
version: "0"
|
318
|
-
requirement: *id021
|
319
|
-
- !ruby/object:Gem::Dependency
|
320
|
-
prerelease: false
|
321
190
|
type: :development
|
322
|
-
|
323
|
-
version_requirements: &id022 !ruby/object:Gem::Requirement
|
324
|
-
none: false
|
325
|
-
requirements:
|
326
|
-
- - <
|
327
|
-
- !ruby/object:Gem::Version
|
328
|
-
hash: 15
|
329
|
-
segments:
|
330
|
-
- 2
|
331
|
-
- 0
|
332
|
-
- 0
|
333
|
-
version: 2.0.0
|
334
|
-
requirement: *id022
|
191
|
+
version_requirements: *id012
|
335
192
|
- !ruby/object:Gem::Dependency
|
193
|
+
name: RedCloth
|
336
194
|
prerelease: false
|
337
|
-
|
338
|
-
name: mocha
|
339
|
-
version_requirements: &id023 !ruby/object:Gem::Requirement
|
195
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
340
196
|
none: false
|
341
197
|
requirements:
|
342
198
|
- - ">="
|
@@ -345,7 +201,8 @@ dependencies:
|
|
345
201
|
segments:
|
346
202
|
- 0
|
347
203
|
version: "0"
|
348
|
-
|
204
|
+
type: :development
|
205
|
+
version_requirements: *id013
|
349
206
|
description: Use solrizer to populate solr indexes from Fedora repository content or from other sources. You can run solrizer from within your apps, using the provided rake tasks, or as a JMS listener
|
350
207
|
email: matt.zumwalt@yourmediashelf.com
|
351
208
|
executables:
|
@@ -357,6 +214,7 @@ extra_rdoc_files:
|
|
357
214
|
- LICENSE
|
358
215
|
- README.textile
|
359
216
|
files:
|
217
|
+
- .gitignore
|
360
218
|
- .rvmrc
|
361
219
|
- Gemfile
|
362
220
|
- Gemfile.lock
|
@@ -364,7 +222,7 @@ files:
|
|
364
222
|
- LICENSE
|
365
223
|
- README.textile
|
366
224
|
- Rakefile
|
367
|
-
-
|
225
|
+
- SOLRIZING_OM_DOCUMENTS.textile
|
368
226
|
- bin/solrizer
|
369
227
|
- bin/solrizerd
|
370
228
|
- config/fedora.yml
|
@@ -378,6 +236,8 @@ files:
|
|
378
236
|
- lib/solrizer/field_name_mapper.rb
|
379
237
|
- lib/solrizer/html.rb
|
380
238
|
- lib/solrizer/html/extractor.rb
|
239
|
+
- lib/solrizer/railtie.rb
|
240
|
+
- lib/solrizer/version.rb
|
381
241
|
- lib/solrizer/xml.rb
|
382
242
|
- lib/solrizer/xml/extractor.rb
|
383
243
|
- lib/solrizer/xml/terminology_based_solrizer.rb
|
@@ -398,7 +258,6 @@ files:
|
|
398
258
|
- spec/units/field_name_mapper_spec.rb
|
399
259
|
- spec/units/xml_extractor_spec.rb
|
400
260
|
- spec/units/xml_terminology_based_solrizer_spec.rb
|
401
|
-
has_rdoc: true
|
402
261
|
homepage: http://github.com/projecthydra/solrizer
|
403
262
|
licenses: []
|
404
263
|
|
@@ -428,14 +287,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
428
287
|
requirements: []
|
429
288
|
|
430
289
|
rubyforge_project:
|
431
|
-
rubygems_version: 1.
|
290
|
+
rubygems_version: 1.7.2
|
432
291
|
signing_key:
|
433
292
|
specification_version: 3
|
434
293
|
summary: A utility for building solr indexes, usually from Fedora repository content.
|
435
294
|
test_files:
|
295
|
+
- spec/fixtures/druid-bv448hq0314-descMetadata.xml
|
296
|
+
- spec/fixtures/druid-bv448hq0314-extProperties.xml
|
297
|
+
- spec/fixtures/druid-cm234kq4672-extProperties.xml
|
298
|
+
- spec/fixtures/druid-cm234kq4672-stories.xml
|
299
|
+
- spec/fixtures/druid-hc513kw4806-descMetadata.xml
|
300
|
+
- spec/fixtures/mods_articles/hydrangea_article1.xml
|
301
|
+
- spec/fixtures/test_solr_mappings.yml
|
302
|
+
- spec/rcov.opts
|
436
303
|
- spec/spec_helper.rb
|
437
304
|
- spec/units/extractor_spec.rb
|
438
305
|
- spec/units/field_mapper_spec.rb
|
439
306
|
- spec/units/field_name_mapper_spec.rb
|
440
307
|
- spec/units/xml_extractor_spec.rb
|
441
308
|
- spec/units/xml_terminology_based_solrizer_spec.rb
|
309
|
+
has_rdoc:
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.0.4
|