activerecord-column-reader 0.0.1 → 0.0.2

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.
@@ -1,23 +1,23 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-column-reader (0.0.1)
4
+ activerecord-column-reader (0.0.2)
5
5
  activerecord (~> 3.0.3)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- activemodel (3.0.3)
11
- activesupport (= 3.0.3)
10
+ activemodel (3.0.5)
11
+ activesupport (= 3.0.5)
12
12
  builder (~> 2.1.2)
13
13
  i18n (~> 0.4)
14
- activerecord (3.0.3)
15
- activemodel (= 3.0.3)
16
- activesupport (= 3.0.3)
14
+ activerecord (3.0.5)
15
+ activemodel (= 3.0.5)
16
+ activesupport (= 3.0.5)
17
17
  arel (~> 2.0.2)
18
18
  tzinfo (~> 0.3.23)
19
- activesupport (3.0.3)
20
- arel (2.0.6)
19
+ activesupport (3.0.5)
20
+ arel (2.0.9)
21
21
  builder (2.1.2)
22
22
  diff-lcs (1.1.2)
23
23
  i18n (0.5.0)
@@ -44,7 +44,6 @@ PLATFORMS
44
44
  ruby
45
45
 
46
46
  DEPENDENCIES
47
- activerecord (~> 3.0.3)
48
47
  activerecord-column-reader!
49
48
  rake (~> 0.8.7)
50
49
  rspec (~> 2.1.0)
data/Rakefile CHANGED
@@ -23,7 +23,7 @@ spec = Dir.chdir(path) do
23
23
 
24
24
  # Change these as appropriate
25
25
  s.name = "activerecord-column-reader"
26
- s.version = "0.0.1"
26
+ s.version = "0.0.2"
27
27
  s.summary = "Simple ActiveRecord optimization"
28
28
  s.author = "Tom Ward"
29
29
  s.email = "tom@popdog.net"
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{activerecord-column-reader}
5
- s.version = "0.0.1"
5
+ s.version = "0.0.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Tom Ward"]
9
- s.date = %q{2011-01-31}
9
+ s.date = %q{2011-03-13}
10
10
  s.email = %q{tom@popdog.net}
