lazy_model 0.0.10 → 0.0.11

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.10
1
+ 0.0.11
data/lazy_model.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lazy_model"
8
- s.version = "0.0.10"
8
+ s.version = "0.0.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aaron Scruggs"]
@@ -5,25 +5,36 @@ module LazyModel
5
5
  include LazyModelSupport
6
6
 
7
7
  def define_methods
8
+ define_instance_methods
8
9
  define_class_methods
9
10
  end
10
11
 
11
12
  private
12
13
 
14
+ def define_instance_methods
15
+ if belongs_to
16
+ model.class_eval <<-LZY
17
+ def #{attribute}?
18
+ #{belongs_to_attribute}?
19
+ end
20
+ LZY
21
+ end
22
+ end
23
+
13
24
  def define_class_methods
14
25
  model.class_eval <<-LZY
15
26
  class << self
16
27
 
17
28
  def #{attribute}
18
- where(self.arel_table[:#{attribute}].eq(true))
29
+ #{joins}where(#{klass}.arel_table[:#{attribute}].eq(true))
19
30
  end
20
31
 
21
32
  def not_#{attribute}
22
- where(self.arel_table[:#{attribute}].eq(false))
33
+ #{joins}where(#{klass}.arel_table[:#{attribute}].eq(false))
23
34
  end
24
35
 
25
36
  def nil_#{attribute}
26
- where(self.arel_table[:#{attribute}].eq(nil))
37
+ #{joins}where(#{klass}.arel_table[:#{attribute}].eq(nil))
27
38
  end
28
39
 
29
40
  end
@@ -28,4 +28,33 @@ module LazyModelSupport
28
28
  end
29
29
  end
30
30
 
31
+ def belongs_to_attribute
32
+ belongs_to ? "#{belongs_to}.#{attribute}" : attribute
33
+ end
34
+
35
+ def define_join_finder_method
36
+ if belongs_to
37
+ model.class_eval <<-LZY
38
+ class << self
39
+ def #{joins_method_name}
40
+ joins(:#{belongs_to})
41
+ end
42
+ end
43
+ LZY
44
+ end
45
+ end
46
+
47
+ def klass
48
+ belongs_to ? "#{belongs_to.to_s.camelize}" : "self"
49
+ end
50
+
51
+ def joins_method_name
52
+ "with_#{belongs_to}"
53
+ end
54
+
55
+ def joins
56
+ belongs_to ? "#{joins_method_name}." : nil
57
+ end
58
+
59
+
31
60
  end
@@ -38,10 +38,6 @@ module LazyModel
38
38
  end
39
39
  end
40
40
 
41
- def belongs_to_attribute
42
- belongs_to ? "#{belongs_to}.#{attribute}" : attribute
43
- end
44
-
45
41
 
46
42
  ##### CLASS METHODS ##########
47
43
 
@@ -52,18 +48,6 @@ module LazyModel
52
48
  define_custom_class_finder_methods
53
49
  end
54
50
 
55
- def define_join_finder_method
56
- if belongs_to
57
- model.class_eval <<-LZY
58
- class << self
59
- def #{joins_method_name}
60
- joins(:#{belongs_to})
61
- end
62
- end
63
- LZY
64
- end
65
- end
66
-
67
51
  def define_core_class_finder_methods
68
52
  model.class_eval <<-LZY
69
53
  class << self
@@ -132,18 +116,6 @@ module LazyModel
132
116
  end
133
117
  end
134
118
 
135
- def klass
136
- belongs_to ? "#{belongs_to.to_s.camelize}" : "self"
137
- end
138
-
139
- def joins_method_name
140
- "with_#{belongs_to}"
141
- end
142
-
143
- def joins
144
- belongs_to ? "#{joins_method_name}." : nil
145
- end
146
-
147
119
  end
148
120
 
149
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazy_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70102402087040 !ruby/object:Gem::Requirement
16
+ requirement: &70162079173960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70102402087040
24
+ version_requirements: *70162079173960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70102402085980 !ruby/object:Gem::Requirement
27
+ requirement: &70162079173260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70102402085980
35
+ version_requirements: *70162079173260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70102402084940 !ruby/object:Gem::Requirement
38
+ requirement: &70162079172560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70102402084940
46
+ version_requirements: *70162079172560
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70102402242760 !ruby/object:Gem::Requirement
49
+ requirement: &70162079171940 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70102402242760
57
+ version_requirements: *70162079171940
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70102402240800 !ruby/object:Gem::Requirement
60
+ requirement: &70162079171260 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70102402240800
68
+ version_requirements: *70162079171260
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3-ruby
71
- requirement: &70102402239280 !ruby/object:Gem::Requirement
71
+ requirement: &70162095145360 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70102402239280
79
+ version_requirements: *70162095145360
80
80
  description: write common active_record methods in shorthand
81
81
  email: ascruggs@academicworks.com
82
82
  executables: []
@@ -118,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
118
  version: '0'
119
119
  segments:
120
120
  - 0
121
- hash: 2880373122746519887
121
+ hash: 3814367771333126419
122
122
  required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  none: false
124
124
  requirements: