cul_scv_hydra 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/app/models/bag_aggregator.rb +16 -0
  2. data/app/models/content_aggregator.rb +16 -0
  3. data/app/models/dcdocument.rb +9 -0
  4. data/app/models/generic_aggregator.rb +16 -0
  5. data/app/models/generic_object.rb +16 -0
  6. data/app/models/jp2_image_aggregator.rb +38 -0
  7. data/app/models/mets_structured_aggregator.rb +16 -0
  8. data/app/models/resource.rb +59 -0
  9. data/app/models/static_audio_aggregator.rb +21 -0
  10. data/app/models/static_image_aggregator.rb +21 -0
  11. data/config/fedora.yml +6 -0
  12. data/config/predicate_mappings.yml +56 -0
  13. data/config/solr.yml +15 -0
  14. data/config/solr_mappings.yml +26 -0
  15. data/config/solr_value_maps.yml +29 -0
  16. data/lib/cul_scv_hydra.rb +14 -0
  17. data/lib/cul_scv_hydra/access_controls_enforcement.rb +53 -0
  18. data/lib/cul_scv_hydra/active_fedora.rb +18 -0
  19. data/lib/cul_scv_hydra/active_fedora/model.rb +8 -0
  20. data/lib/cul_scv_hydra/active_fedora/model/aggregator.rb +45 -0
  21. data/lib/cul_scv_hydra/active_fedora/model/common.rb +221 -0
  22. data/lib/cul_scv_hydra/active_fedora/model/dcdocument.rb +43 -0
  23. data/lib/cul_scv_hydra/active_fedora/model/resource.rb +79 -0
  24. data/lib/cul_scv_hydra/controllers.rb +13 -0
  25. data/lib/cul_scv_hydra/controllers/aggregates.rb +95 -0
  26. data/lib/cul_scv_hydra/controllers/aggregator_controller_helper.rb +27 -0
  27. data/lib/cul_scv_hydra/controllers/catalog.rb +13 -0
  28. data/lib/cul_scv_hydra/controllers/content_aggregators.rb +83 -0
  29. data/lib/cul_scv_hydra/controllers/datastreams.rb +146 -0
  30. data/lib/cul_scv_hydra/controllers/helpers.rb +11 -0
  31. data/lib/cul_scv_hydra/controllers/helpers/active_fedora_helper_behavior.rb +9 -0
  32. data/lib/cul_scv_hydra/controllers/helpers/application_helper_behavior.rb +17 -0
  33. data/lib/cul_scv_hydra/controllers/helpers/dc_metadata_helper_behavior.rb +9 -0
  34. data/lib/cul_scv_hydra/controllers/helpers/hydra_assets_helper_behavior.rb +46 -0
  35. data/lib/cul_scv_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb +35 -0
  36. data/lib/cul_scv_hydra/controllers/helpers/hydra_uploader_helper_behavior.rb +34 -0
  37. data/lib/cul_scv_hydra/controllers/helpers/resources_helper_behavior.rb +160 -0
  38. data/lib/cul_scv_hydra/controllers/resources.rb +162 -0
  39. data/lib/cul_scv_hydra/controllers/static_image_aggregators.rb +106 -0
  40. data/lib/cul_scv_hydra/controllers/suggestions.rb +127 -0
  41. data/lib/cul_scv_hydra/controllers/terms.rb +152 -0
  42. data/lib/cul_scv_hydra/engine.rb +9 -0
  43. data/lib/cul_scv_hydra/om.rb +11 -0
  44. data/lib/cul_scv_hydra/om/dc_metadata.rb +70 -0
  45. data/lib/cul_scv_hydra/om/scv_mods_document.rb +132 -0
  46. data/lib/cul_scv_hydra/om/standard_mods.rb +111 -0
  47. data/lib/cul_scv_hydra/solrizer.rb +12 -0
  48. data/lib/cul_scv_hydra/solrizer/extractor.rb +27 -0
  49. data/lib/cul_scv_hydra/solrizer/field_mapper.rb +30 -0
  50. data/lib/cul_scv_hydra/solrizer/terminology_based_solrizer.rb +112 -0
  51. data/lib/cul_scv_hydra/solrizer/value_mapper.rb +35 -0
  52. data/lib/cul_scv_hydra/version.rb +10 -0
  53. metadata +333 -0
