active-fedora 9.7.1 → 9.7.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b84c2ad365e0934c1c9a6900e855dad6e3e0fb89
4
- data.tar.gz: 138dc99577501a383818150e1e3ce25622312d90
3
+ metadata.gz: c903212b65a47dbc4d8bead4344376b8bbf354b1
4
+ data.tar.gz: ad8c00c8a9b6ece12d54255179838f0704a78e14
5
5
  SHA512:
6
- metadata.gz: 045396d2d76fc88b5f1ceb99340cb5dfebf6b0af631c13f2ae22d15c5de243758aeaf0717221cb202f310b846b2541f588e941741a081e8f16a71577c214ef76
7
- data.tar.gz: 42aa7a98b66b0dcc517aa67ec26889b84850bc195d2f7d6b444520f0de9afc890a5144e553906982e6181542a129d616f8d9cfec36bd02f49d8a54d0d84a2a68
6
+ metadata.gz: e349533000a57afd4a8bf6c189c553cf37cd90e6bd9e9b546557d45a497f88b4eace2de8a4434a039c855f7cb2c4668ca5a3254b064461239d6d72bd2a67585a
7
+ data.tar.gz: 11e2b687b719ff380e269938cdb25ee823c11b334d38e6f2dd244abcf35e9779e4483c3f9eae76e6181bae3fa721ddb277b5d045eab69c6b99fcf21460a61d0c
@@ -1,5 +1,3 @@
1
- require: rubocop-rspec
2
-
3
1
  AllCops:
4
2
  TargetRubyVersion: 2.2
5
3
  DisplayCopNames: true
@@ -14,6 +12,7 @@ Lint/HandleExceptions:
14
12
  - 'spec/unit/**/*'
15
13
  - 'spec/integration/**/*'
16
14
  - 'lib/active_fedora/cleaner.rb'
15
+ - 'lib/active_fedora/associations/builder/has_subresource.rb'
17
16
  - 'lib/active_fedora/associations/builder/contains.rb'
18
17
 
19
18
  Lint/AssignmentInCondition:
@@ -45,6 +44,9 @@ Metrics/CyclomaticComplexity:
45
44
  - 'lib/active_fedora/file_configurator.rb'
46
45
  - 'lib/active_fedora/file.rb'
47
46
  - 'lib/active_fedora/datastreams/nokogiri_datastreams.rb'
47
+ - 'lib/active_fedora/attribute_methods.rb'
48
+ - 'lib/active_fedora/scoping/named.rb'
49
+ - 'lib/active_fedora/inheritance.rb'
48
50
 
49
51
  Metrics/PerceivedComplexity:
50
52
  Exclude:
@@ -58,6 +60,10 @@ Metrics/PerceivedComplexity:
58
60
  - 'lib/active_fedora/associations/has_and_belongs_to_many_association.rb'
59
61
  - 'lib/active_fedora/associations/builder/indirectly_contains.rb'
60
62
  - 'lib/active_fedora/associations/builder/directly_contains_one.rb'
63
+ - 'lib/active_fedora/associations/collection_association.rb'
64
+ - 'lib/active_fedora/attribute_methods.rb'
65
+ - 'lib/active_fedora/scoping/named.rb'
66
+ - 'lib/active_fedora/inheritance.rb'
61
67
 
62
68
  Metrics/ModuleLength:
63
69
  Exclude:
@@ -67,6 +73,7 @@ Metrics/ModuleLength:
67
73
  - 'lib/active_fedora/attributes.rb'
68
74
  - 'lib/active_fedora/autosave_association.rb'
69
75
  - 'lib/active_fedora/attached_files.rb'
76
+ - 'lib/active_fedora/nested_attributes.rb'
70
77
 
71
78
  Metrics/ClassLength:
72
79
  Exclude:
@@ -76,8 +83,13 @@ Metrics/ClassLength:
76
83
  - 'lib/active_fedora/qualified_dublin_core_datastream.rb'
77
84
  - 'lib/active_fedora/file_configurator.rb'
78
85
  - 'lib/active_fedora/file.rb'
86
+ - 'lib/active_fedora/associations/association.rb'
87
+ - 'lib/active_fedora/associations/builder/association.rb'
79
88
  - 'lib/active_fedora/associations/collection_proxy.rb'
80
89
  - 'lib/active_fedora/associations/collection_association.rb'
90
+ - 'lib/active_fedora/reflection.rb'
91
+ - 'lib/active_fedora/orders/ordered_list.rb'
92
+ - 'lib/active_fedora/solr_service.rb'
81
93
 
82
94
  Metrics/MethodLength:
83
95
  Enabled: false
@@ -101,6 +113,7 @@ Style/AccessorMethodName:
101
113
 
102
114
  Style/PredicateName:
103
115
  Exclude:
116
+ - 'lib/active_fedora/attribute_methods.rb'
104
117
  - 'lib/active_fedora/relation/finder_methods.rb'
105
118
  - 'lib/active_fedora/versionable.rb'
106
119
  - 'lib/active_fedora/reflection.rb'
@@ -113,10 +126,14 @@ Style/PredicateName:
113
126
  - 'lib/active_fedora/attached_files.rb'
114
127
  - 'lib/active_fedora/associations.rb'
115
128
  - 'lib/active_fedora/association_hash.rb'
129
+ - 'lib/active_fedora/aggregation/list_source.rb'
130
+ - 'lib/active_fedora/associations/builder/aggregation.rb'
116
131
 
117
132
  Style/GuardClause:
118
133
  Exclude:
119
134
  - 'lib/active_fedora/autosave_association.rb'
135
+ - 'lib/active_fedora/associations/builder/belongs_to.rb'
136
+ - 'lib/active_fedora/associations/builder/has_and_belongs_to_many.rb'
120
137
 
121
138
  Style/TrivialAccessors:
122
139
  Exclude:
@@ -203,6 +220,10 @@ Style/FileName:
203
220
  - 'lib/active-fedora.rb'
204
221
  - 'spec/samples/hydra-mods_article_datastream.rb'
205
222
 
223
+ Style/ZeroLengthPredicate:
224
+ Exclude:
225
+ - 'lib/active_fedora/file/attributes.rb'
226
+
206
227
  Rails:
207
228
  Enabled: true
208
229
 
@@ -216,6 +237,9 @@ Rails/Date:
216
237
  Rails/TimeZone:
217
238
  Enabled: false
218
239
 
240
+ RSpec/AnyInstance:
241
+ Enabled: false
242
+
219
243
  RSpec/ExampleWording:
220
244
  CustomTransform:
221
245
  be: is
@@ -238,3 +262,6 @@ RSpec/DescribeClass:
238
262
  RSpec/DescribedClass:
239
263
  Exclude:
240
264
  - 'spec/unit/finder_methods_spec.rb'
265
+
266
+ RSpec/NotToNot:
267
+ Enabled: false
@@ -1,3 +1,8 @@
1
+ v9.7.2
2
+ 2016-06-30 : Sending multiple values from a where cluase will join with OR [Carolyn Cole]
3
+
4
+ 2016-06-29 : Fixing rubocop for latest version [Carolyn Cole]
5
+
1
6
  v9.7.1
2
7
  2016-01-22 : The jcr/mix versionable predicate is no longer used [Adam Wead]
3
8
 
@@ -32,8 +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
+ s.add_development_dependency "rubocop", '~> 0.38.0'
36
+ s.add_development_dependency "rubocop-rspec", '~> 1.4.0'
37
37
 
38
38
  s.files = `git ls-files`.split("\n")
39
39
  s.test_files = `git ls-files -- {spec}/*`.split("\n")
@@ -75,7 +75,7 @@ module ActiveFedora
75
75
  module AutosaveAssociation
76
76
  extend ActiveSupport::Concern
77
77
 
78
- ASSOCIATION_TYPES = %w( HasMany BelongsTo HasAndBelongsToMany DirectlyContains IndirectlyContains).freeze
78
+ ASSOCIATION_TYPES = %w(HasMany BelongsTo HasAndBelongsToMany DirectlyContains IndirectlyContains).freeze
79
79
 
80
80
  module AssociationBuilderExtension #:nodoc:
81
81
  def self.included(base)
@@ -113,7 +113,7 @@ module ActiveFedora
113
113
 
114
114
  # Attribute hash keys that should not be assigned as normal attributes.
115
115
  # These hash keys are nested attributes implementation details.
116
- UNASSIGNABLE_KEYS = %w( id _destroy ).freeze
116
+ UNASSIGNABLE_KEYS = %w(id _destroy).freeze
117
117
 
118
118
  def assign_nested_attributes_for_collection_association(association_name, attributes_collection)
119
119
  options = nested_attributes_options[association_name]
@@ -260,13 +260,13 @@ module ActiveFedora
260
260
  # @param [Hash<Symbol,String>] conditions
261
261
  # @return [Array<String>]
262
262
  def create_query_from_hash(conditions)
263
- conditions.map { |key, value| condition_to_clauses(key, value) }.compact
263
+ conditions.map { |key, value| condition_to_clauses(key, value, ' OR ') }.compact
264
264
  end
265
265
 
266
266
  # @param [Symbol] key
267
267
  # @param [String] value
268
- def condition_to_clauses(key, value)
269
- SolrQueryBuilder.construct_query([[field_name_for(key), value]])
268
+ def condition_to_clauses(key, value, join_with = SolrQueryBuilder.default_join_with)
269
+ SolrQueryBuilder.construct_query([[field_name_for(key), value]], join_with)
270
270
  end
271
271
 
272
272
  # If the key is a property name, turn it into a solr field
@@ -13,6 +13,7 @@ module ActiveFedora
13
13
  #
14
14
  # fruits = Fruit.all
15
15
  # fruits = fruits.where(color: 'red') if options[:red_only]
16
+ # fruits = fruits.where(size: ['big', 'little']) # gets big or little fruit
16
17
  # fruits = fruits.limit(10) if limited?
17
18
  #
18
19
  # You can define a scope that applies to all finders using
@@ -32,7 +32,7 @@ module ActiveFedora
32
32
  # # => _query_:"{!raw f=has_model_ssim}info:fedora/afmodel:ComplexCollection" OR _query_:"{!raw f=has_model_ssim}info:fedora/afmodel:ActiveFedora_Base"
33
33
  #
34
34
  # construct_query_for_rel [[Book.reflect_on_association(:library), "foo/bar/baz"]]
35
- def construct_query_for_rel(field_pairs, join_with = ' AND ')
35
+ def construct_query_for_rel(field_pairs, join_with = default_join_with)
36
36
  field_pairs = field_pairs.to_a if field_pairs.is_a? Hash
37
37
  construct_query(property_values_to_solr(field_pairs), join_with)
38
38
  end
@@ -44,8 +44,15 @@ module ActiveFedora
44
44
  # @example
45
45
  # construct_query([['library_id_ssim', '123'], ['owner_ssim', 'Fred']])
46
46
  # # => "_query_:\"{!raw f=library_id_ssim}123\" AND _query_:\"{!raw f=owner_ssim}Fred\""
47
- def construct_query(field_pairs, join_with = ' AND ')
48
- pairs_to_clauses(field_pairs).join(join_with)
47
+ def construct_query(field_pairs, join_with = default_join_with)
48
+ clauses = pairs_to_clauses(field_pairs)
49
+ return "" if clauses.count == 0
50
+ return clauses.first if clauses.count == 1
51
+ "(#{clauses.join(join_with)})"
52
+ end
53
+
54
+ def default_join_with
55
+ ' AND '
49
56
  end
50
57
 
51
58
  private
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "9.7.1".freeze
2
+ VERSION = "9.7.2".freeze
3
3
  end
@@ -91,8 +91,7 @@ describe "Nesting attribute behavior of RDFDatastream" do
91
91
  }
92
92
  # , "Hemings, Sally"
93
93
  ]
94
- }
95
- }
94
+ } }
96
95
  end
97
96
 
98
97
  describe "on lists" do
@@ -160,7 +159,8 @@ describe "Nesting attribute behavior of RDFDatastream" do
160
159
  { label: 'Alternator' },
161
160
  { label: 'Distributor' },
162
161
  { label: 'Transmission' },
163
- { label: 'Fuel Filter' }] }
162
+ { label: 'Fuel Filter' }
163
+ ] }
164
164
  end
165
165
  let(:replace_object_id) { subject.parts[1].rdf_subject.to_s }
166
166
  let(:remove_object_id) { subject.parts[3].rdf_subject.to_s }
@@ -34,7 +34,7 @@ describe ActiveFedora::Base do
34
34
  end
35
35
 
36
36
  it "allows for more than 10 items" do
37
- (1..12).each do
37
+ 12.times do
38
38
  book.topics << Topic.create
39
39
  end
40
40
  book.save
@@ -39,7 +39,7 @@ describe ActiveFedora::Querying do
39
39
  result = ModelIntegrationSpec::Basic.all.to_a
40
40
  expect(result).to be_instance_of(Array)
41
41
  # this test is meaningless if the array length is zero
42
- expect(result.length > 0).to be true
42
+ expect(result).not_to be_empty
43
43
  expect(result).to all(be_an(ModelIntegrationSpec::Basic))
44
44
  end
45
45
  end
@@ -67,6 +67,7 @@ describe ActiveFedora::Querying do
67
67
  field = ActiveFedora::SolrQueryBuilder.solr_name('foo', type: :string)
68
68
  expect(ModelIntegrationSpec::Basic.where(field => 'Beta')).to eq [test_instance1]
69
69
  expect(ModelIntegrationSpec::Basic.where('foo' => 'Beta')).to eq [test_instance1]
70
+ expect(ModelIntegrationSpec::Basic.where('foo' => ['Beta', 'Alpha'])).to eq [test_instance1, test_instance2]
70
71
  end
71
72
  it "orders" do
72
73
  expect(ModelIntegrationSpec::Basic.order(ActiveFedora::SolrQueryBuilder.solr_name('foo', :sortable) + ' asc')).to eq [test_instance2, test_instance1, test_instance3]
@@ -253,8 +253,7 @@ module Hydra
253
253
  "edt" => "Editor",
254
254
  "ill" => "Illustrator",
255
255
  "oth" => "Other",
256
- "trl" => "Translator"
257
- }
256
+ "trl" => "Translator" }
258
257
  end
259
258
 
260
259
  def self.person_relator_terms
@@ -268,8 +267,7 @@ module Hydra
268
267
  "res" => "Researcher",
269
268
  "rth" => "Research team head",
270
269
  "rtm" => "Research team member",
271
- "trl" => "Translator"
272
- }
270
+ "trl" => "Translator" }
273
271
  end
274
272
 
275
273
  def self.conference_relator_terms
@@ -43,8 +43,8 @@ describe ActiveFedora::FinderMethods do
43
43
 
44
44
  context "when value is an array" do
45
45
  let(:value) { ['one', 'four'] }
46
- it { is_expected.to eq "_query_:\"{!raw f=library_id}one\" AND " \
47
- "_query_:\"{!raw f=library_id}four\"" }
46
+ it { is_expected.to eq "(_query_:\"{!raw f=library_id}one\" AND " \
47
+ "_query_:\"{!raw f=library_id}four\")" }
48
48
  end
49
49
  end
50
50
  end
@@ -78,8 +78,8 @@ describe ActiveFedora::Base do
78
78
  let(:solr) { ActiveFedora::SolrService.instance.conn }
79
79
  let(:expected_query) { "#{model_query} AND " \
80
80
  "_query_:\"{!raw f=foo}bar\" AND " \
81
- "_query_:\"{!raw f=baz}quix\" AND " \
82
- "_query_:\"{!raw f=baz}quack\"" }
81
+ "(_query_:\"{!raw f=baz}quix\" OR " \
82
+ "_query_:\"{!raw f=baz}quack\")" }
83
83
  let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
84
84
  let(:expected_sort_params) { { params: { sort: ["title_t desc"], fl: 'id', q: expected_query, qt: 'standard' } } }
85
85
  let(:mock_docs) { [{ "id" => "changeme:30" }, { "id" => "changeme:22" }] }
@@ -137,8 +137,8 @@ describe ActiveFedora::Base do
137
137
  let(:solr) { ActiveFedora::SolrService.instance.conn }
138
138
  let(:expected_query) { "#{model_query} AND " \
139
139
  "_query_:\"{!raw f=foo}bar\" AND " \
140
- "_query_:\"{!raw f=baz}quix\" AND " \
141
- "_query_:\"{!raw f=baz}quack\"" }
140
+ "(_query_:\"{!raw f=baz}quix\" OR " \
141
+ "_query_:\"{!raw f=baz}quack\")" }
142
142
  let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
143
143
  let(:mock_docs) { [{ "id" => "changeme-30" }, { "id" => "changeme-22" }] }
144
144
 
@@ -158,8 +158,8 @@ describe ActiveFedora::Base do
158
158
  let(:solr) { ActiveFedora::SolrService.instance.conn }
159
159
  let(:expected_query) { "#{model_query} AND " \
160
160
  "_query_:\"{!raw f=foo}bar\" AND " \
161
- "_query_:\"{!raw f=baz}quix\" AND " \
162
- "_query_:\"{!raw f=baz}quack\"" }
161
+ "(_query_:\"{!raw f=baz}quix\" OR " \
162
+ "_query_:\"{!raw f=baz}quack\")" }
163
163
  let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
164
164
  let(:mock_docs) { double('docs') }
165
165
 
@@ -253,8 +253,8 @@ describe ActiveFedora::Base do
253
253
  context "with a hash of conditions" do
254
254
  let(:expected_query) { "#{model_query} AND " \
255
255
  "_query_:\"{!raw f=foo}bar\" AND " \
256
- "_query_:\"{!raw f=baz}quix\" AND " \
257
- "_query_:\"{!raw f=baz}quack\"" }
256
+ "(_query_:\"{!raw f=baz}quix\" OR " \
257
+ "_query_:\"{!raw f=baz}quack\")" }
258
258
  let(:conditions) { { foo: 'bar', baz: ['quix', 'quack'] } }
259
259
 
260
260
  it "makes a query to solr and returns the results" do
@@ -265,8 +265,8 @@ describe ActiveFedora::Base do
265
265
  context "with quotes in the params" do
266
266
  let(:expected_query) { "#{model_query} AND " \
267
267
  "_query_:\"{!raw f=foo}9\\\" Nails\" AND " \
268
- "_query_:\"{!raw f=baz}7\\\" version\" AND " \
269
- "_query_:\"{!raw f=baz}quack\"" }
268
+ "(_query_:\"{!raw f=baz}7\\\" version\" OR " \
269
+ "_query_:\"{!raw f=baz}quack\")" }
270
270
  let(:conditions) { { foo: '9" Nails', baz: ['7" version', 'quack'] } }
271
271
 
272
272
  it "escapes quotes" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.7.1
4
+ version: 9.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-01-29 00:00:00.000000000 Z
13
+ date: 2016-07-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr
@@ -256,28 +256,28 @@ dependencies:
256
256
  requirements:
257
257
  - - "~>"
258
258
  - !ruby/object:Gem::Version
259
- version: '0.34'
259
+ version: 0.38.0
260
260
  type: :development
261
261
  prerelease: false
262
262
  version_requirements: !ruby/object:Gem::Requirement
263
263
  requirements:
264
264
  - - "~>"
265
265
  - !ruby/object:Gem::Version
266
- version: '0.34'
266
+ version: 0.38.0
267
267
  - !ruby/object:Gem::Dependency
268
268
  name: rubocop-rspec
269
269
  requirement: !ruby/object:Gem::Requirement
270
270
  requirements:
271
271
  - - "~>"
272
272
  - !ruby/object:Gem::Version
273
- version: '1.3'
273
+ version: 1.4.0
274
274
  type: :development
275
275
  prerelease: false
276
276
  version_requirements: !ruby/object:Gem::Requirement
277
277
  requirements:
278
278
  - - "~>"
279
279
  - !ruby/object:Gem::Version
280
- version: '1.3'
280
+ version: 1.4.0
281
281
  description: ActiveFedora provides for creating and managing objects in the Fedora
282
282
  Repository Architecture.
283
283
  email:
@@ -638,7 +638,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
638
638
  version: '0'
639
639
  requirements: []
640
640
  rubyforge_project:
641
- rubygems_version: 2.5.1
641
+ rubygems_version: 2.6.4
642
642
  signing_key:
643
643
  specification_version: 4
644
644
  summary: A convenience libary for manipulating documents in the Fedora Repository.