activerecord-preload_query 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c18f581006c1e6e08c09778131433f4b4df32589
4
- data.tar.gz: 1733fedaaab2683023fa4f0ece33fa87630b0c0a
3
+ metadata.gz: d949049c6200f79a00e163437ce2f2c956e49a21
4
+ data.tar.gz: 94779c6509b78a2c932b7efc89a32b29d79d6d89
5
5
  SHA512:
6
- metadata.gz: d63a4b9caee959307e8d56c25612ed85be1d0b161e459783a9cad17daf652d3db3c7caec2d8ba2b2ae128b825c3f5bb3a3fa2a1b3be9808f94f5360c34c8c95a
7
- data.tar.gz: 3a9a9d3437b922ddef82125c4bddf9c4d5523d38318f67a887c9ffdff66915ebad73a0154de0273b3663408e764ac069ed8a94208ea3914c79110bb81bc9c28e
6
+ metadata.gz: 5f74d9a3b9ae89c1270a292981ff12a3e79da0dec93809824d5fea28c2bacac5ecdf1053d7806e3c77a8b7c463ec1f051f5a1c41e2ef67861436b7cbce76ab4b
7
+ data.tar.gz: 80d291dbc189a230b41855749bdb6a9129c66b522b6efe284e500b51f5180d5534314412c18429164b2a5d682136184ef7cf1babf4f5b29ed435ba3e47aa5a8e
data/README.md CHANGED
@@ -26,7 +26,7 @@ end
26
26
  We can do:
27
27
 
28
28
  ```ruby
29
- Category.limit(10).preload_query(:sum_price).each do |caregory|
29
+ Category.limit(10).preload_query(:sum_price).each do |category|
30
30
  p category.name
31
31
  p category.sum_price
32
32
  end
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'minitest', '>= 3'
25
25
  spec.add_development_dependency 'sqlite3', '~> 1.3'
26
26
  spec.add_development_dependency 'pry'
27
+ spec.add_development_dependency 'pry-byebug'
27
28
  end
@@ -7,6 +7,12 @@ ActiveSupport.on_load(:active_record) do
7
7
  delegate :preload_query, to: :scope
8
8
  end
9
9
 
10
+ class ActiveRecord::Base
11
+ class << self
12
+ delegate :preload_query, to: :all
13
+ end
14
+ end
15
+
10
16
  class ActiveRecord::Relation
11
17
  alias_method :origin_initialize, :initialize
12
18
 
@@ -27,10 +33,11 @@ ActiveSupport.on_load(:active_record) do
27
33
  records = origin_exec_queries
28
34
 
29
35
  # added
36
+ primary_key = @klass.primary_key.to_sym
30
37
  @preload_queries.each do |pc|
31
- _tmp = @klass.send(pc, records.map(&:id)).map{|x| [x.id, x.send(pc)]}.to_h
38
+ _tmp = @klass.send(pc, records.map(&primary_key)).map{|x| [x.send(primary_key), x.send(pc)]}.to_h
32
39
  records.map do |record|
33
- record.define_singleton_method pc, lambda { _tmp[record.id] }
40
+ record.define_singleton_method pc, lambda { _tmp[record.send(primary_key)] }
34
41
  end
35
42
  end
36
43
 
@@ -1,5 +1,5 @@
1
1
  module Activerecord
2
2
  module PreloadQuery
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-preload_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Galisteo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-31 00:00:00.000000000 Z
11
+ date: 2016-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: PreloadQuery allows you preload queries and have them available as would
84
98
  a relations and `preload` of ActiveRecord.
85
99
  email: