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