active-fedora 9.5.0 → 9.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +245 -0
  3. data/.travis.yml +8 -7
  4. data/Gemfile +2 -0
  5. data/History.txt +51 -0
  6. data/Rakefile +7 -6
  7. data/active-fedora.gemspec +3 -1
  8. data/lib/active_fedora.rb +19 -20
  9. data/lib/active_fedora/association_hash.rb +19 -24
  10. data/lib/active_fedora/association_relation.rb +3 -3
  11. data/lib/active_fedora/associations.rb +177 -182
  12. data/lib/active_fedora/associations/association.rb +15 -22
  13. data/lib/active_fedora/associations/association_scope.rb +15 -16
  14. data/lib/active_fedora/associations/basic_contains_association.rb +24 -27
  15. data/lib/active_fedora/associations/belongs_to_association.rb +3 -4
  16. data/lib/active_fedora/associations/builder/association.rb +17 -18
  17. data/lib/active_fedora/associations/builder/belongs_to.rb +1 -1
  18. data/lib/active_fedora/associations/builder/contains.rb +3 -5
  19. data/lib/active_fedora/associations/builder/directly_contains.rb +1 -2
  20. data/lib/active_fedora/associations/builder/directly_contains_one.rb +17 -21
  21. data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +1 -2
  22. data/lib/active_fedora/associations/builder/has_many.rb +9 -10
  23. data/lib/active_fedora/associations/builder/indirectly_contains.rb +11 -4
  24. data/lib/active_fedora/associations/builder/property.rb +0 -3
  25. data/lib/active_fedora/associations/builder/singular_association.rb +1 -1
  26. data/lib/active_fedora/associations/builder/singular_property.rb +0 -2
  27. data/lib/active_fedora/associations/collection_association.rb +32 -41
  28. data/lib/active_fedora/associations/collection_proxy.rb +8 -10
  29. data/lib/active_fedora/associations/contained_finder.rb +15 -16
  30. data/lib/active_fedora/associations/contains_association.rb +1 -3
  31. data/lib/active_fedora/associations/delete_proxy.rb +6 -7
  32. data/lib/active_fedora/associations/directly_contains_association.rb +7 -9
  33. data/lib/active_fedora/associations/directly_contains_one_association.rb +46 -49
  34. data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +12 -18
  35. data/lib/active_fedora/associations/has_many_association.rb +21 -22
  36. data/lib/active_fedora/associations/id_composite.rb +6 -6
  37. data/lib/active_fedora/associations/indirectly_contains_association.rb +23 -9
  38. data/lib/active_fedora/associations/null_validator.rb +1 -1
  39. data/lib/active_fedora/associations/rdf.rb +47 -52
  40. data/lib/active_fedora/associations/record_composite.rb +1 -1
  41. data/lib/active_fedora/associations/singular_association.rb +7 -12
  42. data/lib/active_fedora/associations/singular_rdf.rb +0 -2
  43. data/lib/active_fedora/attached_files.rb +86 -81
  44. data/lib/active_fedora/attribute_methods.rb +11 -10
  45. data/lib/active_fedora/attribute_methods/dirty.rb +0 -1
  46. data/lib/active_fedora/attribute_methods/read.rb +12 -12
  47. data/lib/active_fedora/attribute_methods/write.rb +11 -11
  48. data/lib/active_fedora/attributes.rb +160 -156
  49. data/lib/active_fedora/attributes/active_triple_attribute.rb +0 -2
  50. data/lib/active_fedora/attributes/node_config.rb +1 -2
  51. data/lib/active_fedora/attributes/om_attribute.rb +1 -4
  52. data/lib/active_fedora/attributes/primary_key.rb +0 -2
  53. data/lib/active_fedora/attributes/property_builder.rb +2 -3
  54. data/lib/active_fedora/attributes/rdf_datastream_attribute.rb +23 -26
  55. data/lib/active_fedora/attributes/serializers.rb +7 -9
  56. data/lib/active_fedora/attributes/stream_attribute.rb +4 -7
  57. data/lib/active_fedora/autosave_association.rb +156 -155
  58. data/lib/active_fedora/base.rb +1 -2
  59. data/lib/active_fedora/caching_connection.rb +5 -5
  60. data/lib/active_fedora/callbacks.rb +12 -12
  61. data/lib/active_fedora/change_set.rb +13 -16
  62. data/lib/active_fedora/checksum.rb +12 -0
  63. data/lib/active_fedora/clean_connection.rb +20 -20
  64. data/lib/active_fedora/cleaner.rb +7 -11
  65. data/lib/active_fedora/config.rb +2 -3
  66. data/lib/active_fedora/containers/container.rb +3 -7
  67. data/lib/active_fedora/core.rb +43 -47
  68. data/lib/active_fedora/datastreams/nokogiri_datastreams.rb +22 -26
  69. data/lib/active_fedora/delegated_attribute.rb +1 -3
  70. data/lib/active_fedora/errors.rb +1 -2
  71. data/lib/active_fedora/fedora.rb +1 -2
  72. data/lib/active_fedora/fedora_attributes.rb +15 -12
  73. data/lib/active_fedora/file.rb +25 -22
  74. data/lib/active_fedora/file/attributes.rb +10 -7
  75. data/lib/active_fedora/file/streaming.rb +2 -4
  76. data/lib/active_fedora/file_configurator.rb +33 -34
  77. data/lib/active_fedora/file_path_builder.rb +5 -2
  78. data/lib/active_fedora/files_hash.rb +1 -1
  79. data/lib/active_fedora/fixity_service.rb +5 -5
  80. data/lib/active_fedora/identifiable.rb +5 -9
  81. data/lib/active_fedora/inbound_relation_connection.rb +5 -5
  82. data/lib/active_fedora/indexers/global_indexer.rb +4 -7
  83. data/lib/active_fedora/indexers/null_indexer.rb +1 -0
  84. data/lib/active_fedora/indexing.rb +45 -48
  85. data/lib/active_fedora/indexing/map.rb +1 -2
  86. data/lib/active_fedora/indexing_service.rb +27 -19
  87. data/lib/active_fedora/inheritable_accessors.rb +1 -0
  88. data/lib/active_fedora/ldp_cache.rb +4 -6
  89. data/lib/active_fedora/ldp_resource.rb +2 -2
  90. data/lib/active_fedora/ldp_resource_service.rb +1 -1
  91. data/lib/active_fedora/loadable_from_json.rb +49 -24
  92. data/lib/active_fedora/log_subscriber.rb +3 -5
  93. data/lib/active_fedora/model.rb +12 -15
  94. data/lib/active_fedora/nested_attributes.rb +72 -77
  95. data/lib/active_fedora/nom_datastream.rb +11 -13
  96. data/lib/active_fedora/om_datastream.rb +21 -28
  97. data/lib/active_fedora/pathing.rb +1 -2
  98. data/lib/active_fedora/persistence.rb +82 -84
  99. data/lib/active_fedora/predicates.rb +23 -25
  100. data/lib/active_fedora/property.rb +4 -6
  101. data/lib/active_fedora/qualified_dublin_core_datastream.rb +91 -98
  102. data/lib/active_fedora/query_result_builder.rb +11 -17
  103. data/lib/active_fedora/querying.rb +3 -4
  104. data/lib/active_fedora/railtie.rb +1 -2
  105. data/lib/active_fedora/rdf/datastream_indexing.rb +9 -14
  106. data/lib/active_fedora/rdf/fcrepo.rb +249 -250
  107. data/lib/active_fedora/rdf/field_map.rb +4 -7
  108. data/lib/active_fedora/rdf/field_map_entry.rb +0 -2
  109. data/lib/active_fedora/rdf/indexing_service.rb +6 -7
  110. data/lib/active_fedora/rdf/ntriples_rdf_datastream.rb +0 -1
  111. data/lib/active_fedora/rdf/persistence.rb +4 -4
  112. data/lib/active_fedora/rdf/project_hydra.rb +7 -7
  113. data/lib/active_fedora/rdf/rdf_datastream.rb +12 -15
  114. data/lib/active_fedora/rdf/rdfxml_datastream.rb +2 -2
  115. data/lib/active_fedora/reflection.rb +68 -74
  116. data/lib/active_fedora/relation.rb +20 -27
  117. data/lib/active_fedora/relation/calculations.rb +2 -3
  118. data/lib/active_fedora/relation/delegation.rb +11 -11
  119. data/lib/active_fedora/relation/finder_methods.rb +109 -120
  120. data/lib/active_fedora/relation/merger.rb +1 -1
  121. data/lib/active_fedora/relation/query_methods.rb +0 -1
  122. data/lib/active_fedora/relation/spawn_methods.rb +0 -1
  123. data/lib/active_fedora/rspec_matchers.rb +1 -1
  124. data/lib/active_fedora/rspec_matchers/belong_to_associated_active_fedora_object_matcher.rb +2 -4
  125. data/lib/active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher.rb +2 -4
  126. data/lib/active_fedora/rspec_matchers/have_predicate_matcher.rb +2 -4
  127. data/lib/active_fedora/schema.rb +1 -1
  128. data/lib/active_fedora/schema_indexing_strategy.rb +2 -3
  129. data/lib/active_fedora/scoping.rb +0 -1
  130. data/lib/active_fedora/serialization.rb +1 -1
  131. data/lib/active_fedora/simple_datastream.rb +28 -36
  132. data/lib/active_fedora/solr_instance_loader.rb +32 -28
  133. data/lib/active_fedora/solr_query_builder.rb +5 -4
  134. data/lib/active_fedora/solr_service.rb +12 -13
  135. data/lib/active_fedora/sparql_insert.rb +28 -29
  136. data/lib/active_fedora/validations.rb +10 -10
  137. data/lib/active_fedora/version.rb +1 -1
  138. data/lib/active_fedora/versionable.rb +4 -5
  139. data/lib/active_fedora/versions_graph.rb +9 -14
  140. data/lib/active_fedora/with_metadata.rb +4 -5
  141. data/lib/active_fedora/with_metadata/metadata_node.rb +23 -33
  142. data/lib/generators/active_fedora/model/model_generator.rb +9 -10
  143. data/lib/tasks/active_fedora_dev.rake +9 -1
  144. data/spec/config_helper.rb +9 -9
  145. data/spec/integration/associations/rdf_spec.rb +0 -1
  146. data/spec/integration/associations_spec.rb +87 -103
  147. data/spec/integration/attached_files_spec.rb +17 -20
  148. data/spec/integration/attributes_spec.rb +4 -7
  149. data/spec/integration/autosave_association_spec.rb +1 -1
  150. data/spec/integration/base_spec.rb +116 -83
  151. data/spec/integration/belongs_to_association_spec.rb +25 -29
  152. data/spec/integration/bug_spec.rb +4 -5
  153. data/spec/integration/caching_spec.rb +5 -5
  154. data/spec/integration/clean_connection_spec.rb +1 -1
  155. data/spec/integration/collection_association_spec.rb +11 -11
  156. data/spec/integration/complex_rdf_datastream_spec.rb +24 -30
  157. data/spec/integration/contains_association_spec.rb +4 -4
  158. data/spec/integration/datastream_rdf_nested_attributes_spec.rb +32 -38
  159. data/spec/integration/date_time_properties_spec.rb +41 -0
  160. data/spec/integration/delete_all_spec.rb +4 -6
  161. data/spec/integration/direct_container_spec.rb +6 -10
  162. data/spec/integration/directly_contains_one_association_spec.rb +5 -8
  163. data/spec/integration/eradicate_spec.rb +5 -7
  164. data/spec/integration/fedora_solr_sync_spec.rb +3 -3
  165. data/spec/integration/field_to_solr_name_spec.rb +2 -3
  166. data/spec/integration/file_fixity_spec.rb +3 -5
  167. data/spec/integration/file_spec.rb +13 -19
  168. data/spec/integration/full_featured_model_spec.rb +82 -91
  169. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +23 -25
  170. data/spec/integration/has_many_associations_spec.rb +302 -304
  171. data/spec/integration/indexing_spec.rb +10 -13
  172. data/spec/integration/indirect_container_spec.rb +47 -11
  173. data/spec/integration/json_serialization_spec.rb +6 -6
  174. data/spec/integration/model_spec.rb +5 -8
  175. data/spec/integration/nested_attribute_spec.rb +9 -10
  176. data/spec/integration/nested_hash_resources_spec.rb +4 -4
  177. data/spec/integration/ntriples_datastream_spec.rb +27 -30
  178. data/spec/integration/om_datastream_spec.rb +9 -10
  179. data/spec/integration/persistence_spec.rb +30 -14
  180. data/spec/integration/query_result_builder_spec.rb +9 -9
  181. data/spec/integration/rdf_nested_attributes_spec.rb +4 -5
  182. data/spec/integration/relation_delegation_spec.rb +11 -16
  183. data/spec/integration/relation_spec.rb +8 -8
  184. data/spec/integration/scoped_query_spec.rb +19 -23
  185. data/spec/integration/solr_instance_loader_spec.rb +61 -24
  186. data/spec/integration/versionable_spec.rb +340 -361
  187. data/spec/integration/with_metadata_spec.rb +3 -5
  188. data/spec/samples/hydra-mods_article_datastream.rb +159 -163
  189. data/spec/samples/models/mods_article.rb +2 -6
  190. data/spec/spec_helper.rb +4 -4
  191. data/spec/support/an_active_model.rb +3 -4
  192. data/spec/support/freeze_mocks.rb +1 -1
  193. data/spec/unit/active_fedora_spec.rb +51 -57
  194. data/spec/unit/association_hash_spec.rb +78 -0
  195. data/spec/unit/attached_files_spec.rb +76 -49
  196. data/spec/unit/attributes_spec.rb +116 -86
  197. data/spec/unit/base_active_model_spec.rb +16 -18
  198. data/spec/unit/base_cma_spec.rb +3 -6
  199. data/spec/unit/base_datastream_management_spec.rb +3 -4
  200. data/spec/unit/base_extra_spec.rb +4 -7
  201. data/spec/unit/base_spec.rb +25 -29
  202. data/spec/unit/builder/has_and_belongs_to_many_spec.rb +1 -1
  203. data/spec/unit/callback_spec.rb +5 -6
  204. data/spec/unit/change_set_spec.rb +3 -4
  205. data/spec/unit/checksum_spec.rb +25 -0
  206. data/spec/unit/code_configurator_spec.rb +12 -14
  207. data/spec/unit/collection_proxy_spec.rb +1 -5
  208. data/spec/unit/config_spec.rb +1 -2
  209. data/spec/unit/core/fedora_id_translator_spec.rb +3 -3
  210. data/spec/unit/core/fedora_uri_translator_spec.rb +4 -4
  211. data/spec/unit/core_spec.rb +34 -38
  212. data/spec/unit/file_configurator_spec.rb +96 -105
  213. data/spec/unit/file_path_builder_spec.rb +1 -1
  214. data/spec/unit/file_spec.rb +43 -18
  215. data/spec/unit/files_hash_spec.rb +7 -7
  216. data/spec/unit/fixity_service_spec.rb +2 -4
  217. data/spec/unit/forbidden_attributes_protection_spec.rb +2 -4
  218. data/spec/unit/has_and_belongs_to_many_association_spec.rb +12 -14
  219. data/spec/unit/has_many_association_spec.rb +3 -5
  220. data/spec/unit/indexers/global_indexer_spec.rb +4 -4
  221. data/spec/unit/indexing_service_spec.rb +2 -2
  222. data/spec/unit/indexing_spec.rb +5 -6
  223. data/spec/unit/inheritance_spec.rb +3 -5
  224. data/spec/unit/ldp_resource_spec.rb +3 -5
  225. data/spec/unit/loadable_from_json_spec.rb +1 -1
  226. data/spec/unit/logger_spec.rb +4 -5
  227. data/spec/unit/model_spec.rb +3 -4
  228. data/spec/unit/nom_datastream_spec.rb +10 -14
  229. data/spec/unit/ntriples_datastream_spec.rb +34 -35
  230. data/spec/unit/om_datastream_spec.rb +107 -113
  231. data/spec/unit/pathing_spec.rb +1 -2
  232. data/spec/unit/persistence_spec.rb +4 -5
  233. data/spec/unit/predicates_spec.rb +88 -93
  234. data/spec/unit/property_predicate_spec.rb +28 -33
  235. data/spec/unit/property_spec.rb +8 -11
  236. data/spec/unit/qualified_dublin_core_datastream_spec.rb +22 -27
  237. data/spec/unit/query_result_builder_spec.rb +10 -11
  238. data/spec/unit/query_spec.rb +53 -55
  239. data/spec/unit/rdf/indexing_service_spec.rb +16 -18
  240. data/spec/unit/rdf_datastream_spec.rb +10 -11
  241. data/spec/unit/rdf_resource_datastream_spec.rb +29 -35
  242. data/spec/unit/rdf_vocab_spec.rb +3 -3
  243. data/spec/unit/rdfxml_datastream_spec.rb +10 -11
  244. data/spec/unit/readonly_spec.rb +3 -3
  245. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +7 -11
  246. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +10 -14
  247. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +10 -14
  248. data/spec/unit/schema_indexing_strategy_spec.rb +5 -5
  249. data/spec/unit/serializers_spec.rb +2 -3
  250. data/spec/unit/simple_datastream_spec.rb +13 -18
  251. data/spec/unit/solr_config_options_spec.rb +5 -8
  252. data/spec/unit/solr_query_builder_spec.rb +6 -8
  253. data/spec/unit/solr_service_spec.rb +44 -44
  254. data/spec/unit/sparql_insert_spec.rb +2 -3
  255. data/spec/unit/validations_spec.rb +8 -10
  256. data/spec/unit/with_metadata/metadata_node_spec.rb +0 -2
  257. metadata +37 -7
  258. data/gemfiles/rails4.1.gemfile +0 -10
  259. data/gemfiles/rails4.2.gemfile +0 -10
  260. data/spec/samples/hydra-rights_metadata_datastream.rb +0 -211
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d20da0e6b44ea16a3ea8b082bf4d7ace579231c0
4
- data.tar.gz: a0d115e8e0897dfac1ef208ee9b936b51c0f679b
3
+ metadata.gz: ed9af0497efe12a99da6783dc8fb7aaaf2a1c130
4
+ data.tar.gz: cea4cf641038e3edcb68a53a8c174ddba6035c49
5
5
  SHA512:
