deferring 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0807e9de82ca4e5593921580b87eaa83bc6ed3b5
4
- data.tar.gz: cba881489e3cbb1e43a6b87e617eb4a28a3f83ef
3
+ metadata.gz: 063adf3aca91473f0ca98264db2447d2e1811bdf
4
+ data.tar.gz: 2ad2362263132b43e35bdf4c64abc8e15b109821
5
5
  SHA512:
6
- metadata.gz: 3250b185fc57e85c66a1b25b84ad111a1d98b31a76fa434e6587c16a52551d0cc9b43a2ea2abd4b7f963ad723edfe8cbb1807e12e10010d5f37865b8e9d1b198
7
- data.tar.gz: 137c400ee0f8270e69951d5e49c6c61ee5849285983c8121a0dd1fa2aba9692a84d340bd063719445630ed92144268c4ab1fd782b4777306bed47af8618da1cb
6
+ metadata.gz: e4e49d6d106f758823de3516ce6fc5e3f93511f9e5c0161174a4bd8573eb1ae508570449490267a4e4e7aee49d9da0d8734f632ba1d03b9c5e965600a54c0ab6
7
+ data.tar.gz: 03dcc4ef9d7c2f4ed0cc0bb156dea1c4cb7b5551bfc70b6c0bb1a8756f5d792458942d375c7c363072968d138ab63e74c1d3b7c1d790577ef3538cb3d2f9094f
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
4
  - 1.9.3
4
5
  - 2.0.0
@@ -8,8 +9,11 @@ rvm:
8
9
  - ruby-head
9
10
  - jruby-head
10
11
 
12
+ sudo: false
13
+
11
14
  matrix:
12
15
  allow_failures:
16
+ - rvm: rbx-2
13
17
  - rvm: jruby-19mode
14
18
  - rvm: ruby-head
15
19
  - rvm: jruby-head
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- deferring (0.1.0)
4
+ deferring (0.1.2)
5
5
  activerecord (> 3.0)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- deferring (0.1.0)
4
+ deferring (0.1.2)
5
5
  activerecord (> 3.0)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- deferring (0.1.0)
4
+ deferring (0.1.2)
5
5
  activerecord (> 3.0)
6
6
 
7
7
  GEM
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- deferring (0.1.0)
4
+ deferring (0.1.2)
5
5
  activerecord (> 3.0)
6
6
 
7
7
  GEM
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Deferring
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
data/lib/deferring.rb CHANGED
@@ -31,7 +31,7 @@ module Deferring
31
31
  def deferred_has_many(*args)
32
32
  options = args.extract_options!
33
33
  listeners = create_callback_listeners!(options)
34
- inverse_association_name = options.fetch(:as, self.name.underscore.to_sym)
34
+ inverse_association_name = options[:as] || options[:inverse_of] || self.name.underscore.to_sym
35
35
  autosave = options.fetch(:autosave, true)
36
36
  validate = options.fetch(:validate, true)
37
37
 
@@ -213,8 +213,9 @@ module Deferring
213
213
  # Do not perform validations when validate: false.
214
214
  return true if validate == false
215
215
 
216
- all_records_valid = send(:"deferred_#{association_name}").objects.all? do |record|
217
- unless valid = record.valid?
216
+ all_records_valid = send(:"deferred_#{association_name}").objects.inject(true) do |valid, record|
217
+ unless record.valid?
218
+ valid = false
218
219
  if autosave
219
220
  record.errors.each do |attribute, message|
220
221
  attribute = "#{association_name}.#{attribute}"
@@ -227,9 +228,9 @@ module Deferring
227
228
  end
228
229
  valid
229
230
  end
230
- return false unless all_records_valid
231
+ return true if all_records_valid
231
232
 
232
- true
233
+ false
233
234
  end
234
235
 
235
236
  # the save after the parent object has been saved
@@ -242,24 +243,24 @@ module Deferring
242
243
  send(:"original_#{association_name}=", send(:"deferred_#{association_name}").objects)
243
244
 
244
245
  # Store the new value of the association into our delegated association.
245
- save_deferred_association(association_name, listeners, inverse_association_name)
246
+ update_deferred_association(association_name, listeners, inverse_association_name)
246
247
  end
247
248
 
248
249
  define_method :"reload_with_deferred_#{association_name}" do |*args|
249
250
  find_or_create_deferred_association(association_name, listeners, inverse_association_name)
250
251
 
251
252
  send(:"reload_without_deferred_#{association_name}", *args).tap do
252
- save_deferred_association(association_name, listeners, inverse_association_name)
253
+ update_deferred_association(association_name, listeners, inverse_association_name)
253
254
  end
254
255
  end
255
256
  alias_method_chain :reload, :"deferred_#{association_name}"
256
257
 
257
- generate_save_deferred_assocation_method
258
+ generate_update_deferred_assocation_method
258
259
  generate_find_or_create_deferred_association_method
259
260
  end
260
261
 
261
- def generate_save_deferred_assocation_method
262
- define_method :save_deferred_association do |name, listeners, inverse_association_name|
262
+ def generate_update_deferred_assocation_method
263
+ define_method :update_deferred_association do |name, listeners, inverse_association_name|
263
264
  klass = self.class.reflect_on_association(:"#{name}").klass
264
265
  send(
265
266
  :"deferred_#{name}=",
@@ -274,7 +275,7 @@ module Deferring
274
275
  def generate_find_or_create_deferred_association_method
275
276
  define_method :find_or_create_deferred_association do |name, listeners, inverse_association_name|
276
277
  if send(:"deferred_#{name}").nil?
277
- save_deferred_association(name, listeners, inverse_association_name)
278
+ update_deferred_association(name, listeners, inverse_association_name)
278
279
  end
279
280
  end
280
281
  end
@@ -321,7 +321,7 @@ RSpec.describe 'deferred has_many associations' do
321
321
  end
322
322
 
323
323
  it 'should have loaded the association when joining' do
324
- people = Person.includes(:issues).all
324
+ people = Person.includes(:issues).to_a
325
325
  expect(people[1].issues.loaded?).to be_truthy
326
326
  expect(people[1].issue_ids).to eq [printer_issue.id, db_issue.id]
327
327
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deferring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Roestenburg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-18 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -168,4 +168,3 @@ test_files:
168
168
  - spec/support/models/person.rb
169
169
  - spec/support/models/team.rb
170
170
  - spec/support/rails_versions.rb
171
- has_rdoc: