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