find_as_hashes 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  rvm:
2
2
  - 1.8.7
3
3
  - 1.9.2
4
+ - 1.9.3
4
5
  - ree
5
6
  - ruby-head
6
- - rbx-2.0
7
7
  notifications:
8
8
  # overriding this so that TST Media's email account doesn't get spammed
9
9
  # feel free to add yourselves if you want in on this action
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- find_as_hashes (0.2.0)
4
+ find_as_hashes (0.3.0)
5
5
  activerecord
6
6
 
7
7
  GEM
@@ -30,7 +30,7 @@ GEM
30
30
  sqlite3 (1.3.4)
31
31
  turn (0.8.2)
32
32
  ansi (>= 1.2.2)
33
- tzinfo (0.3.29)
33
+ tzinfo (0.3.33)
34
34
 
35
35
  PLATFORMS
36
36
  ruby
data/README.markdown CHANGED
@@ -1,3 +1,5 @@
1
+ [![TravisCI](https://secure.travis-ci.org/tstmedia/find_as_hashes.png "TravisCI")](http://travis-ci.org/tstmedia/find_as_hashes "Travis-CI FindAsHashes")
2
+
1
3
  Adds methods to return attribute hashes rather than instantiated
2
4
  ActiveRecord objects. This is useful when working with large sets of
3
5
  records and you need the performance more than you need the convenience
@@ -1,3 +1,3 @@
1
1
  module FindAsHashes
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,17 +1,25 @@
1
1
  require "find_as_hashes/version"
2
2
  require 'active_record'
3
+ require 'active_support/core_ext'
3
4
 
4
5
  module FindAsHashes
5
- def all_as_hashes
6
- # TODO figure out a less hacky way than where(nil) of retrieveing existing relation stack without modifying it
7
- relation_stack = where(nil)
8
- connection.select_all(relation_stack.joins(relation_stack.includes_values).to_sql)
6
+
7
+ module Relation
8
+ def all_as_hashes
9
+ connection.select_all(self.joins(self.includes_values).to_sql)
10
+ end
11
+
12
+ def first_as_hash
13
+ relation_stack = limit(1)
14
+ connection.select_one(relation_stack.joins(relation_stack.includes_values).to_sql)
15
+ end
9
16
  end
10
17
 
11
- def first_as_hash
12
- relation_stack = limit(1)
13
- connection.select_one(relation_stack.joins(relation_stack.includes_values).to_sql)
18
+ module Base
19
+ delegate :all_as_hashes, :first_as_hash, :to => :scoped
14
20
  end
21
+
15
22
  end
16
23
 
17
- ActiveRecord::Base.extend FindAsHashes
24
+ ActiveRecord::Relation.send :include, FindAsHashes::Relation
25
+ ActiveRecord::Base.extend FindAsHashes::Base
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: find_as_hashes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
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-09-22 00:00:00.000000000Z
12
+ date: 2012-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &2151839880 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2151839880
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &2151839240 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *2151839240
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rake
38
- requirement: &2151838320 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *2151838320
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: turn
49
- requirement: &2151837220 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2151837220
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: shoulda
60
- requirement: &2151836140 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2151836140
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: activesupport
71
- requirement: &2151834680 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *2151834680
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: sqlite3
82
- requirement: &2151833560 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,7 +117,12 @@ dependencies:
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2151833560
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  description: Provides ActiveRecord methods to return results as attribute hashes rather
92
127
  than instantiated ActiveRecord objects. Useful when working with very large sets
93
128
  of results to improve performance.
@@ -124,7 +159,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
159
  version: '0'
125
160
  segments:
126
161
  - 0
127
- hash: -1576352960134467685
162
+ hash: -4084673358938077351
128
163
  required_rubygems_version: !ruby/object:Gem::Requirement
129
164
  none: false
130
165
  requirements:
@@ -133,10 +168,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
168
  version: '0'
134
169
  segments:
135
170
  - 0
136
- hash: -1576352960134467685
171
+ hash: -4084673358938077351
137
172
  requirements: []
138
173
  rubyforge_project:
139
- rubygems_version: 1.8.6
174
+ rubygems_version: 1.8.24
140
175
  signing_key:
141
176
  specification_version: 3
142
177
  summary: Provides ActiveRecord methods to return results as attribute hashes rather