eager_counting 0.1.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.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +80 -0
  4. data/Rakefile +34 -0
  5. data/lib/eager_counting.rb +4 -0
  6. data/lib/eager_counting/count_by.rb +87 -0
  7. data/lib/eager_counting/version.rb +3 -0
  8. data/test/dummy/README.rdoc +28 -0
  9. data/test/dummy/Rakefile +6 -0
  10. data/test/dummy/app/assets/javascripts/application.js +13 -0
  11. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  12. data/test/dummy/app/controllers/application_controller.rb +5 -0
  13. data/test/dummy/app/helpers/application_helper.rb +2 -0
  14. data/test/dummy/app/models/action.rb +6 -0
  15. data/test/dummy/app/models/comment.rb +5 -0
  16. data/test/dummy/app/models/country.rb +3 -0
  17. data/test/dummy/app/models/place.rb +6 -0
  18. data/test/dummy/app/models/product.rb +3 -0
  19. data/test/dummy/app/models/user.rb +3 -0
  20. data/test/dummy/app/models/visit.rb +8 -0
  21. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  22. data/test/dummy/bin/bundle +3 -0
  23. data/test/dummy/bin/rails +4 -0
  24. data/test/dummy/bin/rake +4 -0
  25. data/test/dummy/bin/setup +29 -0
  26. data/test/dummy/config.ru +4 -0
  27. data/test/dummy/config/application.rb +26 -0
  28. data/test/dummy/config/boot.rb +5 -0
  29. data/test/dummy/config/database.yml +25 -0
  30. data/test/dummy/config/environment.rb +5 -0
  31. data/test/dummy/config/environments/development.rb +41 -0
  32. data/test/dummy/config/environments/production.rb +79 -0
  33. data/test/dummy/config/environments/test.rb +42 -0
  34. data/test/dummy/config/initializers/assets.rb +11 -0
  35. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  36. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  37. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/test/dummy/config/initializers/inflections.rb +16 -0
  39. data/test/dummy/config/initializers/mime_types.rb +4 -0
  40. data/test/dummy/config/initializers/session_store.rb +3 -0
  41. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  42. data/test/dummy/config/locales/en.yml +23 -0
  43. data/test/dummy/config/routes.rb +56 -0
  44. data/test/dummy/config/secrets.yml +22 -0
  45. data/test/dummy/db/development.sqlite3 +0 -0
  46. data/test/dummy/db/migrate/20150727081137_create_users.rb +8 -0
  47. data/test/dummy/db/migrate/20150727081314_create_countries.rb +8 -0
  48. data/test/dummy/db/migrate/20150727081755_create_places.rb +9 -0
  49. data/test/dummy/db/migrate/20150727081827_create_visits.rb +10 -0
  50. data/test/dummy/db/migrate/20150727081904_create_products.rb +8 -0
  51. data/test/dummy/db/migrate/20150727081905_create_actions.rb +10 -0
  52. data/test/dummy/db/migrate/20150727082016_create_comments.rb +9 -0
  53. data/test/dummy/db/schema.rb +68 -0
  54. data/test/dummy/db/test.sqlite3 +0 -0
  55. data/test/dummy/log/development.log +110 -0
  56. data/test/dummy/log/test.log +1437 -0
  57. data/test/dummy/public/404.html +67 -0
  58. data/test/dummy/public/422.html +67 -0
  59. data/test/dummy/public/500.html +66 -0
  60. data/test/dummy/public/favicon.ico +0 -0
  61. data/test/dummy/test/models/action_test.rb +7 -0
  62. data/test/dummy/test/models/comment_test.rb +7 -0
  63. data/test/dummy/test/models/country_test.rb +7 -0
  64. data/test/dummy/test/models/place_test.rb +7 -0
  65. data/test/dummy/test/models/product_test.rb +7 -0
  66. data/test/dummy/test/models/visit_test.rb +7 -0
  67. data/test/eager_counting_test.rb +85 -0
  68. data/test/test_helper.rb +19 -0
  69. metadata +257 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class ActionTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class CommentTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class CountryTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class PlaceTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class ProductTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class VisitTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,85 @@
1
+ require 'test_helper'
2
+
3
+ class EagerCountingTest < ActiveSupport::TestCase
4
+ test 'count_by a directly associated model' do
5
+ user1 = User.create
6
+ user2 = User.create
7
+ Visit.create(user: user1)
8
+ Visit.create(user: user1)
9
+ Visit.create(user: user2)
10
+
11
+ assert_equal({ user1.id => 2, user2.id => 1 },
12
+ Visit.count_by(:user))
13
+
14
+ assert_equal({ user1.id => 2 },
15
+ Visit.count_by(:user, User.where(id: user1.id)))
16
+
17
+ assert_equal(0, Visit.count_by(:user)[-1])
18
+ end
19
+
20
+ test 'count_by a joined model' do
21
+ place1 = Place.create
22
+ place2 = Place.create
23
+ Action.create(visit: Visit.create(place: place1))
24
+ Action.create(visit: Visit.create(place: place1))
25
+ Action.create(visit: Visit.create(place: place2))
26
+
27
+ assert_equal({ place1.id => 2, place2.id => 1 },
28
+ Action.count_by(visit: :place))
29
+
30
+ assert_equal({ place1.id => 2 },
31
+ Action.count_by({ visit: :place }, Place.where(id: place1.id)))
32
+
33
+ assert_equal(0, Action.count_by(visit: :place)[-1])
34
+ end
35
+
36
+ test 'count_by a distant joined model' do
37
+ country1 = Country.create
38
+ country2 = Country.create
39
+ Action.create(visit: Visit.create(place: Place.create(country: country1)))
40
+ Action.create(visit: Visit.create(place: Place.create(country: country1)))
41
+ Action.create(visit: Visit.create(place: Place.create(country: country2)))
42
+
43
+ assert_equal({ country1.id => 2, country2.id => 1 },
44
+ Action.count_by(visit: { place: :country }))
45
+
46
+ assert_equal({ country1.id => 2 },
47
+ Action.count_by({ visit: { place: :country } }, Place.where(id: country1.id)))
48
+
49
+ assert_equal(0, Action.count_by(visit: { place: :country })[-1])
50
+ end
51
+
52
+ test 'count_by a via has_many association joined model' do
53
+ product1 = Product.create
54
+ product2 = Product.create
55
+ visit1 = Visit.create
56
+ visit2 = Visit.create
57
+ Action.create(visit: visit1, product: product1)
58
+ Action.create(visit: visit1, product: product2)
59
+ Action.create(visit: visit2, product: product1)
60
+
61
+ assert_equal({ product1.id => 2, product2.id => 1 },
62
+ Visit.count_by(actions: :product))
63
+
64
+ assert_equal({ product1.id => 2 },
65
+ Visit.count_by({ actions: :product }, Product.where(id: product1.id)))
66
+
67
+ assert_equal(0, Visit.count_by(actions: :product)[-1])
68
+ end
69
+
70
+ test 'count_by polymorphicly associated model' do
71
+ place1 = Place.create
72
+ place2 = Place.create
73
+ Comment.create(commentable: place1)
74
+ Comment.create(commentable: place1)
75
+ Comment.create(commentable: place2)
76
+
77
+ assert_equal({ place1.id => 2, place2.id => 1 },
78
+ Comment.count_by(:commentable, Place.all))
79
+
80
+ assert_equal({ place1.id => 2 },
81
+ Comment.count_by(:commentable, Place.where(id: place1.id)))
82
+
83
+ assert_equal(0, Comment.count_by(:commentable, Place.all)[-1])
84
+ end
85
+ end
@@ -0,0 +1,19 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
+ require "rails/test_help"
7
+
8
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
9
+ # to be shown.
10
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
11
+
12
+ # Load support files
13
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
14
+
15
+ # Load fixtures from the engine
16
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
17
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
18
+ ActiveSupport::TestCase.fixtures :all
19
+ end
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eager_counting
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tim 'S.D.Eagle' Zeitz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ description: |2
98
+ Eager Counting allows you to easily perform complex association grouped count queries.
99
+ email:
100
+ - dev.tim.zeitz@gmail.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - LICENSE.txt
106
+ - README.md
107
+ - Rakefile
108
+ - lib/eager_counting.rb
109
+ - lib/eager_counting/count_by.rb
110
+ - lib/eager_counting/version.rb
111
+ - test/dummy/README.rdoc
112
+ - test/dummy/Rakefile
113
+ - test/dummy/app/assets/javascripts/application.js
114
+ - test/dummy/app/assets/stylesheets/application.css
115
+ - test/dummy/app/controllers/application_controller.rb
116
+ - test/dummy/app/helpers/application_helper.rb
117
+ - test/dummy/app/models/action.rb
118
+ - test/dummy/app/models/comment.rb
119
+ - test/dummy/app/models/country.rb
120
+ - test/dummy/app/models/place.rb
121
+ - test/dummy/app/models/product.rb
122
+ - test/dummy/app/models/user.rb
123
+ - test/dummy/app/models/visit.rb
124
+ - test/dummy/app/views/layouts/application.html.erb
125
+ - test/dummy/bin/bundle
126
+ - test/dummy/bin/rails
127
+ - test/dummy/bin/rake
128
+ - test/dummy/bin/setup
129
+ - test/dummy/config.ru
130
+ - test/dummy/config/application.rb
131
+ - test/dummy/config/boot.rb
132
+ - test/dummy/config/database.yml
133
+ - test/dummy/config/environment.rb
134
+ - test/dummy/config/environments/development.rb
135
+ - test/dummy/config/environments/production.rb
136
+ - test/dummy/config/environments/test.rb
137
+ - test/dummy/config/initializers/assets.rb
138
+ - test/dummy/config/initializers/backtrace_silencers.rb
139
+ - test/dummy/config/initializers/cookies_serializer.rb
140
+ - test/dummy/config/initializers/filter_parameter_logging.rb
141
+ - test/dummy/config/initializers/inflections.rb
142
+ - test/dummy/config/initializers/mime_types.rb
143
+ - test/dummy/config/initializers/session_store.rb
144
+ - test/dummy/config/initializers/wrap_parameters.rb
145
+ - test/dummy/config/locales/en.yml
146
+ - test/dummy/config/routes.rb
147
+ - test/dummy/config/secrets.yml
148
+ - test/dummy/db/development.sqlite3
149
+ - test/dummy/db/migrate/20150727081137_create_users.rb
150
+ - test/dummy/db/migrate/20150727081314_create_countries.rb
151
+ - test/dummy/db/migrate/20150727081755_create_places.rb
152
+ - test/dummy/db/migrate/20150727081827_create_visits.rb
153
+ - test/dummy/db/migrate/20150727081904_create_products.rb
154
+ - test/dummy/db/migrate/20150727081905_create_actions.rb
155
+ - test/dummy/db/migrate/20150727082016_create_comments.rb
156
+ - test/dummy/db/schema.rb
157
+ - test/dummy/db/test.sqlite3
158
+ - test/dummy/log/development.log
159
+ - test/dummy/log/test.log
160
+ - test/dummy/public/404.html
161
+ - test/dummy/public/422.html
162
+ - test/dummy/public/500.html
163
+ - test/dummy/public/favicon.ico
164
+ - test/dummy/test/models/action_test.rb
165
+ - test/dummy/test/models/comment_test.rb
166
+ - test/dummy/test/models/country_test.rb
167
+ - test/dummy/test/models/place_test.rb
168
+ - test/dummy/test/models/product_test.rb
169
+ - test/dummy/test/models/visit_test.rb
170
+ - test/eager_counting_test.rb
171
+ - test/test_helper.rb
172
+ homepage: https://github.com/UniversalAvenue/eager_counting
173
+ licenses:
174
+ - MIT
175
+ metadata: {}
176
+ post_install_message:
177
+ rdoc_options: []
178
+ require_paths:
179
+ - lib
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ requirements: []
191
+ rubyforge_project:
192
+ rubygems_version: 2.4.7
193
+ signing_key:
194
+ specification_version: 4
195
+ summary: Avoid ActiveRecord N+1 Queries caused by `count` calls!
196
+ test_files:
197
+ - test/dummy/app/assets/javascripts/application.js
198
+ - test/dummy/app/assets/stylesheets/application.css
199
+ - test/dummy/app/controllers/application_controller.rb
200
+ - test/dummy/app/helpers/application_helper.rb
201
+ - test/dummy/app/models/action.rb
202
+ - test/dummy/app/models/comment.rb
203
+ - test/dummy/app/models/country.rb
204
+ - test/dummy/app/models/place.rb
205
+ - test/dummy/app/models/product.rb
206
+ - test/dummy/app/models/user.rb
207
+ - test/dummy/app/models/visit.rb
208
+ - test/dummy/app/views/layouts/application.html.erb
209
+ - test/dummy/bin/bundle
210
+ - test/dummy/bin/rails
211
+ - test/dummy/bin/rake
212
+ - test/dummy/bin/setup
213
+ - test/dummy/config/application.rb
214
+ - test/dummy/config/boot.rb
215
+ - test/dummy/config/database.yml
216
+ - test/dummy/config/environment.rb
217
+ - test/dummy/config/environments/development.rb
218
+ - test/dummy/config/environments/production.rb
219
+ - test/dummy/config/environments/test.rb
220
+ - test/dummy/config/initializers/assets.rb
221
+ - test/dummy/config/initializers/backtrace_silencers.rb
222
+ - test/dummy/config/initializers/cookies_serializer.rb
223
+ - test/dummy/config/initializers/filter_parameter_logging.rb
224
+ - test/dummy/config/initializers/inflections.rb
225
+ - test/dummy/config/initializers/mime_types.rb
226
+ - test/dummy/config/initializers/session_store.rb
227
+ - test/dummy/config/initializers/wrap_parameters.rb
228
+ - test/dummy/config/locales/en.yml
229
+ - test/dummy/config/routes.rb
230
+ - test/dummy/config/secrets.yml
231
+ - test/dummy/config.ru
232
+ - test/dummy/db/development.sqlite3
233
+ - test/dummy/db/migrate/20150727081137_create_users.rb
234
+ - test/dummy/db/migrate/20150727081314_create_countries.rb
235
+ - test/dummy/db/migrate/20150727081755_create_places.rb
236
+ - test/dummy/db/migrate/20150727081827_create_visits.rb
237
+ - test/dummy/db/migrate/20150727081904_create_products.rb
238
+ - test/dummy/db/migrate/20150727081905_create_actions.rb
239
+ - test/dummy/db/migrate/20150727082016_create_comments.rb
240
+ - test/dummy/db/schema.rb
241
+ - test/dummy/db/test.sqlite3
242
+ - test/dummy/log/development.log
243
+ - test/dummy/log/test.log
244
+ - test/dummy/public/404.html
245
+ - test/dummy/public/422.html
246
+ - test/dummy/public/500.html
247
+ - test/dummy/public/favicon.ico
248
+ - test/dummy/Rakefile
249
+ - test/dummy/README.rdoc
250
+ - test/dummy/test/models/action_test.rb
251
+ - test/dummy/test/models/comment_test.rb
252
+ - test/dummy/test/models/country_test.rb
253
+ - test/dummy/test/models/place_test.rb
254
+ - test/dummy/test/models/product_test.rb
255
+ - test/dummy/test/models/visit_test.rb
256
+ - test/eager_counting_test.rb
257
+ - test/test_helper.rb