cul_scv_hydra 0.3.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.
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
+