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 ADDED
@@ -0,0 +1,23 @@
1
+ .DS_Store
2
+ nohup.out
3
+
4
+ *.sqlite3
5
+ *.log
6
+ *~
7
+ *.swp
8
+
9
+ pkg/
10
+ coverage/*
11
+
12
+ tmp/**/*
13
+ tmp/performance
14
+
15
+ rerun.txt
16
+
17
+ .loadpath
18
+ .project
19
+ .buildpath
20
+
21
+ /.bundle
22
+ /.yardoc
23
+ /doc
data/Gemfile CHANGED
@@ -1,19 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "nokogiri"
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
- begin
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|
@@ -0,0 +1,9 @@
1
+ h1. Solrizing OM Documents
2
+
3
+ *!! This page is a work in progress !!*
4
+
5
+ Methods to know:
6
+
7
+ * index_as
8
+ * field_mapper
9
+ * solr_mappings
@@ -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 "RAILS_ROOT/config/solr_mappings.yml"
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?(RAILS_ROOT)
155
- config_path = File.join(RAILS_ROOT, "config", "solr_mappings.yml")
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)
@@ -0,0 +1,10 @@
1
+ require 'solrizer'
2
+ require 'rails'
3
+
4
+ module Solrizer
5
+ class Railtie < Rails::Railtie
6
+ initializer "solrizer.configure_rails_initialization" do
7
+ Solrizer::FieldMapper.load_mappings
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module Solrizer
2
+ VERSION = "1.1.0"
3
+ end
data/lib/solrizer.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  require 'rubygems'
2
- module Solrizer;end
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'
@@ -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
- yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) +
16
- [ File.join(project_root, 'README.textile') ]
17
- yt.options = ['--output-dir', doc_destination, '--readme', 'README.textile']
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 = %q{solrizer}
8
- s.version = "1.0.4"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Matt Zumwalt"]
12
- s.date = %q{2011-05-02}
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
- s.email = %q{matt.zumwalt@yourmediashelf.com}
15
- s.executables = ["solrizer", "solrizerd"]
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: 31
5
- prerelease: false
4
+ hash: 19
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 4
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-05-02 00:00:00 -04:00
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
- type: :runtime
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
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- requirement: *id003
48
+ type: :runtime
49
+ version_requirements: *id002
65
50
  - !ruby/object:Gem::Dependency
51
+ name: xml-simple
66
52
  prerelease: false
67
- type: :runtime
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
- requirement: *id004
62
+ type: :runtime
63
+ version_requirements: *id003
79
64
  - !ruby/object:Gem::Dependency
65
+ name: mediashelf-loggable
80
66
  prerelease: false
81
- type: :runtime
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
- requirement: *id005
76
+ type: :runtime
77
+ version_requirements: *id004
93
78
  - !ruby/object:Gem::Dependency
79
+ name: stomp
94
80
  prerelease: false
95
- type: :runtime
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
- requirement: *id006
90
+ type: :runtime
91
+ version_requirements: *id005
107
92
  - !ruby/object:Gem::Dependency
93
+ name: daemons
108
94
  prerelease: false
109
- type: :development
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
- requirement: *id007
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
- version_requirements: &id008 !ruby/object:Gem::Requirement
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
- version_requirements: &id009 !ruby/object:Gem::Requirement
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
- version_requirements: &id010 !ruby/object:Gem::Requirement
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
- name: rcov
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
- type: :development
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
- name: RedCloth
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
- type: :development
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
- name: ruby-debug
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
- type: :development
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
- name: rspec
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
- type: :development
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
- requirement: *id023
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
- - VERSION
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.3.7
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