lazy_model 0.0.4 → 0.0.5

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.4
1
+ 0.0.5
data/lazy_model.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lazy_model"
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
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"]
12
- s.date = "2011-12-08"
12
+ s.date = "2011-12-09"
13
13
  s.description = "write common active_record methods in shorthand"
14
14
  s.email = "ascruggs@academicworks.com"
15
15
  s.extra_rdoc_files = [
@@ -27,10 +27,8 @@ Gem::Specification.new do |s|
27
27
  "lazy_model.gemspec",
28
28
  "lib/lazy_model.rb",
29
29
  "lib/lazy_model/lazy_boolean.rb",
30
- "lib/lazy_model/lazy_model.rb",
31
30
  "lib/lazy_model/lazy_model_support.rb",
32
- "lib/lazy_model/lazy_string.rb",
33
- "lib/lazy_model/lazy_text.rb",
31
+ "lib/lazy_model/lazy_state.rb",
34
32
  "test/helper.rb",
35
33
  "test/lazy_model.sqlite3",
36
34
  "test/support/data.rb",
@@ -2,12 +2,21 @@ module LazyModelSupport
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
5
- attr_accessor :lazy_model
6
- delegate :model, :attribute, :enumerables, :custom_finders, :column, :to => :lazy_model
5
+ attr_accessor :attribute, :enumerables, :custom_finders, :column, :model
6
+ end
7
+
8
+ def initialize(model, attribute, enumerables = nil, custom_finders = {})
9
+ self.model = model
10
+ self.attribute = attribute
11
+ self.enumerables = format_enumerables(enumerables)
12
+ self.custom_finders = custom_finders
7
13
  end
8
14
 
9
- def initialize(lazy_model)
10
- self.lazy_model = lazy_model
15
+ private
16
+
17
+ def format_enumerables(enumerables)
18
+ Array(enumerables).map{|enumerable| enumerable.underscore}
11
19
  end
12
20
 
21
+
13
22
  end
@@ -1,6 +1,6 @@
1
1
  module LazyModel
2
2
 
3
- class LazyString
3
+ class LazyState
4
4
 
5
5
  include LazyModelSupport
6
6
 
data/lib/lazy_model.rb CHANGED
@@ -2,20 +2,23 @@ require 'active_record'
2
2
  require 'active_support'
3
3
  require 'active_support/core_ext/module/delegation'
4
4
 
5
- require File.dirname(__FILE__) + '/lazy_model/lazy_model.rb'
6
5
  require File.dirname(__FILE__) + '/lazy_model/lazy_model_support.rb'
7
6
 
8
7
  require File.dirname(__FILE__) + '/lazy_model/lazy_boolean.rb'
9
- require File.dirname(__FILE__) + '/lazy_model/lazy_string.rb'
10
- require File.dirname(__FILE__) + '/lazy_model/lazy_text.rb'
8
+ require File.dirname(__FILE__) + '/lazy_model/lazy_state.rb'
11
9
 
12
10
 
13
11
  module LazyModel
14
12
 
15
- def lazy_model(attribute, enumerables = nil, custom_finders = {})
16
- LazyModel.new(self, attribute, enumerables, custom_finders).define_methods
13
+ def lazy_boolean(attribute)
14
+ LazyBoolean.new(self, attribute).define_methods
17
15
  end
18
16
 
17
+ def lazy_state(attribute, enumerables = nil, custom_finders = {})
18
+ LazyState.new(self, attribute, enumerables, custom_finders).define_methods
19
+ end
20
+
21
+
19
22
  end
20
23
 
21
24
  ActiveRecord::Base.extend LazyModel
Binary file
@@ -3,8 +3,8 @@ class Post < ActiveRecord::Base
3
3
  CHOICES = ["one", "two", "three"]
4
4
  TYPES = ["OldClass"]
5
5
 
6
- lazy_model :archived #boolean
7
- lazy_model :choice, Post::CHOICES, {:prime => ["one", "three"]} #string
8
- lazy_model :old_type, Post::TYPES
6
+ lazy_boolean :archived #boolean
7
+ lazy_state :choice, Post::CHOICES, {:prime => ["one", "three"]} #string
8
+ lazy_state :old_type, Post::TYPES
9
9
 
10
10
  end
@@ -3,7 +3,7 @@ ActiveRecord::Schema.define do
3
3
 
4
4
  create_table :posts, :force => true do |t|
5
5
  t.string :choice
6
- t.string :old_type
6
+ t.text :old_type
7
7
  t.boolean :archived
8
8
  end
9
9
 
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.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-08 00:00:00.000000000 Z
12
+ date: 2011-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70148791015580 !ruby/object:Gem::Requirement
16
+ requirement: &70266500318760 !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: *70148791015580
24
+ version_requirements: *70266500318760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70148791013840 !ruby/object:Gem::Requirement
27
+ requirement: &70266500317660 !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: *70148791013840
35
+ version_requirements: *70266500317660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70148791013060 !ruby/object:Gem::Requirement
38
+ requirement: &70266512218180 !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: *70148791013060
46
+ version_requirements: *70266512218180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70148791012400 !ruby/object:Gem::Requirement
49
+ requirement: &70266512217000 !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: *70148791012400
57
+ version_requirements: *70266512217000
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70148791011220 !ruby/object:Gem::Requirement
60
+ requirement: &70266512214900 !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: *70148791011220
68
+ version_requirements: *70266512214900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3-ruby
71
- requirement: &70148791022680 !ruby/object:Gem::Requirement
71
+ requirement: &70266512213580 !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: *70148791022680
79
+ version_requirements: *70266512213580
80
80
  description: write common active_record methods in shorthand
81
81
  email: ascruggs@academicworks.com
82
82
  executables: []
@@ -95,10 +95,8 @@ files:
95
95
  - lazy_model.gemspec
96
96
  - lib/lazy_model.rb
97
97
  - lib/lazy_model/lazy_boolean.rb
98
- - lib/lazy_model/lazy_model.rb
99
98
  - lib/lazy_model/lazy_model_support.rb
100
- - lib/lazy_model/lazy_string.rb
101
- - lib/lazy_model/lazy_text.rb
99
+ - lib/lazy_model/lazy_state.rb
102
100
  - test/helper.rb
103
101
  - test/lazy_model.sqlite3
104
102
  - test/support/data.rb
@@ -120,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
118
  version: '0'
121
119
  segments:
122
120
  - 0
123
- hash: -1764777521422338466
121
+ hash: -4507813331034137999
124
122
  required_rubygems_version: !ruby/object:Gem::Requirement
125
123
  none: false
126
124
  requirements:
@@ -1,37 +0,0 @@
1
- module LazyModel
2
-
3
- class LazyModel
4
-
5
- attr_accessor :model, :attribute, :enumerables, :custom_finders, :column
6
-
7
- def initialize(model, attribute, enumerables = nil, custom_finders = {})
8
- self.model = model
9
- self.attribute = attribute
10
- self.enumerables = format_enumerables(enumerables)
11
- self.custom_finders = custom_finders
12
- end
13
-
14
- def define_methods
15
- #make sure the column exists
16
- if self.column = model.columns_hash[attribute.to_s]
17
- #pass to lazy class id supported
18
- begin
19
- klass = "LazyModel::Lazy#{column.type.to_s.camelize}".constantize
20
- klass.new(self).define_methods
21
- rescue NameError
22
- warn " attribute type \'#{column.type}\'' on \'#{attribute}\' is not supported "
23
- end
24
- else
25
- warn "\'#{attribute}\' is not an attribute for \'#{model.to_s}\' model"
26
- end
27
- end
28
-
29
- private
30
-
31
- def format_enumerables(enumerables)
32
- Array(enumerables).map{|enumerable| enumerable.underscore}
33
- end
34
-
35
- end
36
-
37
- end
@@ -1 +0,0 @@
1
- LazyModel::LazyText = LazyModel::LazyString