find_as_hashes 0.2.0 → 0.3.0
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/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/README.markdown +2 -0
- data/lib/find_as_hashes/version.rb +1 -1
- data/lib/find_as_hashes.rb +16 -8
- metadata +54 -19
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.markdown
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[](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
|
data/lib/find_as_hashes.rb
CHANGED
@@ -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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
12
|
-
|
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::
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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: -
|
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: -
|
171
|
+
hash: -4084673358938077351
|
137
172
|
requirements: []
|
138
173
|
rubyforge_project:
|
139
|
-
rubygems_version: 1.8.
|
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
|