Skip to content

Commit 21a4c02

Browse files
committed
Merge pull request #212 from projecthydra-labs/parent_becomes_in
Fix 211 - Rework association names. drop parent_ and child_
2 parents bf57c69 + 393aa95 commit 21a4c02

File tree

13 files changed

+341
-211
lines changed

13 files changed

+341
-211
lines changed

Gemfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ gemspec
66
gem 'slop', '~> 3.6' # For byebug
77

88
group :development, :test do
9-
gem 'hydra-pcdm', github: 'projecthydra-labs/hydra-pcdm', branch: 'namespace_vocabs'
109
gem 'rubocop', require: false
1110
gem 'rubocop-rspec', require: false
1211
gem 'pry' unless ENV['CI']

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ collection = Collection.create
5454
book = BookWork.create
5555
page = Page.create
5656

57-
collection.child_generic_works << book
57+
collection.generic_works << book
5858
collection.save
5959
book.generic_files << page
6060
book.save

hydra-works.gemspec

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,30 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
44
require 'hydra/works/version'
55

66
Gem::Specification.new do |spec|
7-
spec.name = "hydra-works"
7+
spec.name = 'hydra-works'
88
spec.version = Hydra::Works::VERSION
9-
spec.authors = ["Justin Coyne"]
10-
spec.email = ["[email protected]"]
9+
spec.authors = ['Justin Coyne']
10+
spec.email = ['[email protected]']
1111
spec.summary = %q{Fundamental repository data model for hydra}
1212
spec.description = %q{Using this data model should enable easy collaboration amongst hydra projects.}
13-
spec.homepage = ""
14-
spec.license = "APACHE2"
13+
spec.homepage = ''
14+
spec.license = 'APACHE2'
1515

1616
spec.files = `git ls-files -z`.split("\x0")
1717
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
1818
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19-
spec.require_paths = ["lib"]
19+
spec.require_paths = ['lib']
2020

21-
spec.add_dependency "hydra-pcdm", "~> 0.1"
22-
spec.add_dependency "hydra-derivatives", "~> 2.0"
23-
spec.add_dependency "activefedora-aggregation", "~> 0.4"
24-
spec.add_dependency "active-fedora", "~> 9.2"
21+
spec.add_dependency 'hydra-pcdm', '~> 0.2'
22+
spec.add_dependency 'hydra-derivatives', '~> 2.0'
23+
spec.add_dependency 'active-fedora', '>= 9.4.1'
24+
spec.add_dependency 'activefedora-aggregation', '~> 0.4'
2525

26-
spec.add_development_dependency "bundler", "~> 1.7"
27-
spec.add_development_dependency "rake", "~> 10.0"
28-
spec.add_development_dependency "rspec-rails", "~> 3.1"
29-
spec.add_development_dependency "engine_cart", "~> 0"
30-
spec.add_development_dependency "sqlite3"
26+
spec.add_development_dependency 'bundler', '~> 1.7'
27+
spec.add_development_dependency 'rake', '~> 10.0'
28+
spec.add_development_dependency 'rspec-rails', '~> 3.1'
29+
spec.add_development_dependency 'engine_cart', '~> 0'
30+
spec.add_development_dependency 'sqlite3'
3131
spec.add_development_dependency 'jettywrapper', '>= 2.0.0'
3232
spec.add_development_dependency 'coveralls'
3333
spec.add_development_dependency 'rspec'
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
module Hydra::Works
22
# Do not allow aggregation of child objects
33
module BlockChildObjects
4-
def child_objects=(_objects)
5-
fail StandardError, "method `child_objects=' not allowed for #{self}"
4+
def objects=(_objects)
5+
fail StandardError, "method `objects=' not allowed for #{self}"
6+
end
7+
8+
def objects
9+
fail StandardError, "method `objects' not allowed for #{self}"
10+
end
11+
12+
def child_objects=(new_objects)
13+
warn '[DEPRECATION] `child_objects=` is deprecated in Hydra::Works. Please use `objects=` instead. This has a target date for removal of 10-31-2015'
14+
self.objects = new_objects
615
end
716

817
def child_objects
9-
fail StandardError, "method `child_objects' not allowed for #{self}"
18+
warn '[DEPRECATION] `child_objects` is deprecated in Hydra::Works. Please use `objects` instead. This has a target date for removal of 10-31-2015'
19+
objects
1020
end
1121
end
1222
end

lib/hydra/works/models/concerns/collection_behavior.rb

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ module CollectionBehavior
2121
type [Hydra::PCDM::Vocab::PCDMTerms.Collection, Vocab::WorksTerms.Collection]
2222
include Hydra::Works::BlockChildObjects
2323

24-
filters_association :members, as: :child_collections, condition: :works_collection?
25-
filters_association :members, as: :child_generic_works, condition: :works_generic_work?
24+
filters_association :members, as: :collections, condition: :works_collection?
25+
filters_association :members, as: :generic_works, condition: :works_generic_work?
2626
end
2727

2828
# @return [Boolean] whether this instance is a Hydra::Works Collection.
@@ -40,12 +40,52 @@ def works_generic_file?
4040
false
4141
end
4242

43-
def parents
43+
def member_of
4444
aggregated_by
4545
end
4646

47-
def parent_collections
47+
def parents
48+
warn '[DEPRECATION] `parents` is deprecated in Hydra::Works. Please use `member_of` instead. This has a target date for removal of 10-31-2015'
49+
member_of
50+
end
51+
52+
def in_collections
4853
aggregated_by.select { |parent| parent.class.included_modules.include?(Hydra::Works::CollectionBehavior) }
4954
end
55+
56+
def parent_collections
57+
warn '[DEPRECATION] `parent_collections` is deprecated in Hydra::Works. Please use `in_collections` instead. This has a target date for removal of 10-31-2015'
58+
in_collections
59+
end
60+
61+
def child_collections
62+
warn '[DEPRECATION] `child_collections` is deprecated in Hydra::Works. Please use `collections` instead. This has a target date for removal of 10-31-2015'
63+
collections
64+
end
65+
66+
def child_collections=(new_collections)
67+
warn '[DEPRECATION] `child_collections=` is deprecated in Hydra::Works. Please use `collections=` instead. This has a target date for removal of 10-31-2015'
68+
self.collections = new_collections
69+
end
70+
71+
def child_collection_ids
72+
warn '[DEPRECATION] `child_collection_ids` is deprecated in Hydra::Works. Please use `collection_ids` instead. This has a target date for removal of 10-31-2015'
73+
collection_ids
74+
end
75+
76+
def child_generic_works
77+
warn '[DEPRECATION] `child_generic_works` is deprecated in Hydra::Works. Please use `generic_works` instead. This has a target date for removal of 10-31-2015'
78+
generic_works
79+
end
80+
81+
def child_generic_works=(new_generic_works)
82+
warn '[DEPRECATION] `child_generic_works=` is deprecated in Hydra::Works. Please use `generic_works=` instead. This has a target date for removal of 10-31-2015'
83+
self.generic_works = new_generic_works
84+
end
85+
86+
def child_generic_work_ids
87+
warn '[DEPRECATION] `child_generic_work_ids` is deprecated in Hydra::Works. Please use `generic_work_ids` instead. This has a target date for removal of 10-31-2015'
88+
generic_work_ids
89+
end
5090
end
5191
end

lib/hydra/works/models/concerns/generic_file_behavior.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,22 @@ def works_generic_file?
3737
true
3838
end
3939

40-
def parents
40+
def member_of
4141
aggregated_by
4242
end
4343

44-
def generic_works
44+
def parents
45+
warn '[DEPRECATION] `parents` is deprecated in Hydra::Works. Please use `member_of` instead. This has a target date for removal of 10-31-2015'
46+
member_of
47+
end
48+
49+
def in_generic_works
4550
aggregated_by.select { |parent| parent.class.included_modules.include?(Hydra::Works::GenericWorkBehavior) }
4651
end
52+
53+
def generic_works
54+
warn '[DEPRECATION] `generic_works` is deprecated in Hydra::Works. Please use `in_generic_works` instead. This has a target date for removal of 10-31-2015'
55+
in_generic_works
56+
end
4757
end
4858
end

lib/hydra/works/models/concerns/generic_work_behavior.rb

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ module GenericWorkBehavior
2020
type [Hydra::PCDM::Vocab::PCDMTerms.Object, Vocab::WorksTerms.GenericWork]
2121
include Hydra::Works::BlockChildObjects
2222

23-
filters_association :members, as: :child_generic_works, condition: :works_generic_work?
23+
filters_association :members, as: :generic_works, condition: :works_generic_work?
2424
filters_association :members, as: :generic_files, condition: :works_generic_file?
2525
end
2626

@@ -39,16 +39,46 @@ def works_generic_file?
3939
false
4040
end
4141

42-
def parents
42+
def member_of
4343
aggregated_by
4444
end
4545

46-
def parent_generic_works
46+
def parents
47+
warn '[DEPRECATION] `parents` is deprecated in Hydra::Works. Please use `member_of` instead. This has a target date for removal of 10-31-2015'
48+
member_of
49+
end
50+
51+
def in_generic_works
4752
aggregated_by.select { |parent| parent.class.included_modules.include?(Hydra::Works::GenericWorkBehavior) }
4853
end
4954

50-
def parent_collections
55+
def parent_generic_works
56+
warn '[DEPRECATION] `parent_generic_works` is deprecated in Hydra::Works. Please use `in_generic_works` instead. This has a target date for removal of 10-31-2015'
57+
in_generic_works
58+
end
59+
60+
def in_collections
5161
aggregated_by.select { |parent| parent.class.included_modules.include?(Hydra::Works::CollectionBehavior) }
5262
end
63+
64+
def parent_collections
65+
warn '[DEPRECATION] `parent_collections` is deprecated in Hydra::Works. Please use `in_collections` instead. This has a target date for removal of 10-31-2015'
66+
in_collections
67+
end
68+
69+
def child_generic_works
70+
warn '[DEPRECATION] `child_generic_works` is deprecated in Hydra::Works. Please use `generic_works` instead. This has a target date for removal of 10-31-2015'
71+
generic_works
72+
end
73+
74+
def child_generic_works=(new_generic_works)
75+
warn '[DEPRECATION] `child_generic_works=` is deprecated in Hydra::Works. Please use `generic_works=` instead. This has a target date for removal of 10-31-2015'
76+
self.generic_works = new_generic_works
77+
end
78+
79+
def child_generic_work_ids
80+
warn '[DEPRECATION] `child_generic_work_ids` is deprecated in Hydra::Works. Please use `generic_work_ids` instead. This has a target date for removal of 10-31-2015'
81+
generic_work_ids
82+
end
5383
end
5484
end

lib/hydra/works/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module Hydra
22
module Works
3-
VERSION = '0.1.0'
3+
VERSION = '0.2.0'
44
end
55
end

0 commit comments

Comments
 (0)