@@ -0,0 +1,12 @@
1
+ module Cul
2
+ module Scv
3
+ module Hydra
4
+ module Solrizer
5
+ end
6
+ end
7
+ end
8
+ end
9
+ require "cul_scv_hydra/solrizer/extractor"
10
+ require "cul_scv_hydra/solrizer/field_mapper"
11
+ require "cul_scv_hydra/solrizer/terminology_based_solrizer"
12
+ require "cul_scv_hydra/solrizer/value_mapper"
@@ -0,0 +1,27 @@
1
+ module Cul::Scv::Hydra::Solrizer
2
+ class Extractor < ::Solrizer::Extractor
3
+ # Insert +field_value+ for +field_name+ into +solr_doc+
4
+ # Handles inserting new values into a Hash while ensuring that you don't destroy or overwrite any existing values in the hash.
5
+ # Ensures that field values are always appended to arrays within the values hash.
6
+ # Ensures that values are run through format_node_value
7
+ # Also ensures that values are unique if specified
8
+ # @param [Hash] solr_doc
9
+ # @param [String] field_name
10
+ # @param [String] field_value
11
+ # @param [boolean] unique
12
+ def self.insert_solr_field_value(solr_doc, field_name, field_value, unique=false)
13
+ formatted_value = self.format_node_value(field_value)
14
+ if solr_doc.has_key?(field_name)
15
+ solr_doc[field_name] << formatted_value unless (unique and solr_doc[field_name].include? formatted_value)
16
+ else
17
+ solr_doc.merge!( {field_name => [formatted_value]} )
18
+ end
19
+ return solr_doc
20
+ end
21
+
22
+ # Instance Methods
23
+ def insert_solr_field_value(solr_doc, field_name, field_value, unique=false)
24
+ Cul::Scv::Hydra::Solrizer::Extractor.insert_solr_field_value(solr_doc, field_name, field_value, unique)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,30 @@
1
+ require 'solrizer'
2
+ module Cul::Scv::Hydra::Solrizer
3
+ class FieldMapper < ::Solrizer::FieldMapper::Default
4
+ alias_method(:orig_solr_name_and_mappings, :solr_name_and_mappings)
5
+
6
+ def self.default
7
+ if defined?(Rails.root) && !Rails.root.nil?
8
+ config_path = File.join(Rails.root, "config", "solr_mappings.yml")
9
+ end
10
+ # Default to using the config file within the gem
11
+ if !File.exist?(config_path.to_s)
12
+ config_path = File.join(File.dirname(__FILE__), "..", "..", "..", "config", "solr_mappings.yml")
13
+ end
14
+ self.load_mappings(config_path)
15
+ logger.info("FieldMapper: loading field name mappings from #{File.expand_path(config_path)}")
16
+ self.new
17
+ end
18
+
19
+ # This is an override of a private method in the base class, and will have to be monitored for changes
20
+ def solr_name_and_mappings(field_name, field_type, index_type)
21
+ if index_type == :textable
22
+ result = orig_solr_name_and_mappings(field_name, field_type, :searchable)
23
+ result[0] = 'text'
24
+ return result
25
+ else
26
+ orig_solr_name_and_mappings(field_name, field_type, index_type)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,112 @@
1
+ require 'solrizer'
2
+ module Cul::Scv::Hydra::Solrizer::TerminologyBasedSolrizer
3
+ # copied from Solrizer::XML::TerminologyBasedSolrizer
4
+ def self.default_field_mapper
5
+ @@default_field_mapper ||= Cul::Scv::Hydra::Solrizer::FieldMapper.default
6
+ end
7
+
8
+ def self.default_extractor
9
+ @@default_extractor ||= Cul::Scv::Hydra::Solrizer::Extractor.new
10
+ end
11
+
12
+ def self.default_value_mapper
13
+ @@value_mapper ||= Cul::Scv::Hydra::Solrizer::ValueMapper.new
14
+ end
15
+
16
+
17
+ # Module Methods
18
+
19
+ # Build a solr document from +doc+ based on its terminology
20
+ # @param [OM::XML::Document] doc
21
+ # @param [Hash] (optional) solr_doc (values hash) to populate
22
+ def self.solrize(doc, solr_doc=Hash.new, field_mapper = nil)
23
+ unless doc.class.terminology.nil?
24
+ doc.class.terminology.terms.each_pair do |term_name,term|
25
+ doc.solrize_term(term, solr_doc, field_mapper)
26
+ # self.solrize_by_term(accessor_name, accessor_info, :solr_doc=>solr_doc)
27
+ end
28
+ end
29
+
30
+ return solr_doc
31
+ end
32
+
33
+ # Populate a solr document with fields based on nodes in +xml+ corresponding to the
34
+ # term identified by +term_pointer+ within +terminology+
35
+ # @param [OM::XML::Document] doc xml document to extract values from
36
+ # @param [OM::XML::Term] term corresponding to desired xml values
37
+ # @param [Hash] (optional) solr_doc (values hash) to populate
38
+ # @param [Solrizer::FieldMapper] (optional) object that maps a term and its index options to solr field names
39
+ def self.solrize_term(doc, term, solr_doc = Hash.new, field_mapper = nil, opts={})
40
+ terminology = doc.class.terminology
41
+ parents = opts.fetch(:parents, [])
42
+
43
+ term_pointer = parents+[term.name]
44
+ nodeset = doc.find_by_terms(*term_pointer)
45
+ nodeset.each do |node|
46
+ # create solr fields
47
+
48
+ doc.solrize_node(node, term_pointer, term, solr_doc, field_mapper)
49
+ unless term.kind_of? OM::XML::NamedTermProxy
50
+ term.children.each_pair do |child_term_name, child_term|
51
+ doc.solrize_term(child_term, solr_doc, field_mapper, opts={:parents=>parents+[{term.name=>nodeset.index(node)}]})
52
+ end
53
+ end
54
+ end
55
+ solr_doc
56
+ end
57
+
58
+ # Populate a solr document with solr fields corresponding to the given xml node
59
+ # Field names are generated using settings from the term in the +doc+'s terminology corresponding to +term_pointer+
60
+ # @param [Nokogiri::XML::Node] node to solrize
61
+ # @param [OM::XML::Document] doc document the node came from
62
+ # @param [Array] term_pointer Array pointing to the term that should be used for solrization settings
63
+ # @param [Hash] (optional) solr_doc (values hash) to populate
64
+ def self.solrize_node(node, doc, term_pointer, term, solr_doc = Hash.new, field_mapper = nil, opts = {})
65
+ terminology = doc.class.terminology
66
+ # term = terminology.retrieve_term(*term_pointer)
67
+ if term.path.kind_of?(Hash) && term.path.has_key?(:attribute)
68
+ node_value = node.value
69
+ else
70
+ node_value = node.text
71
+ end
72
+ generic_field_name_base = OM::XML::Terminology.term_generic_name(*term_pointer)
73
+
74
+ self.insert_field_value(solr_doc, term, generic_field_name_base, node_value, term.data_type, term.index_as, field_mapper)
75
+
76
+ if term_pointer.length > 1
77
+ hierarchical_field_name_base = OM::XML::Terminology.term_hierarchical_name(*term_pointer)
78
+ self.insert_field_value(solr_doc, term, hierarchical_field_name_base, node_value, term.data_type, term.index_as, field_mapper)
79
+ end
80
+ if term.variant_of and term.variant_of[:field_base]
81
+ self.insert_field_value(solr_doc, term, term.variant_of[:field_base], node_value, term.data_type, term.index_as, field_mapper, true)
82
+ end
83
+ solr_doc
84
+ end
85
+
86
+ def self.insert_field_value(solr_doc, term, field_base_name, field_value, data_type, index_as, field_mapper=nil , unique=false)
87
+ field_mapper = self.default_field_mapper if field_mapper.nil?
88
+ field_mapper.solr_names_and_values(field_base_name, field_value, data_type, index_as).each { |field_name, field_value|
89
+ unless field_value.join("").strip.empty?
90
+ if term.variant_of and term.variant_of[:map]
91
+ field_value = default_value_mapper.solr_value(term.variant_of[:map], field_value)
92
+ end
93
+ self.default_extractor.insert_solr_field_value(solr_doc, field_name, field_value, (unique || (field_name == 'text')))
94
+ end
95
+ }
96
+ end
97
+ # Instance Methods
98
+
99
+ attr_accessor :field_mapper
100
+
101
+ def to_solr(solr_doc = Hash.new, field_mapper = self.field_mapper) # :nodoc:
102
+ ::Solrizer::XML::TerminologyBasedSolrizer.solrize(self, solr_doc, field_mapper)
103
+ end
104
+
105
+ def solrize_term(term, solr_doc = Hash.new, field_mapper = self.field_mapper, opts={})
106
+ Cul::Scv::Hydra::Solrizer::TerminologyBasedSolrizer.solrize_term(self, term, solr_doc, field_mapper, opts)
107
+ end
108
+
109
+ def solrize_node(node, term_pointer, term, solr_doc = Hash.new, field_mapper = self.field_mapper, opts={})
110
+ Cul::Scv::Hydra::Solrizer::TerminologyBasedSolrizer.solrize_node(node, self, term_pointer, term, solr_doc, field_mapper, opts)
111
+ end
112
+ end # module
@@ -0,0 +1,35 @@
1
+ module Cul::Scv::Hydra::Solrizer
2
+ # This class uses a yaml map to translate field values for solr
3
+ class ValueMapper
4
+ def self.load_value_maps(config_path=nil)
5
+ if config_path.nil?
6
+ if defined?(Rails.root) && !Rails.root.nil?
7
+ config_path = File.join(Rails.root, "config", "solr_value_maps.yml")
8
+ end
9
+ # Default to using the config file within the gem
10
+ if !File.exist?(config_path.to_s)
11
+ config_path = File.join(File.dirname(__FILE__), "..", "..", "..", "config", "solr_value_maps.yml")
12
+ end
13
+ end
14
+ logger.info("ValueMapper: loading field value maps from #{File.expand_path(config_path)}")
15
+ YAML::load(File.open(config_path))
16
+ end
17
+
18
+ def self.default_value_maps
19
+ @@value_maps ||= self.load_value_maps
20
+ end
21
+ # Instance methods
22
+
23
+ def initialize(value_maps=nil)
24
+ @value_maps = value_maps || Cul::Scv::Hydra::Solrizer::ValueMapper.default_value_maps
25
+ end
26
+ def solr_value(map_key, value_key)
27
+ return value_key unless @value_maps.has_key? map_key
28
+ if value_key.is_a? Array
29
+ value_key.collect{ |val| @value_maps[map_key].fetch(val, val) }
30
+ else
31
+ @value_maps[map_key].fetch(value_key, value_key)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,10 @@
1
+ module Cul
2
+ module Scv
3
+ module Hydra
4
+ VERSION = '0.3.0'
5
+ def self.version
6
+ VERSION
7
+ end
8
+ end
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,333 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cul_scv_hydra
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
+ platform: ruby
12
+ authors:
13
+ - Benjamin Armintor
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-23 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: cul_image_props
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: blacklight
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ hash: 5
43
+ segments:
44
+ - 3
45
+ - 1
46
+ version: "3.1"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: rails
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ hash: 7
58
+ segments:
59
+ - 3
60
+ - 0
61
+ version: "3.0"
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: active-fedora
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ hash: 1
73
+ segments:
74
+ - 3
75
+ - 3
76
+ version: "3.3"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: hydra-head
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ hash: 1
88
+ segments:
89
+ - 3
90
+ - 3
91
+ version: "3.3"
92
+ type: :runtime
93
+ version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
95
+ name: rubydora
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ hash: 27
103
+ segments:
104
+ - 0
105
+ - 2
106
+ - 6
107
+ version: 0.2.6
108
+ type: :runtime
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: nokogiri
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 1
121
+ - 4
122
+ - 2
123
+ version: 1.4.2
124
+ type: :runtime
125
+ version_requirements: *id007
126
+ - !ruby/object:Gem::Dependency
127
+ name: om
128
+ prerelease: false
129
+ requirement: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ hash: 23
135
+ segments:
136
+ - 1
137
+ - 2
138
+ - 4
139
+ version: 1.2.4
140
+ type: :runtime
141
+ version_requirements: *id008
142
+ - !ruby/object:Gem::Dependency
143
+ name: solrizer
144
+ prerelease: false
145
+ requirement: &id009 !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 23
151
+ segments:
152
+ - 1
153
+ - 1
154
+ - 2
155
+ version: 1.1.2
156
+ type: :runtime
157
+ version_requirements: *id009
158
+ - !ruby/object:Gem::Dependency
159
+ name: rspec
160
+ prerelease: false
161
+ requirement: &id010 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ hash: 47
167
+ segments:
168
+ - 2
169
+ - 8
170
+ - 0
171
+ version: 2.8.0
172
+ type: :development
173
+ version_requirements: *id010
174
+ - !ruby/object:Gem::Dependency
175
+ name: rspec-rails
176
+ prerelease: false
177
+ requirement: &id011 !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ hash: 45
183
+ segments:
184
+ - 2
185
+ - 8
186
+ - 1
187
+ version: 2.8.1
188
+ type: :development
189
+ version_requirements: *id011
190
+ - !ruby/object:Gem::Dependency
191
+ name: mocha
192
+ prerelease: false
193
+ requirement: &id012 !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ hash: 43
199
+ segments:
200
+ - 0
201
+ - 9
202
+ - 8
203
+ version: 0.9.8
204
+ type: :development
205
+ version_requirements: *id012
206
+ - !ruby/object:Gem::Dependency
207
+ name: equivalent-xml
208
+ prerelease: false
209
+ requirement: &id013 !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ hash: 31
215
+ segments:
216
+ - 0
217
+ - 2
218
+ - 4
219
+ version: 0.2.4
220
+ type: :development
221
+ version_requirements: *id013
222
+ - !ruby/object:Gem::Dependency
223
+ name: rbx-require-relative
224
+ prerelease: false
225
+ requirement: &id014 !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - "="
229
+ - !ruby/object:Gem::Version
230
+ hash: 21
231
+ segments:
232
+ - 0
233
+ - 0
234
+ - 5
235
+ version: 0.0.5
236
+ type: :development
237
+ version_requirements: *id014
238
+ description: ActiveFedora, OM, and Solrizer implementations for CUL Staff Collection Viewer
239
+ email: armintor@gmail.com
240
+ executables: []
241
+
242
+ extensions: []
243
+
244
+ extra_rdoc_files: []
245
+
246
+ files:
247
+ - lib/cul_scv_hydra/access_controls_enforcement.rb
248
+ - lib/cul_scv_hydra/active_fedora/model/aggregator.rb
249
+ - lib/cul_scv_hydra/active_fedora/model/common.rb
250
+ - lib/cul_scv_hydra/active_fedora/model/dcdocument.rb
251
+ - lib/cul_scv_hydra/active_fedora/model/resource.rb
252
+ - lib/cul_scv_hydra/active_fedora/model.rb
253
+ - lib/cul_scv_hydra/active_fedora.rb
254
+ - lib/cul_scv_hydra/controllers/aggregates.rb
255
+ - lib/cul_scv_hydra/controllers/aggregator_controller_helper.rb
256
+ - lib/cul_scv_hydra/controllers/catalog.rb
257
+ - lib/cul_scv_hydra/controllers/content_aggregators.rb
258
+ - lib/cul_scv_hydra/controllers/datastreams.rb
259
+ - lib/cul_scv_hydra/controllers/helpers/active_fedora_helper_behavior.rb
260
+ - lib/cul_scv_hydra/controllers/helpers/application_helper_behavior.rb
261
+ - lib/cul_scv_hydra/controllers/helpers/dc_metadata_helper_behavior.rb
262
+ - lib/cul_scv_hydra/controllers/helpers/hydra_assets_helper_behavior.rb
263
+ - lib/cul_scv_hydra/controllers/helpers/hydra_autocomplete_helper_behavior.rb
264
+ - lib/cul_scv_hydra/controllers/helpers/hydra_uploader_helper_behavior.rb
265
+ - lib/cul_scv_hydra/controllers/helpers/resources_helper_behavior.rb
266
+ - lib/cul_scv_hydra/controllers/helpers.rb
267
+ - lib/cul_scv_hydra/controllers/resources.rb
268
+ - lib/cul_scv_hydra/controllers/static_image_aggregators.rb
269
+ - lib/cul_scv_hydra/controllers/suggestions.rb
270
+ - lib/cul_scv_hydra/controllers/terms.rb
271
+ - lib/cul_scv_hydra/controllers.rb
272
+ - lib/cul_scv_hydra/engine.rb
273
+ - lib/cul_scv_hydra/om/dc_metadata.rb
274
+ - lib/cul_scv_hydra/om/scv_mods_document.rb
275
+ - lib/cul_scv_hydra/om/standard_mods.rb
276
+ - lib/cul_scv_hydra/om.rb
277
+ - lib/cul_scv_hydra/solrizer/extractor.rb
278
+ - lib/cul_scv_hydra/solrizer/field_mapper.rb
279
+ - lib/cul_scv_hydra/solrizer/terminology_based_solrizer.rb
280
+ - lib/cul_scv_hydra/solrizer/value_mapper.rb
281
+ - lib/cul_scv_hydra/solrizer.rb
282
+ - lib/cul_scv_hydra/version.rb
283
+ - lib/cul_scv_hydra.rb
284
+ - app/models/bag_aggregator.rb
285
+ - app/models/content_aggregator.rb
286
+ - app/models/dcdocument.rb
287
+ - app/models/generic_aggregator.rb
288
+ - app/models/generic_object.rb
289
+ - app/models/jp2_image_aggregator.rb
290
+ - app/models/mets_structured_aggregator.rb
291
+ - app/models/resource.rb
292
+ - app/models/static_audio_aggregator.rb
293
+ - app/models/static_image_aggregator.rb
294
+ - config/fedora.yml
295
+ - config/predicate_mappings.yml
296
+ - config/solr.yml
297
+ - config/solr_mappings.yml
298
+ - config/solr_value_maps.yml
299
+ homepage: https://github.com/cul/cul_scv_hydra
300
+ licenses: []
301
+
302
+ post_install_message:
303
+ rdoc_options: []
304
+
305
+ require_paths:
306
+ - lib
307
+ required_ruby_version: !ruby/object:Gem::Requirement
308
+ none: false
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ hash: 3
313
+ segments:
314
+ - 0
315
+ version: "0"
316
+ required_rubygems_version: !ruby/object:Gem::Requirement
317
+ none: false
318
+ requirements:
319
+ - - ">="
320
+ - !ruby/object:Gem::Version
321
+ hash: 3
322
+ segments:
323
+ - 0
324
+ version: "0"
325
+ requirements: []
326
+
327
+ rubyforge_project:
328
+ rubygems_version: 1.8.15
329
+ signing_key:
330
+ specification_version: 3
331
+ summary: ActiveFedora, OM, and Solrizer implementations for CUL Staff Collection Viewer
332
+ test_files: []
333
+