6
- metadata.gz: 62cf90d783c51e26e1ff7ac3cb19a9ab5c3c5daff025900244c076d61b9f7a6533a9daab5951bd9225a445ccd3287a59ac0311673919338a0d6ffd17b6a5b7c2
7
- data.tar.gz: a556f5e96eb8b20134a6b9e58c397717882a36184d6972ea3fb705e25a899845b36dfc0ddfd8d524d77828c979f1c8157895e628f2af1aa6015db975c1cffd0c
6
+ metadata.gz: 957e5864be7ef7001eed269400e65e7ae95c5a421078ca56d0243638a51e8442df00e76037097603d894193fdef20edc965ce52d10781fef7ba97de9cf916d15
7
+ data.tar.gz: df5e24a7c95c5e06958e21fb246b0b66210b7523c576ed56356d646973c13bef029000e7f153f7ad60b2e1679f59e7724232e1001c57d4f58104ade1532b26b0
@@ -0,0 +1,245 @@
1
+ require: rubocop-rspec
2
+
3
+ AllCops:
4
+ RunRailsCops: true
5
+ DisplayCopNames: true
6
+ Include:
7
+ - '**/Rakefile'
8
+ Exclude:
9
+ - 'script/**/*'
10
+ - 'vendor/**/*'
11
+
12
+ Lint/RescueException:
13
+ Exclude:
14
+ - 'lib/active_fedora/ldp_cache.rb'
15
+
16
+ Lint/HandleExceptions:
17
+ Exclude:
18
+ - 'spec/unit/**/*'
19
+ - 'spec/integration/**/*'
20
+ - 'lib/active_fedora/cleaner.rb'
21
+ - 'lib/active_fedora/associations/builder/contains.rb'
22
+
23
+ Lint/AssignmentInCondition:
24
+ Enabled: false
25
+
26
+ Metrics/LineLength:
27
+ Enabled: false
28
+
29
+ Metrics/AbcSize:
30
+ Enabled: false
31
+
32
+ Metrics/BlockNesting:
33
+ Exclude:
34
+ - 'lib/active_fedora/autosave_association.rb'
35
+ - 'lib/active_fedora/associations/has_many_association.rb'
36
+
37
+ Metrics/CyclomaticComplexity:
38
+ Exclude:
39
+ - 'lib/active_fedora.rb'
40
+ - 'lib/active_fedora/reflection.rb'
41
+ - 'lib/active_fedora/relation/finder_methods.rb'
42
+ - 'lib/active_fedora/query_result_builder.rb'
43
+ - 'lib/active_fedora/nested_attributes.rb'
44
+ - 'lib/active_fedora/autosave_association.rb'
45
+ - 'lib/active_fedora/associations/has_many_association.rb'
46
+ - 'lib/active_fedora/associations/has_and_belongs_to_many_association.rb'
47
+ - 'lib/active_fedora/associations/builder/indirectly_contains.rb'
48
+ - 'lib/active_fedora/associations/builder/directly_contains_one.rb'
49
+ - 'lib/active_fedora/file_configurator.rb'
50
+ - 'lib/active_fedora/file.rb'
51
+ - 'lib/active_fedora/datastreams/nokogiri_datastreams.rb'
52
+
53
+ Metrics/PerceivedComplexity:
54
+ Exclude:
55
+ - 'lib/active_fedora.rb'
56
+ - 'lib/active_fedora/relation/finder_methods.rb'
57
+ - 'lib/active_fedora/nested_attributes.rb'
58
+ - 'lib/active_fedora/file_configurator.rb'
59
+ - 'lib/active_fedora/datastreams/nokogiri_datastreams.rb'
60
+ - 'lib/active_fedora/autosave_association.rb'
61
+ - 'lib/active_fedora/associations/has_many_association.rb'
62
+ - 'lib/active_fedora/associations/has_and_belongs_to_many_association.rb'
63
+ - 'lib/active_fedora/associations/builder/indirectly_contains.rb'
64
+ - 'lib/active_fedora/associations/builder/directly_contains_one.rb'
65
+
66
+ Metrics/ModuleLength:
67
+ Exclude:
68
+ - 'lib/active_fedora.rb'
69
+ - 'lib/active_fedora/relation/finder_methods.rb'
70
+ - 'lib/active_fedora/persistence.rb'
71
+ - 'lib/active_fedora/attributes.rb'
72
+ - 'lib/active_fedora/autosave_association.rb'
73
+ - 'lib/active_fedora/attached_files.rb'
74
+
75
+ Metrics/ClassLength:
76
+ Exclude:
77
+ - 'spec/samples/hydra-mods_article_datastream.rb'
78
+ - 'lib/active_fedora/rdf/rdf_datastream.rb'
79
+ - 'lib/active_fedora/rdf/fcrepo.rb'
80
+ - 'lib/active_fedora/qualified_dublin_core_datastream.rb'
81
+ - 'lib/active_fedora/file_configurator.rb'
82
+ - 'lib/active_fedora/file.rb'
83
+ - 'lib/active_fedora/associations/collection_proxy.rb'
84
+ - 'lib/active_fedora/associations/collection_association.rb'
85
+
86
+ Metrics/MethodLength:
87
+ Enabled: false
88
+
89
+ Style/MethodName:
90
+ Exclude:
91
+ - 'lib/active_fedora/with_metadata.rb'
92
+
93
+ Style/AndOr:
94
+ Exclude:
95
+ - 'lib/active_fedora/associations/has_many_association.rb'
96
+
97
+ Style/AccessorMethodName:
98
+ Exclude:
99
+ - 'lib/active_fedora/with_metadata/metadata_node.rb'
100
+ - 'lib/active_fedora/predicates.rb'
101
+ - 'lib/active_fedora/fedora_attributes.rb'
102
+ - 'lib/active_fedora/attribute_methods/dirty.rb'
103
+ - 'lib/active_fedora/associations/has_many_association.rb'
104
+ - 'lib/active_fedora/associations/association.rb'
105
+
106
+ Style/PredicateName:
107
+ Exclude:
108
+ - 'lib/active_fedora/relation/finder_methods.rb'
109
+ - 'lib/active_fedora/versionable.rb'
110
+ - 'lib/active_fedora/reflection.rb'
111
+ - 'lib/active_fedora/pathing.rb'
112
+ - 'lib/active_fedora/om_datastream.rb'
113
+ - 'lib/active_fedora/nested_attributes.rb'
114
+ - 'lib/active_fedora/clean_connection.rb'
115
+ - 'lib/active_fedora/attributes.rb'
116
+ - 'lib/active_fedora/file/attributes.rb'
117
+ - 'lib/active_fedora/attached_files.rb'
118
+ - 'lib/active_fedora/associations.rb'
119
+ - 'lib/active_fedora/association_hash.rb'
120
+
121
+ Style/GuardClause:
122
+ Exclude:
123
+ - 'lib/active_fedora/autosave_association.rb'
124
+
125
+ Style/TrivialAccessors:
126
+ Exclude:
127
+ - 'lib/active_fedora/reflection.rb'
128
+ - 'lib/active_fedora/attributes/node_config.rb'
129
+ - 'lib/active_fedora/associations/directly_contains_one_association.rb'
130
+ - 'lib/active_fedora/associations/belongs_to_association.rb'
131
+ - 'lib/active_fedora/associations/association.rb'
132
+
133
+ Style/EachWithObject:
134
+ Exclude:
135
+ - 'lib/active_fedora/relation/finder_methods.rb'
136
+
137
+ Style/CaseEquality:
138
+ Exclude:
139
+ - 'lib/active_fedora/relation/finder_methods.rb'
140
+
141
+ Style/BlockDelimiters:
142
+ Exclude:
143
+ - 'spec/**/*'
144
+
145
+ Style/BlockEndNewline:
146
+ Exclude:
147
+ - 'spec/**/*'
148
+
149
+ Style/MultilineBlockLayout:
150
+ Exclude:
151
+ - 'spec/**/*'
152
+
153
+ Style/Semicolon:
154
+ Exclude:
155
+ - 'spec/**/*'
156
+
157
+ Style/Lambda:
158
+ Exclude:
159
+ - 'spec/**/*'
160
+
161
+ Style/IndentationConsistency:
162
+ EnforcedStyle: rails
163
+
164
+ Style/CollectionMethods:
165
+ PreferredMethods:
166
+ collect: 'map'
167
+ collect!: 'map!'
168
+ inject: 'reduce'
169
+ detect: 'find'
170
+ find_all: 'select'
171
+
172
+ Style/WordArray:
173
+ Enabled: false
174
+
175
+ Style/RegexpLiteral:
176
+ Enabled: false
177
+
178
+ Style/StringLiterals:
179
+ Enabled: false
180
+
181
+ Style/ClassAndModuleChildren:
182
+ Enabled: false
183
+
184
+ Style/Documentation:
185
+ Enabled: false
186
+
187
+ Style/HashSyntax:
188
+ Exclude:
189
+
190
+ Style/GlobalVars:
191
+ Exclude:
192
+ - 'spec/**/*'
193
+
194
+ Style/SingleLineBlockParams:
195
+ Enabled: false
196
+
197
+ Style/ClassVars:
198
+ Exclude:
199
+ - 'spec/unit/finder_methods_spec.rb'
200
+ - 'spec/unit/base_spec.rb'
201
+ - 'spec/integration/indexing_spec.rb'
202
+ - 'lib/active_fedora/predicates.rb'
203
+ - 'lib/active_fedora/identifiable.rb'
204
+
205
+ Style/SignalException:
206
+ Enabled: false
207
+
208
+ Style/FileName:
209
+ Exclude:
210
+ - 'lib/active-fedora.rb'
211
+ - 'spec/samples/hydra-mods_article_datastream.rb'
212
+
213
+ Rails/Output:
214
+ Exclude:
215
+ - 'lib/generators/**/*'
216
+
217
+ Rails/Date:
218
+ Enabled: false
219
+
220
+ Rails/TimeZone:
221
+ Enabled: false
222
+
223
+ RSpec/ExampleWording:
224
+ CustomTransform:
225
+ be: is
226
+ have: has
227
+ not: does not
228
+ NOT: does NOT
229
+ IgnoredWords:
230
+ - only
231
+
232
+ RSpec/FilePath:
233
+ Enabled: false
234
+
235
+ RSpec/InstanceVariable:
236
+ Enabled: false
237
+
238
+ RSpec/DescribeClass:
239
+ Exclude:
240
+ - 'spec/integration/**/*'
241
+
242
+ RSpec/DescribedClass:
243
+ Exclude:
244
+ - 'spec/unit/finder_methods_spec.rb'
245
+
@@ -3,17 +3,18 @@ cache: bundler
3
3
  sudo: false
