active-fedora 6.8.0 → 7.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +15 -5
  4. data/CONTRIBUTING.md +2 -0
  5. data/Gemfile +0 -2
  6. data/History.txt +2 -32
  7. data/README.md +143 -0
  8. data/Rakefile +5 -7
  9. data/active-fedora.gemspec +9 -9
  10. data/gemfiles/rails3.gemfile +11 -0
  11. data/gemfiles/rails4.gemfile +10 -0
  12. data/lib/active_fedora.rb +31 -4
  13. data/lib/active_fedora/association_relation.rb +18 -0
  14. data/lib/active_fedora/associations.rb +38 -171
  15. data/lib/active_fedora/associations/association.rb +163 -0
  16. data/lib/active_fedora/associations/association_scope.rb +39 -0
  17. data/lib/active_fedora/associations/belongs_to_association.rb +47 -25
  18. data/lib/active_fedora/associations/builder/association.rb +55 -0
  19. data/lib/active_fedora/associations/builder/belongs_to.rb +100 -0
  20. data/lib/active_fedora/associations/builder/collection_association.rb +56 -0
  21. data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +30 -0
  22. data/lib/active_fedora/associations/builder/has_many.rb +63 -0
  23. data/lib/active_fedora/associations/builder/singular_association.rb +32 -0
  24. data/lib/active_fedora/associations/{association_collection.rb → collection_association.rb} +203 -53
  25. data/lib/active_fedora/associations/collection_proxy.rb +862 -0
  26. data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +35 -25
  27. data/lib/active_fedora/associations/has_many_association.rb +36 -11
  28. data/lib/active_fedora/associations/singular_association.rb +62 -0
  29. data/lib/active_fedora/attributes.rb +43 -139
  30. data/lib/active_fedora/autosave_association.rb +317 -0
  31. data/lib/active_fedora/base.rb +10 -327
  32. data/lib/active_fedora/callbacks.rb +1 -3
  33. data/lib/active_fedora/content_model.rb +16 -0
  34. data/lib/active_fedora/core.rb +151 -0
  35. data/lib/active_fedora/datastream_attribute.rb +76 -0
  36. data/lib/active_fedora/datastream_hash.rb +8 -13
  37. data/lib/active_fedora/datastreams.rb +39 -26
  38. data/lib/active_fedora/digital_object.rb +2 -2
  39. data/lib/active_fedora/fedora_attributes.rb +45 -0
  40. data/lib/active_fedora/fixture_loader.rb +1 -1
  41. data/lib/active_fedora/indexing.rb +6 -1
  42. data/lib/active_fedora/model.rb +0 -17
  43. data/lib/active_fedora/nested_attributes.rb +2 -2
  44. data/lib/active_fedora/null_relation.rb +7 -0
  45. data/lib/active_fedora/om_datastream.rb +3 -4
  46. data/lib/active_fedora/persistence.rb +41 -29
  47. data/lib/active_fedora/querying.rb +2 -163
  48. data/lib/active_fedora/rdf.rb +1 -0
  49. data/lib/active_fedora/rdf/indexing.rb +67 -0
  50. data/lib/active_fedora/rdf_datastream.rb +2 -50
  51. data/lib/active_fedora/rdf_node.rb +12 -7
  52. data/lib/active_fedora/rdf_node/term_proxy.rb +30 -21
  53. data/lib/active_fedora/rdfxml_rdf_datastream.rb +1 -1
  54. data/lib/active_fedora/reflection.rb +163 -20
  55. data/lib/active_fedora/relation.rb +33 -130
  56. data/lib/active_fedora/relation/calculations.rb +19 -0
  57. data/lib/active_fedora/relation/delegation.rb +22 -0
  58. data/lib/active_fedora/relation/finder_methods.rb +247 -0
  59. data/lib/active_fedora/relation/merger.rb +22 -0
  60. data/lib/active_fedora/relation/query_methods.rb +58 -0
  61. data/lib/active_fedora/relation/spawn_methods.rb +46 -0
  62. data/lib/active_fedora/relationship_graph.rb +0 -2
  63. data/lib/active_fedora/rels_ext_datastream.rb +1 -4
  64. data/lib/active_fedora/rubydora_connection.rb +1 -1
  65. data/lib/active_fedora/scoping.rb +20 -0
  66. data/lib/active_fedora/scoping/default.rb +38 -0
  67. data/lib/active_fedora/scoping/named.rb +32 -0
  68. data/lib/active_fedora/semantic_node.rb +54 -106
  69. data/lib/active_fedora/serialization.rb +19 -0
  70. data/lib/active_fedora/sharding.rb +58 -0
  71. data/lib/active_fedora/solr_digital_object.rb +15 -5
  72. data/lib/active_fedora/solr_instance_loader.rb +1 -1
  73. data/lib/active_fedora/solr_service.rb +1 -1
  74. data/lib/active_fedora/unsaved_digital_object.rb +6 -4
  75. data/lib/active_fedora/version.rb +1 -1
  76. data/lib/tasks/active_fedora.rake +3 -0
  77. data/lib/tasks/active_fedora_dev.rake +6 -5
  78. data/spec/config_helper.rb +14 -14
  79. data/spec/integration/associations_spec.rb +168 -455
  80. data/spec/integration/attributes_spec.rb +12 -11
  81. data/spec/integration/auditable_spec.rb +11 -11
  82. data/spec/integration/autosave_association_spec.rb +25 -0
  83. data/spec/integration/base_spec.rb +163 -163
  84. data/spec/integration/belongs_to_association_spec.rb +166 -0
  85. data/spec/integration/bug_spec.rb +7 -7
  86. data/spec/integration/collection_association_spec.rb +58 -0
  87. data/spec/integration/complex_rdf_datastream_spec.rb +88 -88
  88. data/spec/integration/datastream_collections_spec.rb +69 -69
  89. data/spec/integration/datastream_spec.rb +43 -43
  90. data/spec/integration/datastreams_spec.rb +63 -63
  91. data/spec/integration/delete_all_spec.rb +46 -39
  92. data/spec/integration/fedora_solr_sync_spec.rb +5 -5
  93. data/spec/integration/field_to_solr_name_spec.rb +34 -0
  94. data/spec/integration/full_featured_model_spec.rb +100 -101
  95. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +341 -0
  96. data/spec/integration/has_many_associations_spec.rb +172 -24
  97. data/spec/integration/json_serialization_spec.rb +31 -0
  98. data/spec/integration/load_from_solr_spec.rb +48 -0
  99. data/spec/integration/model_spec.rb +35 -40
  100. data/spec/integration/nested_attribute_spec.rb +42 -43
  101. data/spec/integration/ntriples_datastream_spec.rb +131 -113
  102. data/spec/integration/om_datastream_spec.rb +67 -67
  103. data/spec/integration/persistence_spec.rb +7 -7
  104. data/spec/integration/rdf_nested_attributes_spec.rb +56 -56
  105. data/spec/integration/relation_delegation_spec.rb +26 -25
  106. data/spec/integration/relation_spec.rb +42 -0
  107. data/spec/integration/rels_ext_datastream_spec.rb +20 -20
  108. data/spec/integration/scoped_query_spec.rb +61 -51
  109. data/spec/integration/solr_instance_loader_spec.rb +5 -5
  110. data/spec/integration/solr_service_spec.rb +46 -46
  111. data/spec/samples/hydra-mods_article_datastream.rb +334 -334
  112. data/spec/samples/hydra-rights_metadata_datastream.rb +57 -57
  113. data/spec/samples/marpa-dc_datastream.rb +17 -17
  114. data/spec/samples/models/audio_record.rb +16 -16
  115. data/spec/samples/models/image.rb +2 -2
  116. data/spec/samples/models/mods_article.rb +5 -5
  117. data/spec/samples/models/oral_history.rb +18 -18
  118. data/spec/samples/models/seminar.rb +24 -24
  119. data/spec/samples/models/seminar_audio_file.rb +17 -17
  120. data/spec/samples/oral_history_sample_model.rb +21 -21
  121. data/spec/samples/special_thing.rb +14 -14
  122. data/spec/spec_helper.rb +11 -7
  123. data/spec/support/an_active_model.rb +2 -8
  124. data/spec/support/freeze_mocks.rb +12 -0
  125. data/spec/support/mock_fedora.rb +17 -16
  126. data/spec/unit/active_fedora_spec.rb +58 -60
  127. data/spec/unit/attributes_spec.rb +314 -0
  128. data/spec/unit/base_active_model_spec.rb +28 -27
  129. data/spec/unit/base_cma_spec.rb +5 -5
  130. data/spec/unit/base_datastream_management_spec.rb +27 -27
  131. data/spec/unit/base_extra_spec.rb +76 -48
  132. data/spec/unit/base_spec.rb +277 -348
  133. data/spec/unit/callback_spec.rb +18 -19
  134. data/spec/unit/code_configurator_spec.rb +17 -17
  135. data/spec/unit/config_spec.rb +8 -16
  136. data/spec/unit/content_model_spec.rb +79 -60
  137. data/spec/unit/datastream_collections_spec.rb +229 -229
  138. data/spec/unit/datastream_spec.rb +51 -63
  139. data/spec/unit/datastreams_spec.rb +87 -87
  140. data/spec/unit/file_configurator_spec.rb +217 -217
  141. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +44 -25
  142. data/spec/unit/has_many_collection_spec.rb +26 -8
  143. data/spec/unit/inheritance_spec.rb +13 -12
  144. data/spec/unit/model_spec.rb +39 -45
  145. data/spec/unit/nom_datastream_spec.rb +15 -15
  146. data/spec/unit/ntriples_datastream_spec.rb +123 -118
  147. data/spec/unit/om_datastream_spec.rb +227 -233
  148. data/spec/unit/persistence_spec.rb +34 -15
  149. data/spec/unit/predicates_spec.rb +73 -73
  150. data/spec/unit/property_spec.rb +17 -9
  151. data/spec/unit/qualified_dublin_core_datastream_spec.rb +33 -33
  152. data/spec/unit/query_spec.rb +222 -198
  153. data/spec/unit/rdf_datastream_spec.rb +21 -28
  154. data/spec/unit/rdf_list_nested_attributes_spec.rb +34 -34
  155. data/spec/unit/rdf_list_spec.rb +65 -64
  156. data/spec/unit/rdf_node_spec.rb +7 -7
  157. data/spec/unit/rdf_xml_writer_spec.rb +10 -10
  158. data/spec/unit/rdfxml_rdf_datastream_spec.rb +27 -27
  159. data/spec/unit/relationship_graph_spec.rb +51 -51
  160. data/spec/unit/rels_ext_datastream_spec.rb +68 -74
  161. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +15 -15
  162. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +15 -15
  163. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +15 -15
  164. data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +12 -12
  165. data/spec/unit/rubydora_connection_spec.rb +5 -5
  166. data/spec/unit/semantic_node_spec.rb +48 -107
  167. data/spec/unit/serializers_spec.rb +4 -4
  168. data/spec/unit/service_definitions_spec.rb +26 -26
  169. data/spec/unit/simple_datastream_spec.rb +17 -17
  170. data/spec/unit/solr_config_options_spec.rb +29 -28
  171. data/spec/unit/solr_digital_object_spec.rb +17 -25
  172. data/spec/unit/solr_service_spec.rb +95 -82
  173. data/spec/unit/unsaved_digital_object_spec.rb +24 -23
  174. data/spec/unit/validations_spec.rb +21 -21
  175. metadata +110 -159
  176. data/.rspec +0 -1
  177. data/.rubocop.yml +0 -1
  178. data/.rubocop_todo.yml +0 -938
  179. data/CONSOLE_GETTING_STARTED.textile +0 -1
  180. data/NOKOGIRI_DATASTREAMS.textile +0 -1
  181. data/README.textile +0 -116
  182. data/lib/active_fedora/associations/association_proxy.rb +0 -178
  183. data/lib/active_fedora/delegating.rb +0 -72
  184. data/lib/active_fedora/nokogiri_datastream.rb +0 -11
  185. data/spec/integration/delegating_spec.rb +0 -59
  186. data/spec/rails3_test_app/.gitignore +0 -4
  187. data/spec/rails3_test_app/.rspec +0 -1
  188. data/spec/rails3_test_app/Gemfile +0 -40
  189. data/spec/rails3_test_app/Rakefile +0 -7
  190. data/spec/rails3_test_app/app/controllers/application_controller.rb +0 -3
  191. data/spec/rails3_test_app/app/helpers/application_helper.rb +0 -2
  192. data/spec/rails3_test_app/app/views/layouts/application.html.erb +0 -14
  193. data/spec/rails3_test_app/config.ru +0 -4
  194. data/spec/rails3_test_app/config/application.rb +0 -42
  195. data/spec/rails3_test_app/config/boot.rb +0 -6
  196. data/spec/rails3_test_app/config/database.yml +0 -22
  197. data/spec/rails3_test_app/config/environment.rb +0 -5
  198. data/spec/rails3_test_app/config/environments/development.rb +0 -25
  199. data/spec/rails3_test_app/config/environments/production.rb +0 -49
  200. data/spec/rails3_test_app/config/environments/test.rb +0 -35
  201. data/spec/rails3_test_app/config/initializers/backtrace_silencers.rb +0 -7
  202. data/spec/rails3_test_app/config/initializers/inflections.rb +0 -10
  203. data/spec/rails3_test_app/config/initializers/mime_types.rb +0 -5
  204. data/spec/rails3_test_app/config/initializers/secret_token.rb +0 -7
  205. data/spec/rails3_test_app/config/initializers/session_store.rb +0 -8
  206. data/spec/rails3_test_app/config/locales/en.yml +0 -5
  207. data/spec/rails3_test_app/config/routes.rb +0 -58
  208. data/spec/rails3_test_app/db/seeds.rb +0 -7
  209. data/spec/rails3_test_app/run_tests +0 -3
  210. data/spec/rails3_test_app/script/rails +0 -6
  211. data/spec/rails3_test_app/spec/spec_helper.rb +0 -27
  212. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +0 -15
  213. data/spec/unit/association_proxy_spec.rb +0 -12
  214. data/spec/unit/base_delegate_spec.rb +0 -197
  215. data/spec/unit/base_delegate_to_spec.rb +0 -73
@@ -12,81 +12,81 @@ module Hydra
12
12
  #
13
13
  # Another interesting thing in this Class: it extends to_solr, first calling "super" (the default to_solr behavior) and then inserting an additional embargo_release_date_dt field
14
14
  # It uses Solrizer::Extractor.insert_solr_field_value to do this. That method handles inserting new values into a Hash while ensuring that you don't destroy or overwrite any existing values in the hash.
15
- class RightsMetadataDatastream < ActiveFedora::OmDatastream
16
-
15
+ class RightsMetadataDatastream < ActiveFedora::OmDatastream
16
+
17
17
  set_terminology do |t|
18
- t.root(:path => 'rightsMetadata', :xmlns => 'http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1', :schema => 'http://github.com/projecthydra/schemas/tree/v1/rightsMetadata.xsd')
18
+ t.root(:path=>"rightsMetadata", :xmlns=>"http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1", :schema=>"http://github.com/projecthydra/schemas/tree/v1/rightsMetadata.xsd")
19
19
  t.copyright {
20
20
  t.machine {
21
- t.cclicense
21
+ t.cclicense
22
22
  }
23
- t.human_readable(:path => 'human')
24
- t.cclicense(:proxy => [:machine, :cclicense ])
23
+ t.human_readable(:path=>"human")
24
+ t.cclicense(:proxy=>[:machine, :cclicense ])
25
25
  }
26
26
  t.access {
27
- t.human_readable(:path => 'human')
27
+ t.human_readable(:path=>"human")
28
28
  t.machine {
29
29
  t.group
30
30
  t.person
31
31
  }
32
- t.person(:proxy => [:machine, :person])
33
- t.group(:proxy => [:machine, :group])
32
+ t.person(:proxy=>[:machine, :person])
33
+ t.group(:proxy=>[:machine, :group])
34
34
  # accessor :access_person, :term=>[:access, :machine, :person]
35
35
  }
36
- t.discover_access(:ref => [:access], :attributes => {:type => 'discover'})
37
- t.read_access(:ref => [:access], :attributes => {:type => 'read'})
38
- t.edit_access(:ref => [:access], :attributes => {:type => 'edit'})
36
+ t.discover_access(:ref=>[:access], :attributes=>{:type=>"discover"})
37
+ t.read_access(:ref=>[:access], :attributes=>{:type=>"read"})
38
+ t.edit_access(:ref=>[:access], :attributes=>{:type=>"edit"})
39
39
  # A bug in OM prevnts us from declaring proxy terms at the root of a Terminology
40
40
  # t.access_person(:proxy=>[:access,:machine,:person])
41
41
  # t.access_group(:proxy=>[:access,:machine,:group])
42
-
42
+
43
43
  t.embargo {
44
- t.human_readable(:path => 'human')
44
+ t.human_readable(:path=>"human")
45
45
  t.machine{
46
- t.date(:type => 'release')
46
+ t.date(:type =>"release")
47
47
  }
48
48
  t.embargo_release_date(:proxy => [:machine, :date])
49
- }
49
+ }
50
50
  end
51
-
51
+
52
52
  # Generates an empty Mods Article (used when you call ModsArticle.new without passing in existing xml)
53
53
  def self.xml_template
54
54
  builder = Nokogiri::XML::Builder.new do |xml|
55
- xml.rightsMetadata(:version => '0.1', 'xmlns' => 'http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1') {
55
+ xml.rightsMetadata(:version=>"0.1", "xmlns"=>"http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1") {
56
56
  xml.copyright {
57
57
  xml.human
58
58
  xml.machine {
59
- xml.uvalicense 'no'
59
+ xml.uvalicense "no"
60
60
  }
61
61
  }
62
- xml.access(:type => 'discover') {
62
+ xml.access(:type=>"discover") {
63
63
  xml.human
64
64
  xml.machine
65
65
  }
66
- xml.access(:type => 'read') {
67
- xml.human
66
+ xml.access(:type=>"read") {
67
+ xml.human
68
68
  xml.machine
69
69
  }
70
- xml.access(:type => 'edit') {
70
+ xml.access(:type=>"edit") {
71
71
  xml.human
72
72
  xml.machine
73
73
  }
74
74
  xml.embargo{
75
75
  xml.human
76
76
  xml.machine
77
- }
77
+ }
78
78
  }
79
79
  end
80
80
  return builder.doc
81
81
  end
82
-
82
+
83
83
  # Returns the permissions for the selected person/group
84
- # If new_access_level is provided, updates the selected person/group access_level to the one specified
84
+ # If new_access_level is provided, updates the selected person/group access_level to the one specified
85
85
  # A new_access_level of "none" will remove all access_levels for the selected person/group
86
86
  # @param [Hash] selector
87
87
  # @param [String] new_access_level (default nil)
88
- # @return [Hash]
89
- #
88
+ # @return [Hash]
89
+ #
90
90
  # @example Query permissions for person123, Set the permissions to "read", then query again to see that they have changed.
91
91
  # permissions({:person=>"person123"})
92
92
  # => {"person123"=>"edit"}
@@ -94,32 +94,32 @@ module Hydra
94
94
  # => {"person123"=>"read"}
95
95
  # permissions({:person=>"person123"})
96
96
  # => {"person123"=>"read"}
97
- def permissions(selector, new_access_level = nil)
98
-
97
+ def permissions(selector, new_access_level=nil)
98
+
99
99
  type = selector.keys.first.to_sym
100
100
  actor = selector.values.first
101
101
  if new_access_level.nil?
102
102
  xpath = self.class.terminology.xpath_for(:access, type, actor)
103
103
  nodeset = self.find_by_terms(xpath)
104
104
  if nodeset.empty?
105
- return 'none'
105
+ return "none"
106
106
  else
107
- return nodeset.first.ancestors('access').first.attributes['type'].text
107
+ return nodeset.first.ancestors("access").first.attributes["type"].text
108
108
  end
109
109
  else
110
110
  remove_all_permissions(selector)
111
- unless new_access_level == 'none'
111
+ unless new_access_level == "none"
112
112
  access_type_symbol = "#{new_access_level}_access".to_sym
113
- result = self.update_values([access_type_symbol, type] => {'-1' => actor})
113
+ result = self.update_values([access_type_symbol, type] => {"-1"=>actor})
114
114
  end
115
115
  self.dirty = true
116
116
  return new_access_level
117
117
  end
118
-
118
+
119
119
  end
120
-
120
+
121
121
  # Reports on which groups have which permissions
122
- # @return [Hash]
122
+ # @return [Hash]
123
123
  # @example
124
124
  # sample_ds.permissions({"group"=>"group_zzz"}, "edit")
125
125
  # sample_ds.permissions({"group"=>"public"}, "discover")
@@ -127,9 +127,9 @@ module Hydra
127
127
  def groups
128
128
  return quick_search_by_type(:group)
129
129
  end
130
-
130
+
131
131
  # Reports on which groups have which permissions
132
- # @return [Hash]
132
+ # @return [Hash]
133
133
  # @example
134
134
  # sample_ds.permissions({"person"=>"person_123"}, "read")
135
135
  # sample_ds.permissions({""person"=>"person_456"}, "edit")
@@ -137,21 +137,21 @@ module Hydra
137
137
  def individuals
138
138
  return quick_search_by_type(:person)
139
139
  end
140
-
140
+
141
141
  # Updates permissions for all of the persons and groups in a hash
142
142
  # @param [Hash] params example: {"group"=>{"group1"=>"discover","group2"=>"edit"}, "person"=>{"person1"=>"read","person2"=>"discover"}}
143
143
  # Currently restricts actor type to group or person. Any others will be ignored
144
144
  def update_permissions(params)
145
- params.fetch('group', {}).each_pair {|group_id, access_level| self.permissions({'group' => group_id}, access_level)}
146
- params.fetch('person', {}).each_pair {|group_id, access_level| self.permissions({'person' => group_id}, access_level)}
145
+ params.fetch("group", {}).each_pair {|group_id, access_level| self.permissions({"group"=>group_id}, access_level)}
146
+ params.fetch("person", {}).each_pair {|group_id, access_level| self.permissions({"person"=>group_id}, access_level)}
147
147
  end
148
-
148
+
149
149
  # This method limits the response to known access levels (:discover, :read, :edit). Probably runs a bit faster than {#permissions}.
150
- # @param [:group,:person] type
151
- # @return [Hash]
150
+ # @param [:group,:person] type
151
+ # @return [Hash]
152
152
  def quick_search_by_type(type)
153
153
  result = {}
154
- [{:discover_access => 'discover'}, {:read_access => 'read'}, {:edit_access => 'edit'}].each do |access_levels_hash|
154
+ [{:discover_access=>"discover"},{:read_access=>"read"},{:edit_access=>"edit"}].each do |access_levels_hash|
155
155
  access_level = access_levels_hash.keys.first
156
156
  access_level_name = access_levels_hash.values.first
157
157
  self.find_by_terms(*[access_level, type]).each do |entry|
@@ -166,15 +166,15 @@ module Hydra
166
166
  release_date = release_date.to_s if release_date.is_a? Date
167
167
  begin
168
168
  Date.parse(release_date)
169
- rescue
170
- return 'INVALID DATE'
169
+ rescue
170
+ return "INVALID DATE"
171
171
  end
172
- self.update_values({[:embargo, :machine, :date] => release_date})
172
+ self.update_values({[:embargo,:machine,:date]=>release_date})
173
173
  end
174
- def embargo_release_date(opts = {})
175
- embargo_release_date = self.find_by_terms(*[:embargo, :machine, :date]).first ? self.find_by_terms(*[:embargo, :machine, :date]).first.text : nil
174
+ def embargo_release_date(opts={})
175
+ embargo_release_date = self.find_by_terms(*[:embargo,:machine,:date]).first ? self.find_by_terms(*[:embargo,:machine,:date]).first.text : nil
176
176
  if opts[:format] && opts[:format] == :solr_date
177
- embargo_release_date << 'T23:59:59Z'
177
+ embargo_release_date << "T23:59:59Z"
178
178
  end
179
179
  embargo_release_date
180
180
  end
@@ -182,18 +182,18 @@ module Hydra
182
182
  (embargo_release_date && Date.today < embargo_release_date.to_date) ? true : false
183
183
  end
184
184
 
185
- def to_solr(solr_doc = {})
185
+ def to_solr(solr_doc=Hash.new)
186
186
  super(solr_doc)
187
- ::Solrizer::Extractor.insert_solr_field_value(solr_doc, 'embargo_release_date_dt', embargo_release_date(:format => :solr_date)) if embargo_release_date
187
+ ::Solrizer::Extractor.insert_solr_field_value(solr_doc, "embargo_release_date_dt", embargo_release_date(:format=>:solr_date)) if embargo_release_date
188
188
  solr_doc
189
189
  end
190
190
 
191
191
 
192
192
 
193
193
 
194
-
194
+
195
195
  private
196
- # Purge all access given group/person
196
+ # Purge all access given group/person
197
197
  def remove_all_permissions(selector)
198
198
  type = selector.keys.first.to_sym
199
199
  actor = selector.values.first
@@ -201,6 +201,6 @@ module Hydra
201
201
  nodes_to_purge = self.find_by_terms(xpath)
202
202
  nodes_to_purge.each {|node| node.remove}
203
203
  end
204
-
204
+
205
205
  end
206
206
  end
@@ -1,4 +1,4 @@
1
- require 'active-fedora'
1
+ require "active-fedora"
2
2
  module Marpa
3
3
 
4
4
  # This is an example of a OmDatastream that defines a terminology for Dublin Core xml
@@ -11,18 +11,18 @@ module Marpa
11
11
  # * Does not override or extend to_solr, so the default solrization approach will be used (Solrizer::XML::TerminologyBasedSolrizer)
12
12
  #
13
13
  class DcDatastream < ActiveFedora::OmDatastream
14
-
14
+
15
15
  set_terminology do |t|
16
- t.root(:path => 'dc', :xmlns => 'http://purl.org/dc/terms/')
17
- t.tibetan_title(:path => 'title', :attributes => {:language => 'tibetan'})
18
- t.english_title(:path => 'title', :attributes => {:language => :none})
19
- t.contributor(:index_as => [:facetable])
16
+ t.root(:path=>"dc", :xmlns=>'http://purl.org/dc/terms/')
17
+ t.tibetan_title(:path=>"title", :attributes=>{:language=>"tibetan"})
18
+ t.english_title(:path=>"title", :attributes=>{:language=>:none})
19
+ t.contributor(:index_as=>[:facetable])
20
20
  t.coverage
21
21
  t.creator
22
22
  t.description
23
23
  t.format
24
24
  t.identifier
25
- t.language(:index_as => [:facetable])
25
+ t.language(:index_as=>[:facetable])
26
26
  t.publisher
27
27
  t.relation
28
28
  t.source
@@ -41,7 +41,7 @@ module Marpa
41
41
  t.coverage
42
42
  t.created
43
43
  t.creator
44
- t.date(:index_as => [:facetable])
44
+ t.date(:index_as=>[:facetable])
45
45
  t.dateAccepted
46
46
  t.dateCopyrighted
47
47
  t.dateSubmitted
@@ -61,7 +61,7 @@ module Marpa
61
61
  t.isRequiredBy
62
62
  t.issued
63
63
  t.isVersionOf
64
- t.language(:index_as => [:facetable])
64
+ t.language(:index_as=>[:facetable])
65
65
  t.license
66
66
  t.mediator
67
67
  t.medium
@@ -75,23 +75,23 @@ module Marpa
75
75
  t.rights
76
76
  t.rightsHolder
77
77
  t.source
78
- t.spatial(:index_as => [:facetable])
79
- t.subject(:index_as => [:facetable])
78
+ t.spatial(:index_as=>[:facetable])
79
+ t.subject(:index_as=>[:facetable])
80
80
  t.tableOfContents
81
81
  t.temporal
82
82
  t.type
83
83
  t.valid
84
84
  end
85
-
85
+
86
86
  def self.xml_template
87
87
  builder = Nokogiri::XML::Builder.new do |xml|
88
- xml.dc('xmlns' => 'http://purl.org/dc/terms/',
89
- 'xmlns:dcterms' => 'http://purl.org/dc/terms/',
90
- 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance') {
88
+ xml.dc("xmlns"=>'http://purl.org/dc/terms/',
89
+ "xmlns:dcterms"=>'http://purl.org/dc/terms/',
90
+ "xmlns:xsi"=>'http://www.w3.org/2001/XMLSchema-instance') {
91
91
  }
92
92
  end
93
93
  return builder.doc
94
94
  end
95
-
95
+
96
96
  end
97
- end
97
+ end
@@ -1,29 +1,29 @@
1
1
  require 'active-fedora'
2
2
 
3
3
  class AudioRecord
4
-
4
+
5
5
  include ActiveFedora::Model
6
-
7
- # This seems a bit strange, since this Class might be used outside of Oral Histories.
6
+
7
+ # This seems a bit strange, since this Class might be used outside of Oral Histories.
8
8
  # From this perspective, it makes more sense to put triples on the containing object, not on the children...
9
-
10
- relationship 'parents', :is_part_of, [nil, :oral_history]
9
+
10
+ relationship "parents", :is_part_of, [nil, :oral_history]
11
11
  #has n, :parents, {:predicate => :is_part_of, :likely_types => [nil, :oral_history]}
12
12
  # OR
13
13
  # is_part_of [:oral_history]
14
-
15
- property 'date_recorded', :date
16
- property 'file_name', :string
17
- property 'duration', :string
18
- property 'notes', :text
14
+
15
+ property "date_recorded", :date
16
+ property "file_name", :string
17
+ property "duration", :string
18
+ property "notes", :text
19
19
 
20
20
  # This doesn't make sense when you have both compressed and uncompressed in the same object!
21
- # Probably better to rely on the file size in datastreamVersion "SIZE" attribute from Fedora anyway
21
+ # Probably better to rely on the file size in datastreamVersion "SIZE" attribute from Fedora anyway
22
22
  #property "file_size", :integer
23
23
 
24
24
  #property "restriction", :text
25
-
26
- datastream 'compressed', ['audio/mpeg'], :multiple => true
27
- datastream 'uncompressed', ['audio/wav', 'audio/aiff'], :multiple => true
28
-
29
- end
25
+
26
+ datastream "compressed", ["audio/mpeg"], :multiple => true
27
+ datastream "uncompressed", ["audio/wav", "audio/aiff"], :multiple => true
28
+
29
+ end
@@ -1,5 +1,5 @@
1
1
  require 'active-fedora'
2
2
 
3
- class Image
3
+ class Image
4
4
  include ActiveFedora::Model
5
- end
5
+ end
@@ -1,4 +1,4 @@
1
- require 'active-fedora'
1
+ require "active-fedora"
2
2
  require_relative '../hydra-mods_article_datastream.rb'
3
3
  require_relative '../hydra-rights_metadata_datastream.rb'
4
4
 
@@ -6,9 +6,9 @@ require_relative '../hydra-rights_metadata_datastream.rb'
6
6
  #
7
7
  # See lib/samples/sample_thing.rb for a fuller, annotated example of an ActiveFedora Model
8
8
  class ModsArticle < ActiveFedora::Base
9
-
10
- has_metadata :name => 'descMetadata', :type => Hydra::ModsArticleDatastream
11
- has_metadata :name => 'rightsMetadata', :type => Hydra::RightsMetadataDatastream
12
- has_metadata :name => 'properties', :type => ActiveFedora::SimpleDatastream
9
+
10
+ has_metadata :name => "descMetadata", :type=> Hydra::ModsArticleDatastream
11
+ has_metadata :name => "rightsMetadata", :type => Hydra::RightsMetadataDatastream
12
+ has_metadata :name => "properties", :type => ActiveFedora::SimpleDatastream
13
13
 
14
14
  end
@@ -2,25 +2,25 @@ require 'active-fedora'
2
2
 
3
3
  class OralHistory < ActiveFedora::Base
4
4
  # Imitating DataMapper ...
5
-
6
- has_many :parts, :property => :is_part_of
7
-
5
+
6
+ has_many :parts, :property=>:is_part_of
7
+
8
8
  # These are all the properties that don't quite fit into Qualified DC
9
9
  # Put them on the object itself (in the properties datastream) for now.
10
- has_metadata :name => 'properties', :type => ActiveFedora::SimpleDatastream do |m|
11
- field 'alt_title', :string
12
- field 'narrator', :string
13
- field 'interviewer', :integer
14
- field 'transcript_editor', :text
15
- field 'bio', :string
16
- field 'notes', :text
17
- field 'hard_copy_availability', :text
18
- field 'hard_copy_location', :text
19
- field 'other_contributors', :string
20
- field 'restrictions', :text
10
+ has_metadata :name => "properties", :type => ActiveFedora::SimpleDatastream do |m|
11
+ field "alt_title", :string
12
+ field "narrator", :string
13
+ field "interviewer", :integer
14
+ field "transcript_editor", :text
15
+ field "bio", :string
16
+ field "notes", :text
17
+ field "hard_copy_availability", :text
18
+ field "hard_copy_location", :text
19
+ field "other_contributors", :string
20
+ field "restrictions", :text
21
21
  end
22
-
23
- has_metadata :name => 'dublin_core', :type => ActiveFedora::QualifiedDublinCoreDatastream do |m|
22
+
23
+ has_metadata :name => "dublin_core", :type => ActiveFedora::QualifiedDublinCoreDatastream do |m|
24
24
  # Default :multiple => true
25
25
  #
26
26
  # on retrieval, these will be pluralized and returned as arrays
@@ -28,9 +28,9 @@ class OralHistory < ActiveFedora::Base
28
28
  #
29
29
  # aimint to use method-missing to support calling methods like
30
30
  # my_oral_history.subjects OR my_oral_history.titles OR EVEN my_oral_history.title whenever possible
31
-
31
+
32
32
  #field :name => "subject_heading", :string, {:xml_node => "subject", :encoding => "LCSH"}
33
33
  end
34
34
 
35
-
35
+
36
36
  end