activerecord-lazy 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-