11
11
  s.extra_rdoc_files = [
12
12
  "README"
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  "Rakefile",
20
20
  "activerecord-column-reader.gemspec",
21
21
  "lib/activerecord-column-reader.rb",
22
+ "lib/penknife/active_record.rb",
22
23
  "lib/penknife/active_record/column_reader.rb",
23
24
  "spec/penknife/column_reader_spec.rb",
24
25
  "spec/spec_helper.rb"
@@ -26,11 +27,10 @@ Gem::Specification.new do |s|
26
27
  s.homepage = %q{http://tomafro.net}
27
28
  s.rdoc_options = ["--main", "README"]
28
29
  s.require_paths = ["lib"]
29
- s.rubygems_version = %q{1.3.7}
30
+ s.rubygems_version = %q{1.5.2}
30
31
  s.summary = %q{Simple ActiveRecord optimization}
31
32
 
32
33
  if s.respond_to? :specification_version then
33
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
34
34
  s.specification_version = 3
35
35
 
36
36
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -0,0 +1,4 @@
1
+ module Penknife
2
+ module ActiveRecord
3
+ end
4
+ end
@@ -1,29 +1,24 @@
1
1
  require 'active_record'
2
+ require 'penknife/active_record'
2
3
 
3
- module Penknife
4
- module ActiveRecord
5
- module ColumnReader
6
- def column_reader(column_name, options = {})
7
- name = options.delete(:as) || column_name.to_s.pluralize
8
- column = columns_hash[column_name.to_s]
4
+ module Penknife::ActiveRecord::ColumnReader
5
+ def column_reader(column_name, options = {})
6
+ name = options.delete(:as) || column_name.to_s.pluralize
7
+ column = columns_hash[column_name.to_s]
9
8
 
10
- if type_cast_code = column.type_cast_code('v')
11
- type_cast_code = "::#{type_cast_code}"
12
- end
9
+ type_cast_code = column.type_cast_code('v')
13
10
 
14
- line = __LINE__
15
- self.class_eval %{
16
- def self.#{name}
17
- query = scoped.select(arel_table[:#{column_name}])
18
- connection.select_all(query.to_sql).collect do |value|
19
- v = value.values.first
20
- #{type_cast_code}
21
- end
22
- end
23
- }, __FILE__, line + 1
11
+ line = __LINE__
12
+ self.class_eval %{
13
+ def self.#{name}
14
+ query = scoped.select(arel_table[:#{column_name}])
15
+ connection.select_all(query.to_sql).collect do |value|
16
+ v = value.values.first
17
+ #{type_cast_code}
18
+ end
24
19
  end
25
-
26
- ::ActiveRecord::Base.extend(self)
27
- end
20
+ }, __FILE__, line + 1
28
21
  end
22
+
23
+ ::ActiveRecord::Base.extend(self)
29
24
  end
@@ -3,14 +3,15 @@ require 'spec_helper'
3
3
  class Monster < ActiveRecord::Base
4
4
  column_reader :name
5
5
  column_reader :dob, :as => :birth_dates
6
+ column_reader :stomachs, :as => :stomachs
6
7
  scope :carnivorous, :conditions => {:carnivorous => true}
7
8
  end
8
9
 
9
10
  describe "Penknife::ActiveRecord::ColumnReader" do
10
11
  before :all do
11
- @growler = Monster.create! :name => 'Growler', :carnivorous => true, :dob => 5.years.ago.to_date
12
- @munchy = Monster.create! :name => 'Munchy', :carnivorous => true, :dob => 12.years.ago
13
- @thistletop = Monster.create! :name => 'Thistletop', :carnivorous => false, :dob => 1.years.ago
12
+ @growler = Monster.create! :name => 'Growler', :carnivorous => true, :dob => 5.years.ago.to_date, :stomachs => 1.0
13
+ @munchy = Monster.create! :name => 'Munchy', :carnivorous => true, :dob => 12.years.ago, :stomachs => 2.5
14
+ @thistletop = Monster.create! :name => 'Thistletop', :carnivorous => false, :dob => 1.years.ago, :stomachs => 3
14
15
  end
15
16
 
16
17
  it "returns only specified values" do
@@ -21,8 +22,12 @@ describe "Penknife::ActiveRecord::ColumnReader" do
21
22
  Monster.carnivorous.names.sort.should eql(['Growler', 'Munchy'])
22
23
  end
23
24
 
24
- it "casts returned values" do
25
- Monster.birth_dates
25
+ it "casts returned dates" do
26
+ Monster.birth_dates.should eql([@growler.dob.to_date, @munchy.dob.to_date, @thistletop.dob.to_date])
27
+ end
28
+
29
+ it "casts returned floats" do
30
+ Monster.stomachs.should eql([@growler.stomachs, @munchy.stomachs, @thistletop.stomachs])
26
31
  end
27
32
 
28
33
  after :all do
@@ -13,5 +13,6 @@ ActiveRecord::Schema.define(:version => 1) do
13
13
  t.string 'name'
14
14
  t.date 'dob'
15
15
  t.boolean 'carnivorous'
16
+ t.float 'stomachs'
16
17
  end
17
18
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-column-reader
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 27
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tom Ward
@@ -15,14 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-08 00:00:00 +00:00
18
+ date: 2011-03-13 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
22
  type: :runtime
24
- name: activerecord
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
26
24
  none: false
27
25
  requirements:
28
26
  - - ~>
@@ -33,12 +31,12 @@ dependencies:
33
31
  - 0
34
32
  - 3
35
33
  version: 3.0.3
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
34
+ name: activerecord
35
+ version_requirements: *id001
38
36
  prerelease: false
37
+ - !ruby/object:Gem::Dependency
39
38
  type: :development
40
- name: rspec
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
42
40
  none: false
43
41
  requirements:
44
42
  - - ~>
@@ -49,12 +47,12 @@ dependencies:
49
47
  - 1
50
48
  - 0
51
49
  version: 2.1.0
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
50
+ name: rspec
51
+ version_requirements: *id002
54
52
  prerelease: false
53
+ - !ruby/object:Gem::Dependency
55
54
  type: :development
56
- name: rake
57
- version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
58
56
  none: false
59
57
  requirements:
60
58
  - - ~>
@@ -65,12 +63,12 @@ dependencies:
65
63
  - 8
66
64
  - 7
67
65
  version: 0.8.7
68
- requirement: *id003
69
- - !ruby/object:Gem::Dependency
66
+ name: rake
67
+ version_requirements: *id003
70
68
  prerelease: false
69
+ - !ruby/object:Gem::Dependency
71
70
  type: :development
72
- name: sqlite3-ruby
73
- version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
74
72
  none: false
75
73
  requirements:
76
74
  - - ~>
@@ -81,12 +79,12 @@ dependencies:
81
79
  - 3
82
80
  - 1
83
81
  version: 1.3.1
84
- requirement: *id004
85
- - !ruby/object:Gem::Dependency
82
+ name: sqlite3-ruby
83
+ version_requirements: *id004
86
84
  prerelease: false
85
+ - !ruby/object:Gem::Dependency
87
86
  type: :development
88
- name: sdoc
89
- version_requirements: &id005 !ruby/object:Gem::Requirement
87
+ requirement: &id005 !ruby/object:Gem::Requirement
90
88
  none: false
91
89
  requirements:
92
90
  - - ~>
@@ -97,7 +95,9 @@ dependencies:
97
95
  - 2
98
96
  - 20
99
97
  version: 0.2.20
100
- requirement: *id005
98
+ name: sdoc
99
+ version_requirements: *id005
100
+ prerelease: false
101
101
  description:
102
102
  email: tom@popdog.net
103
103
  executables: []
@@ -114,6 +114,7 @@ files:
114
114
  - Rakefile
115
115
  - activerecord-column-reader.gemspec
116
116
  - lib/activerecord-column-reader.rb
117
+ - lib/penknife/active_record.rb
117
118
  - lib/penknife/active_record/column_reader.rb
118
119
  - spec/penknife/column_reader_spec.rb
119
120
  - spec/spec_helper.rb
@@ -148,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
149
  requirements: []
149
150
 
150
151
  rubyforge_project:
151
- rubygems_version: 1.3.7
152
+ rubygems_version: 1.5.2
152
153
  signing_key:
153
154
  specification_version: 3
154
155
  summary: Simple ActiveRecord optimization