4
4
  rvm:
5
5
  - 2.2.1
6
- gemfile:
7
- - gemfiles/rails4.1.gemfile
8
- - gemfiles/rails4.2.gemfile
9
6
  matrix:
10
7
  include:
11
8
  - rvm: 2.1
12
- gemfile: gemfiles/rails4.2.gemfile
9
+ env: "RAILS_VERSION=4.2.4"
10
+
13
11
  notifications:
14
12
  irc: "irc.freenode.org#projecthydra"
13
+
15
14
  env:
16
- global:
17
- - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
15
+ - "RAILS_VERSION=4.1.13"
16
+
17
+ global_env:
18
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
18
19
  before_script:
19
- - jdk_switcher use oraclejdk8
20
+ - jdk_switcher use oraclejdk8
data/Gemfile CHANGED
@@ -7,6 +7,8 @@ gemspec path: File.expand_path('..', __FILE__)
7
7
  gem 'byebug' unless ENV['TRAVIS']
8
8
  gem 'pry-byebug' unless ENV['CI']
9
9
 
10
+ gem 'activemodel', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
11
+
10
12
  group :test do
11
13
  gem 'simplecov', require: false
12
14
  gem 'coveralls', require: false
@@ -1,3 +1,54 @@
1
+ v9.6.1
2
+ 2015-11-02: Don't try to parse nil dates. Fixes #937 [Justin Coyne]
3
+
4
+ v9.6.0 (yanked)
5
+ 2015-11-02: Loosen dependency on rdf-rdfxml [Justin Coyne]
6
+
7
+ 2015-10-29: Allow developers to override resource_class. [Trey Terrell]
8
+
9
+ 2015-10-27: Makes `has_key?` and `key?` behave consistently in
10
+ AF::AssociationHash [David Chandek-Stark]
11
+
12
+ 2015-10-27: Create failing test for issue with datastreams resetting to old
13
+ version after save related to
14
+ https://github.com/projecthydra/active_fedora/issues/913 [Kathryn Cassidy]
15
+
16
+ 2015-10-26: Save timezone information for DateTime values. Load from Solr as
17
+ DateTime rather than String when index type is :date. [Olli Lyytinen]
18
+
19
+ 2015-10-26: Load create_date and modified_date from Solr. [Olli Lyytinen]
20
+
21
+ 2015-10-23: Ensure Travis runs the tests [Justin Coyne]
22
+
23
+ 2015-10-23: Avoid unnecessary loads [Justin Coyne]
24
+
25
+ 2015-10-23: refactor persistence spec to not use deprecated methods [Justin
26
+ Coyne]
27
+
28
+ 2015-10-23: Return values for inherited attributes the same way we do for
29
+ properties [Adam Wead]
30
+
31
+ 2015-10-23: Create an ids_reader for indirect containers [Justin Coyne]
32
+
33
+ 2015-10-22: Exclude vendor/**/* from rubocop [Justin Coyne]
34
+
35
+ 2015-10-22: Do away with gemfiles [Justin Coyne]
36
+
37
+ 2015-10-22: Add rubocop [Justin Coyne]
38
+
39
+ 2015-10-22: Don't load all the members of an Aggregation on concat [Justin
40
+ Coyne]
41
+
42
+ 2015-10-20: Adds ActiveFedora::Checksum class to encapsulate file digest info.
43
+ [David Chandek-Stark]
44
+
45
+ 2015-08-03: Append val to solr array instead of replacing when appropriate.
46
+ [Anna Headley]
47
+
48
+ 2015-10-20: Adds `#create_date` attribute method to File. [David Chandek-Stark]
49
+
50
+ 2015-10-19: Update foreign_key documentation [ci skip] [Justin Coyne]
51
+
1
52
  v9.5.0
2
53
  2015-10-16: query for nil creates correct query [Justin Coyne]
3
54
 
data/Rakefile CHANGED
@@ -6,11 +6,12 @@ Bundler::GemHelper.install_tasks
6
6
  # load rake tasks defined in lib/tasks that are not loaded in lib/active_fedora.rb
7
7
  load "lib/tasks/active_fedora_dev.rake"
8
8
 
9
- CLEAN.include %w[**/.DS_Store tmp *.log *.orig *.tmp **/*~]
9
+ CLEAN.include %w(**/.DS_Store tmp *.log *.orig *.tmp **/*~)
10
10
 
11
- task :ci => ['jetty:clean', 'active_fedora:ci']
12
- task :spec => ['active_fedora:rspec']
13
- task :rcov => ['active_fedora:rcov']
11
+ desc 'setup jetty and run tests'
12
+ task ci: ['jetty:clean', 'active_fedora:ci']
13
+ desc 'run tests'
14
+ task spec: ['active_fedora:rubocop', 'active_fedora:rspec']
15
+ task rcov: ['active_fedora:rcov']
14
16
 
15
-
16
- task :default => [:ci]
17
+ task default: [:ci]
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency 'nom-xml', '>= 0.5.1'
20
20
  s.add_dependency "activesupport", '>= 4.1.0'
21
21
  s.add_dependency "active-triples", '~> 0.7.1'
22
- s.add_dependency "rdf-rdfxml", '~> 1.1.0'
22
+ s.add_dependency "rdf-rdfxml", '~> 1.1'
23
23
  s.add_dependency "linkeddata"
24
24
  s.add_dependency "deprecation"
25
25
  s.add_dependency "ldp", '~> 0.4.0'
@@ -32,6 +32,8 @@ Gem::Specification.new do |s|
32
32
  s.add_development_dependency "rspec-its"
33
33
  s.add_development_dependency "equivalent-xml"
34
34
  s.add_development_dependency "simplecov", '~> 0.7.1'
35
+ s.add_development_dependency "rubocop", '~> 0.34'
36
+ s.add_development_dependency "rubocop-rspec", '~> 1.3'
35
37
 
36
38
  s.files = `git ls-files`.split("\n")
37
39
  s.test_files = `git ls-files -- {spec}/*`.split("\n")
@@ -14,20 +14,21 @@ ENABLE_SOLR_UPDATES = true unless defined?(ENABLE_SOLR_UPDATES)
14
14
 
15
15
  # Monkey patching RDF::Literal::DateTime to support fractional seconds.
16
16
  # See https://github.com/projecthydra/active_fedora/issues/497
17
+ # Also monkey patches in a fix for timezones to be stored properly.
17
18
  module RDF
18
19
  class Literal
19
20
  class DateTime < Literal
20
21
  ALTERNATIVE_FORMAT = '%Y-%m-%dT%H:%M:%S'.freeze
21
22
  DOT = '.'.freeze
22
- Z = 'Z'.freeze
23
23
  EMPTY = ''.freeze
24
+ TIMEZONE_FORMAT = '%z'.freeze
24
25
 
25
26
  def to_s
26
27
  @string ||= begin
27
28
  # Show nanoseconds but remove trailing zeros
28
29
  nano = @object.strftime('%N').sub(/0+\Z/, EMPTY)
29
30
  nano = DOT + nano unless nano.blank?
30
- @object.strftime(ALTERNATIVE_FORMAT) + nano + Z
31
+ @object.strftime(ALTERNATIVE_FORMAT) + nano + @object.strftime(TIMEZONE_FORMAT)
31
32
  end
32
33
  end
33
34
  end
@@ -49,6 +50,7 @@ module ActiveFedora #:nodoc:
49
50
  autoload :CachingConnection
50
51
  autoload :Callbacks
51
52
  autoload :ChangeSet
53
+ autoload :Checksum
52
54
  autoload :CleanConnection
53
55
  autoload :Config
54
56
  autoload :Core
@@ -151,7 +153,6 @@ module ActiveFedora #:nodoc:
151
153
  end
152
154
  end
153
155
 
154
-
155
156
  module Scoping
156
157
  extend ActiveSupport::Autoload
157
158
 
@@ -168,11 +169,14 @@ module ActiveFedora #:nodoc:
168
169
  def fedora_config
169
170
  @fedora_config ||= Config.new(configurator.fedora_config)
170
171
  end
171
- def solr_config; configurator.solr_config; end
172
- def config_options; configurator.config_options; end
173
- def config_loaded?; configurator.config_loaded?; end
174
172
 
175
- def init( options={} )
173
+ delegate :solr_config, to: :configurator
174
+
175
+ delegate :config_options, to: :configurator
176
+
177
+ delegate :config_loaded?, to: :configurator
178
+
179
+ def init(options = {})
176
180
  # Make config_options into a Hash if nil is passed in as the value
177
181
  options = {} if options.nil?
178
182
  # For backwards compatibility, handle cases where config_path (a String) is passed in as the argument rather than a config_options hash
@@ -201,14 +205,14 @@ module ActiveFedora #:nodoc:
201
205
  # ActiveFedora.init(:environment=>"test")
202
206
  # ActiveFedora.environment => "test"
203
207
  def environment
204
- if config_options.fetch(:environment,nil)
208
+ if config_options.fetch(:environment, nil)
205
209
  return config_options[:environment]
206
- elsif defined?(Rails.env) and !Rails.env.nil?
210
+ elsif defined?(Rails.env) && !Rails.env.nil?
207
211
  return Rails.env.to_s
208
- elsif defined?(ENV['environment']) and !(ENV['environment'].nil?)
212
+ elsif defined?(ENV['environment']) && !(ENV['environment'].nil?)
209
213
  return ENV['environment']
210
- elsif defined?(ENV['RAILS_ENV']) and !(ENV['RAILS_ENV'].nil?)
211
- raise RuntimeError, "You're depending on RAILS_ENV for setting your environment. Please use ENV['environment'] for non-rails environment setting: 'rake foo:bar environment=test'"
214
+ elsif defined?(ENV['RAILS_ENV']) && !(ENV['RAILS_ENV'].nil?)
215
+ raise "You're depending on RAILS_ENV for setting your environment. Please use ENV['environment'] for non-rails environment setting: 'rake foo:bar environment=test'"
212
216
  else
213
217
  ENV['environment'] = 'development'
214
218
  end
@@ -222,9 +226,7 @@ module ActiveFedora #:nodoc:
222
226
  @fedora ||= Fedora.new(fedora_config.credentials)
223
227
  end
224
228
 
225
- def predicate_config
226
- configurator.predicate_config
227
- end
229
+ delegate :predicate_config, to: :configurator
228
230
 
229
231
  def root
230
232
  ::File.expand_path('../..', __FILE__)
@@ -243,10 +245,10 @@ module ActiveFedora #:nodoc:
243
245
  # @example Search within ActiveFedora::RdfNode for a class called "TermProxy"
244
246
  # ActiveFedora.class_from_string("TermProxy", ActiveFedora::RdfNode)
245
247
  # => ActiveFedora::RdfNode::TermProxy
246
- def class_from_string(class_name, container_class=Kernel)
248
+ def class_from_string(full_class_name, container_class = Kernel)
247
249
  container_class = container_class.name if container_class.is_a? Module
248
250
  container_parts = container_class.split('::')
249
- (container_parts + class_name.split('::')).flatten.inject(Kernel) do |mod, class_name|
251
+ (container_parts + full_class_name.split('::')).flatten.inject(Kernel) do |mod, class_name|
250
252
  if mod == Kernel
251
253
  Object.const_get(class_name)
252
254
  elsif mod.const_defined? class_name.to_sym
@@ -257,14 +259,11 @@ module ActiveFedora #:nodoc:
257
259
  end
258
260
  end
259
261
  end
260
-
261
262
  end
262
263
 
263
264
  self.configurator ||= ActiveFedora::FileConfigurator.new
264
-
265
265
  end
266
266
 
267
-
268
267
  I18n.load_path << ::File.dirname(__FILE__) + '/active_fedora/locale/en.yml'
269
268
 
270
269
  require 'active_fedora/railtie' if defined?(Rails)