activerecord-lazy 0.0.2 → 0.0.3

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.
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "activerecord-lazy"
6
- s.version = "0.0.2"
6
+ s.version = "0.0.3"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = "Jonathan Tropper"
9
9
  s.email = "tropperstyle@gmail.com"
@@ -1,35 +1,22 @@
1
- require 'activerecord'
1
+ require 'active_record'
2
2
 
3
- module ActiveRecord
4
- module LazyAssociations
5
- def self.extended(base)
6
- class << base
7
- alias_method_chain :association_accessor_methods, :lazy
8
- end
9
- end
10
-
11
- def association_accessor_methods_with_lazy(reflection, association_proxy_class)
12
- original = association_accessor_methods_without_lazy(reflection, association_proxy_class)
3
+ module ActiveRecord::Associations::Builder
4
+ class SingularAssociation
5
+ self.valid_options += [:lazy]
13
6
 
14
- if reflection.options[:lazy]
15
- constructor = reflection.options[:lazy].to_s
16
- raise ActiveRecordError, 'has_one :lazy option must be :build or :create' unless %w[build create].include?(constructor)
7
+ private
17
8
 
18
- define_method "#{reflection.name}_with_lazy" do
19
- send("#{reflection.name}_without_lazy") || send("#{constructor}_#{reflection.name}")
9
+ def define_readers
10
+ lazy_constructor = options[:lazy]
11
+ if lazy_constructor
12
+ name = self.name
13
+ mixin.redefine_method(name) do |*params|
14
+ raise ActiveRecordError, 'has_one :lazy option must be one of :build :create :create!' unless [:build, :create, :create!].include?(lazy_constructor)
15
+ association(name).reader(*params) || association(name).send(lazy_constructor, *params)
20
16
  end
21
-
22
- alias_method_chain reflection.name, :lazy
17
+ else
18
+ super
23
19
  end
24
-
25
- original
26
20
  end
27
21
  end
28
-
29
- class Base
30
- valid_keys_for_has_one_association << :lazy
31
- extend LazyAssociations
32
- end
33
-
34
22
  end
35
-
metadata CHANGED
@@ -1,85 +1,65 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: activerecord-lazy
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jonathan Tropper
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-03-29 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-04-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: activerecord
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 5
30
- segments:
31
- - 2
32
- - 3
33
- version: "2.3"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '2.3'
34
22
  type: :runtime
35
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '2.3'
36
30
  description: Lazy creation for active record one-to-one associations
37
31
  email: tropperstyle@gmail.com
38
32
  executables: []
39
-
40
33
  extensions: []
41
-
42
34
  extra_rdoc_files: []
43
-
44
- files:
35
+ files:
45
36
  - .gitignore
46
37
  - Gemfile
47
38
  - Rakefile
48
39
  - activerecord-lazy.gemspec
49
40
  - lib/activerecord-lazy.rb
50
- has_rdoc: true
51
41
  homepage: https://github.com/tropperstyle/activerecord-lazy
52
42
  licenses: []
53
-
54
43
  post_install_message:
55
44
  rdoc_options: []
56
-
57
- require_paths:
45
+ require_paths:
58
46
  - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
47
+ required_ruby_version: !ruby/object:Gem::Requirement
60
48
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 3
65
- segments:
66
- - 0
67
- version: "0"
68
- required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
54
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
77
59
  requirements: []
78
-
79
60
  rubyforge_project: activerecord-lazy
80
- rubygems_version: 1.4.1
61
+ rubygems_version: 1.8.23
81
62
  signing_key:
82
63
  specification_version: 3
83
64
  summary: Lazy create models
84
65
  test_files: []
85
-