postgresql_cursor 0.6.8 → 0.6.9
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.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/lib/postgresql_cursor/cursor.rb +6 -0
- data/lib/postgresql_cursor/version.rb +1 -1
- data/test/helper.rb +2 -1
- data/test/test_postgresql_cursor.rb +9 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 630053842ad4867acb96172ec30bbb0bf6a2df40f08afe67b19a794394a79dc4
|
4
|
+
data.tar.gz: dff4476a6f173f50148e1a18570d91f47b99e08b64dcfb18308f59d8d66bd79e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbb48e961a6cc76371639cd5190e48484c350290d14f34882e6ea8e90337b0b948c0abcab1427df85bbeed59979a1e7d1e223f1c4e77a0dd51b81034c0e94208
|
7
|
+
data.tar.gz: a7444b6c43a0da1ea29a658852c66f16e1f22b5eef8e93f1a7ca8c24ed7599bdf197c272584ea09dda17d1db498b5f5c8d9b2a4bd0c79169b16c878f9856df0e
|
data/README.md
CHANGED
@@ -88,6 +88,17 @@ Product.each_row.map {|r| r["id"].to_i } #=> [1, 2, 3, ...]
|
|
88
88
|
Product.each_instance.map {|r| r.id }.each {|id| p id } #=> [1, 2, 3, ...]
|
89
89
|
Product.each_instance.lazy.inject(0) {|sum,r| sum + r.quantity } #=> 499500
|
90
90
|
```
|
91
|
+
|
92
|
+
### PostgreSQLCursor and collection rendering
|
93
|
+
|
94
|
+
You can render cursor collection, using enumeration as collection attribute.
|
95
|
+
|
96
|
+
```ruby
|
97
|
+
render partial: "some_partial", collection: Product.each_instance
|
98
|
+
render partial: "some_partial", collection: Product.each_row
|
99
|
+
render partial: "some_partial", collection: Product.each_hash
|
100
|
+
```
|
101
|
+
|
91
102
|
### Hashes vs. Instances
|
92
103
|
|
93
104
|
The each_row method returns the Hash of strings for speed (as this allows you to process a lot of rows).
|
@@ -71,6 +71,12 @@ module PostgreSQLCursor
|
|
71
71
|
self
|
72
72
|
end
|
73
73
|
|
74
|
+
# ActiveRecord call #size when rendering a collection
|
75
|
+
# Define it and return some dummy value
|
76
|
+
def size
|
77
|
+
-1
|
78
|
+
end
|
79
|
+
|
74
80
|
# Public: Yields each row of the result set to the passed block
|
75
81
|
#
|
76
82
|
# Yields the row to the block. The row is a hash with symbolized keys.
|
data/test/helper.rb
CHANGED
@@ -12,7 +12,8 @@ ActiveRecord::Base.establish_connection(adapter: 'postgresql',
|
|
12
12
|
class Product < ActiveRecord::Base
|
13
13
|
has_many :prices
|
14
14
|
|
15
|
-
# create table
|
15
|
+
# create table products (id serial primary key, data varchar);
|
16
|
+
# create table prices (id serial primary key, product_id integer references products(id));
|
16
17
|
def self.generate(max=1_000)
|
17
18
|
max.times do |i|
|
18
19
|
connection.execute("insert into products values (#{i+1})")
|
@@ -225,4 +225,13 @@ class TestPostgresqlCursor < Minitest::Test
|
|
225
225
|
cursor = Product.first.prices.each_instance
|
226
226
|
refute cursor.instance_variable_get(:@type).loaded?
|
227
227
|
end
|
228
|
+
|
229
|
+
def test_size
|
230
|
+
r = Product.each_instance
|
231
|
+
assert_equal -1, r.size
|
232
|
+
r = Product.each_hash
|
233
|
+
assert_equal -1, r.size
|
234
|
+
r = Product.each_row
|
235
|
+
assert_equal -1, r.size
|
236
|
+
end
|
228
237
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postgresql_cursor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Allen Fair
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
|
-
rubygems_version: 3.3
|
152
|
+
rubygems_version: 3.5.3
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: ActiveRecord PostgreSQL Adapter extension for using a cursor to return a
|