rspec-sqlimit 0.0.1 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 475c6503c3977cff0ade02d623b23dfe2465b94f
4
- data.tar.gz: 2d9f1030c97a6eb4d156d6a25ee38e46c44456ee
2
+ SHA256:
3
+ metadata.gz: 0ef12b607f4a6ec3c874a69637dd3e9717224998ca13177d8a907b6c6f413068
4
+ data.tar.gz: 3d490548445a3bc92381a19d624a09e2a591ccbcabe4d0a0c8d2bdd2028d6ed1
5
5
  SHA512:
6
- metadata.gz: c687ef9cb2d62c639cd924c90e6ee61417ddfe041e28f13c142b45e9ea35305d8d0f125c125c9d5cd6354dc937a0f9b8d3ab85414ddaaf79c1b3d0ff7a934b0b
7
- data.tar.gz: 57a9ac1ed2e7a67f37def16516becfc1b38dfd403eccfe389f2e0b32498e446906f8d1ca8767823f8e3950892ed29a7385adc4d01c3251ecfda522ebe5772fb3
6
+ metadata.gz: 5c05ef3f272c574a748cb5d4065122ad0b649a94078f01f9520ae18d855a9c8e1ca386f8a085bb3ea1cf9e3c87e011b9288b44eb39930757c7d5e3456df37faf
7
+ data.tar.gz: ab6c401133cb90c82e0d8123d47394570ea143ba9af068c2f8b04e1c8ab474dbccb3dd61e999ce53e44019a7350693ff7a2026bea6adf7791778c14cabf89465
data/.gitignore CHANGED
@@ -1,9 +1,14 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
3
  /Gemfile.lock
4
+ /gemfiles/*.gemfile.lock
4
5
  /_yardoc/
5
6
  /coverage/
6
7
  /doc/
7
8
  /pkg/
8
9
  /spec/reports/
9
10
  /tmp/
11
+ /spec/dummy/db/*.sqlite3
12
+ *.gem
13
+ .rspec_status
14
+ .idea/
data/.rubocop.yml CHANGED
@@ -3,10 +3,11 @@ AllCops:
3
3
  DisplayCopNames: true
4
4
  DisplayStyleGuide: true
5
5
  StyleGuideCopsOnly: true
6
- TargetRubyVersion: 2.3
6
+ TargetRubyVersion: 2.6
7
7
  Exclude:
8
8
  - spec/dummy/db/schema.rb
9
-
9
+ - vendor/bundle/**/*
10
+ - gemfiles/vendor/**/*
10
11
  Metrics/ParameterLists:
11
12
  Max: 5
12
13
 
@@ -14,7 +15,7 @@ Style/Alias:
14
15
  Enabled: false
15
16
 
16
17
  Style/ClassAndModuleChildren:
17
- EnforcedStyle: compact
18
+ Enabled: false
18
19
 
19
20
  Style/FileName:
20
21
  Enabled: false
data/.travis.yml CHANGED
@@ -1,13 +1,37 @@
1
1
  ---
2
- sudo: false
2
+ sudo: false
3
3
  language: ruby
4
- cache: bundler
4
+ cache: bundler
5
+ before_install:
6
+ - gem update --system
7
+ - gem uninstall -v '>= 1' -i $(rvm gemdir)@global -ax bundler || true
8
+ - gem install bundler -v 1.3.0
9
+ - gem update --system
5
10
  script:
6
- - bundle exec rspec
11
+ - bundle exec rake
7
12
  rvm:
8
- - 2.3.0
13
+ - 2.3
14
+ - 2.6
15
+ - 2.7
16
+ - 3.0
9
17
  - ruby-head
10
- before_install: gem install bundler
18
+ gemfile:
19
+ - gemfiles/rails_4.2.gemfile
20
+ - gemfiles/rails_5.0.gemfile
21
+ - gemfiles/rails_5.1.gemfile
22
+ - gemfiles/rails_6.0.gemfile
23
+ - gemfiles/rails_7.0.gemfile
11
24
  matrix:
25
+ exclude:
26
+ - rvm: 2.3
27
+ gemfile: gemfiles/rails_7.0.gemfile
28
+ - rvm: 2.3
29
+ gemfile: gemfiles/rails_6.0.gemfile
30
+ - rvm: 3.0
31
+ gemfile: gemfiles/rails_4.2.gemfile
32
+ - rvm: 2.7
33
+ gemfile: gemfiles/rails_4.2.gemfile
34
+ - rvm: ruby-head
35
+ gemfile: gemfiles/rails_4.2.gemfile
12
36
  allow_failures:
13
37
  - rvm: ruby-head
data/Appraisals ADDED
@@ -0,0 +1,24 @@
1
+ appraise "rails-4.2" do
2
+ gem "rails", "~> 4.2.0"
3
+ gem "sqlite3", "~> 1.3.0"
4
+ end
5
+
6
+ appraise "rails-5.0" do
7
+ gem "rails", "~> 5.0.0"
8
+ gem "sqlite3", "~> 1.3.0"
9
+ end
10
+
11
+ appraise "rails-5.1" do
12
+ gem "rails", "~> 5.1.0"
13
+ gem "sqlite3", "~> 1.3.0"
14
+ end
15
+
16
+ appraise "rails-6.0" do
17
+ gem "rails", "~> 6.0.0"
18
+ gem "sqlite3", "~> 1.4"
19
+ end
20
+
21
+ appraise "rails-7.0" do
22
+ gem "rails", "~> 7.0.0"
23
+ gem "sqlite3", "~> 1.4"
24
+ end
data/CHANGELOG.md ADDED
@@ -0,0 +1,36 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/).
7
+
8
+ ## [0.0.5] - [2022-02-13]
9
+ - Support of Rails 7 (@kivanio)
10
+ - Fix README (@rcclemente)
11
+
12
+ ## [0.0.4] - [2021-03-21]
13
+
14
+ ### Fixed
15
+ - Issue #10 about safe processing of blank :binding key (following @blackst0ne)
16
+
17
+ ## [0.0.3] - [2019-10-02]
18
+
19
+ ### Added
20
+ - Support of Rails 6 (@quikly)
21
+ - Cached queries are ignored (@tyok)
22
+
23
+ ## [0.0.2] - [2017-05-17]
24
+
25
+ ### Added
26
+ - All variables of SQL queries are bound to error messages (@Dobrodushny)
27
+
28
+ ## [0.0.1] - [2017-02-12]
29
+ This is a first public release (@nepalez)
30
+
31
+ [Unreleased]: https://github.com/tram-rb/tram-policy
32
+ [0.0.1]: https://github.com/nepalez/rspec-sqlimit/releases/tag/v0.0.1
33
+ [0.0.2]: https://github.com/nepalez/rspec-sqlimit/compare/v0.0.1...v0.0.2
34
+ [0.0.3]: https://github.com/nepalez/rspec-sqlimit/compare/v0.0.2...v0.0.3
35
+ [0.0.4]: https://github.com/nepalez/rspec-sqlimit/compare/v0.0.3...v0.0.4
36
+ [0.0.5]: https://github.com/nepalez/rspec-sqlimit/compare/v0.0.4...v0.0.5
data/Gemfile CHANGED
@@ -3,6 +3,9 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in tram-form.gemspec
4
4
  gemspec
5
5
 
6
+ gem "rails"
7
+ gem "sqlite3"
8
+
6
9
  group :test, :development do
7
10
  gem "pry"
8
11
  gem "pry-byebug"
data/README.md CHANGED
@@ -4,6 +4,8 @@ RSpec matcher to control number of SQL queries executed by a block of code.
4
4
 
5
5
  It wraps [the answer at Stack Overflow][stack-answer] by [Ryan Bigg][ryan-bigg], which based on Active Support [Notification][notification] and [Instrumentation][instrumentation] mechanisms.
6
6
 
7
+ For motivation and details see my [blog post "Fighting the Hydra of N+1 queries" in the Martian Chronicles][hydra].
8
+
7
9
  [![Gem Version][gem-badger]][gem]
8
10
  [![Build Status][travis-badger]][travis]
9
11
  [![Dependency Status][gemnasium-badger]][gemnasium]
@@ -66,31 +68,7 @@ require "rspec-sqlimit"
66
68
 
67
69
  RSpec.describe "N+1 safety" do
68
70
  it "doesn't send unnecessary requests to db" do
69
- expect { User.create }.not_to exceed_query_limit(1).with(/^INSERT/)
70
- end
71
- end
72
- ```
73
-
74
- ```
75
- Failure/Error: expect { User.create }.not_to exceed_query_limit(0).with(/INSERT/)
76
-
77
- Expected to run maximum 0 queries that match (?-mix:INSERT)
78
- The following 1 queries were invoked among others (see mark ->):
79
- 1) begin transaction (0.072 ms)
80
- -> 2) INSERT INTO "users" DEFAULT VALUES (0.368 ms)
81
- 3) commit transaction (147.559 ms)
82
- ```
83
-
84
- ## Further Development
85
-
86
- For now the gem uses unbinded Active Record queries in error descriptions. For example, when your query contains arguments, the error message will look like
87
-
88
- ```ruby
89
- require "rspec-sqlimit"
90
-
91
- RSpec.describe "N+1 safety" do
92
- it "doesn't send unnecessary requests to db" do
93
- expect { User.create(name: "Joe") }.not_to exceed_query_limit(1)
71
+ expect { User.create name: "Joe" }.not_to exceed_query_limit(0).with(/^INSERT/)
94
72
  end
95
73
  end
96
74
  ```
@@ -101,11 +79,11 @@ Failure/Error: expect { User.create }.not_to exceed_query_limit(0).with(/INSERT/
101
79
  Expected to run maximum 0 queries that match (?-mix:INSERT)
102
80
  The following 1 queries were invoked among others (see mark ->):
103
81
  1) begin transaction (0.072 ms)
104
- -> 2) INSERT INTO "users" ("name") VALUES (?) (0.368 ms)
82
+ -> 2) INSERT INTO "users" ("name") VALUES (?); ["Joe"] (0.368 ms)
105
83
  3) commit transaction (147.559 ms)
106
84
  ```
107
85
 
108
- This is because [Active Record instrumentation hook][hook] keeps a query and bindings separately (under `:sql` and `:binds` keys). So the challenge is **to bind arguments to the query** in the report to make a debugging a bit simpler.
86
+ In the last example you can see that binded values are shown after the query following the Rails convention.
109
87
 
110
88
  ## License
111
89
 
@@ -124,3 +102,4 @@ The gem is available as open source under the terms of the [MIT License](http://
124
102
  [notification]: http://api.rubyonrails.org/classes/ActiveSupport/Notifications.html
125
103
  [instrumentation]: http://guides.rubyonrails.org/active_support_instrumentation.html
126
104
  [hook]: http://guides.rubyonrails.org/active_support_instrumentation.html#sql-active-record
105
+ [hydra]: https://evilmartians.com/chronicles/fighting-the-hydra-of-n-plus-one-queries
data/Rakefile CHANGED
@@ -7,7 +7,23 @@ require "rspec/core/rake_task"
7
7
  load "spec/dummy/Rakefile"
8
8
 
9
9
  # Declares gem's own tasks.
10
+ desc "Runs test suite over all rails versions."
11
+ task :default do
12
+ if ENV["BUNDLE_GEMFILE"] =~ /gemfiles/
13
+ Rake::Task["dummy:db:create"].reenable
14
+ Rake::Task["dummy:db:migrate"].reenable
15
+ Rake::Task[:spec].invoke
16
+ else
17
+ Rake::Task[:appraise].invoke
18
+ end
19
+ end
20
+
10
21
  desc "Runs test suite."
11
- task default: %w(dummy:db:migrate) do
12
- system "bundle exec rspec spec"
22
+ task default: %w[dummy:db:create dummy:db:migrate] do
23
+ exec "bundle exec rspec spec"
24
+ exec "bundle exec rubocop"
25
+ end
26
+
27
+ task :appraise do
28
+ exec "appraisal install && appraisal rake"
13
29
  end
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.2.0"
6
+ gem "sqlite3", "~> 1.3.0"
7
+
8
+ group :test, :development do
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.0.0"
6
+ gem "sqlite3", "~> 1.3.0"
7
+
8
+ group :test, :development do
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.1.0"
6
+ gem "sqlite3", "~> 1.3.0"
7
+
8
+ group :test, :development do
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 6.0.0"
6
+ gem "sqlite3", "~> 1.4"
7
+
8
+ group :test, :development do
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 7.0.0"
6
+ gem "sqlite3", "~> 1.4"
7
+
8
+ group :test, :development do
9
+ gem "pry"
10
+ gem "pry-byebug"
11
+ end
12
+
13
+ gemspec path: "../"
@@ -30,9 +30,25 @@ module RSpec::SQLimit
30
30
 
31
31
  def callback
32
32
  @callback ||= lambda do |_name, start, finish, _message_id, values|
33
- return if %w(CACHE SCHEMA).include? values[:name]
34
- queries << { sql: values[:sql], duration: (finish - start) * 1_000 }
33
+ return if %w[CACHE SCHEMA].include? values[:name]
34
+ return if cached_query?(values)
35
+
36
+ queries << {
37
+ sql: values[:sql],
38
+ duration: (finish - start) * 1_000,
39
+ binds: values[:type_casted_binds] || type_cast(values[:binds])
40
+ }
41
+ end
42
+ end
43
+
44
+ def type_cast(binds)
45
+ binds.map do |column, value|
46
+ ActiveRecord::Base.connection.type_cast(value, column)
35
47
  end
36
48
  end
49
+
50
+ def cached_query?(values)
51
+ values[:type_casted_binds].respond_to?(:call)
52
+ end
37
53
  end
38
54
  end
@@ -11,7 +11,6 @@ module RSpec::SQLimit
11
11
 
12
12
  def call
13
13
  suffix = " among others (see mark ->)" if @matcher
14
-
15
14
  return "No queries were invoked" if @queries.empty?
16
15
 
17
16
  <<-MESSAGE.gsub(/ +\|/, "")
@@ -28,7 +27,9 @@ module RSpec::SQLimit
28
27
 
29
28
  def line(query, index)
30
29
  prefix = (matcher && query[:sql] =~ matcher) ? "->" : " "
31
- "#{prefix} #{index + 1}) #{query[:sql]} (#{query[:duration].round(3)} ms)"
30
+ binds = query[:binds]&.any? ? "; #{query[:binds]} " : ""
31
+ "#{prefix} #{index + 1}) #{query[:sql]}#{binds}" \
32
+ " (#{query[:duration].round(3)} ms)"
32
33
  end
33
34
  end
34
35
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = "rspec-sqlimit"
3
- gem.version = "0.0.1"
3
+ gem.version = "0.0.5"
4
4
  gem.author = "Andrew Kozin (nepalez)"
5
5
  gem.email = "andrew.kozin@gmail.com"
6
6
  gem.homepage = "https://github.com/nepalez/rspec-sqlimit"
@@ -13,12 +13,13 @@ Gem::Specification.new do |gem|
13
13
 
14
14
  gem.required_ruby_version = ">= 2.3"
15
15
 
16
- gem.add_runtime_dependency "rails", "> 4.0", "< 6.0"
16
+ gem.add_runtime_dependency "activerecord", "> 4.2", "< 7.1"
17
17
  gem.add_runtime_dependency "rspec", "~> 3.0"
18
18
 
19
+ gem.add_development_dependency "appraisal", "~> 2.2"
19
20
  gem.add_development_dependency "rspec", "~> 3.0"
20
21
  gem.add_development_dependency "rake", "> 10.0"
21
22
  gem.add_development_dependency "sqlite3", "~> 1.3"
22
23
  gem.add_development_dependency "database_cleaner", "~> 1.5"
23
- gem.add_development_dependency "rubocop", "~> 0.44"
24
+ gem.add_development_dependency "rubocop", "~> 0.49"
24
25
  end
@@ -1,4 +1,4 @@
1
- class CreateUsers < ActiveRecord::Migration
1
+ class CreateUsers < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :users
4
4
  end
@@ -0,0 +1,11 @@
1
+ # ActiveRecord::Migration['5.0'] syntax is not supported prior to Rails 5.0
2
+ # This snippet supports it on Rails 4.2
3
+ unless ActiveRecord::Migration.respond_to?(:[])
4
+ class ActiveRecord::Migration
5
+ class << self
6
+ def [](_version)
7
+ self
8
+ end
9
+ end
10
+ end
11
+ end
@@ -2,6 +2,7 @@ require "active_record"
2
2
  require "bundler/setup"
3
3
 
4
4
  module Dummy
5
+ require_relative "dummy/compatibility"
5
6
  require_relative "dummy/application"
6
7
  require_relative "../config/environment"
7
8
  require_relative "../app/models/user.rb"
@@ -0,0 +1,74 @@
1
+ require "spec_helper"
2
+
3
+ describe RSpec::SQLimit::Reporter do
4
+ subject { described_class.new(counter) }
5
+
6
+ context "no params were passed to the query" do
7
+ let(:counter) { RSpec::SQLimit::Counter[/CREATE/, proc{ User.create }] }
8
+
9
+ it "doesn't print binds" do
10
+ # INSERT INTO "users" DEFAULT VALUES (0.284 ms)
11
+ expect(subject.call).to include("DEFAULT VALUES")
12
+ end
13
+ end
14
+
15
+ context "query contains params" do
16
+ context "nil was passed as param" do
17
+ let(:counter) do
18
+ RSpec::SQLimit::Counter[/CREATE/, proc { User.create(id: nil) }]
19
+ end
20
+
21
+ it "doesn't print binds" do
22
+ # INSERT INTO "users" DEFAULT VALUES (0.284 ms)
23
+ expect(subject.call).to include("DEFAULT VALUES")
24
+ end
25
+ end
26
+
27
+ context "single param was passed" do
28
+ let(:counter) do
29
+ RSpec::SQLimit::Counter[/CREATE/, proc { User.create(id: 1) }]
30
+ end
31
+
32
+ it "prints param as an array with one element" do
33
+ # INSERT INTO "users" ("id") VALUES (?); [1] (0.234 ms)
34
+ expect(subject.call).to include("VALUES (?); [1]")
35
+ end
36
+ end
37
+
38
+ context "array was passed as a param" do
39
+ let(:counter) do
40
+ RSpec::SQLimit::Counter[
41
+ /SELECT/, proc { User.where(id: [1, 2, 3]).to_a }
42
+ ]
43
+ end
44
+
45
+ it "prints all params" do
46
+ # rubocop: disable Metrics/LineLength
47
+ # SELECT "users".* FROM "users" WHERE "users"."id" IN (1, 2, 3) (0.17 ms))
48
+ # Rails >= 6:
49
+ # SELECT "users".* FROM "users" WHERE "users"."id" IN (?, ?, ?); [1, 2, 3] (0.121 ms)
50
+ # rubocop: enable Metrics/LineLength
51
+ expect(subject.call).to include("1, 2, 3")
52
+ end
53
+ end
54
+ end
55
+
56
+ context "activerecord query caching was enabled" do
57
+ let(:counter) do
58
+ RSpec::SQLimit::Counter[/SELECT "users"/, proc { queries }]
59
+ end
60
+
61
+ let(:queries) do
62
+ User.cache do
63
+ User.where(id: 1).to_a
64
+ User.where(id: 1).to_a
65
+ User.where(id: [2, 3]).to_a
66
+ User.where(id: [2, 3]).to_a
67
+ end
68
+ end
69
+
70
+ it "ignores cached queries" do
71
+ expect(subject.call).to include("2 queries were invoked")
72
+ end
73
+ end
74
+ end
@@ -6,6 +6,14 @@ describe "exceed_query_limit" do
6
6
  expect { User.new }.not_to exceed_query_limit(0)
7
7
  end
8
8
 
9
+ it "works when nil is used as a parameter" do
10
+ expect { User.create id: nil }.to exceed_query_limit(0)
11
+ end
12
+
13
+ it "works when array is used as a restriction" do
14
+ expect { (User.where id: [1, 2, 3]).to_a }.to exceed_query_limit(0)
15
+ end
16
+
9
17
  it "works when actual number of queries is below the limit" do
10
18
  expect { User.create }.not_to exceed_query_limit(3)
11
19
  end
@@ -20,6 +28,16 @@ describe "exceed_query_limit" do
20
28
  expect { User.new }.not_to exceed_query_limit(0).with(/INSERT/)
21
29
  end
22
30
 
31
+ it "works when nil is used as a parameter" do
32
+ expect { User.create id: nil }.to exceed_query_limit(0).with(/INSERT/)
33
+ end
34
+
35
+ it "works when array is used as a restriction" do
36
+ expect { (User.where id: [1, 2, 3]).to_a }
37
+ .to exceed_query_limit(0)
38
+ .with(/SELECT/)
39
+ end
40
+
23
41
  it "works when actual number of queries is below the limit" do
24
42
  expect { User.create }.not_to exceed_query_limit(1).with(/INSERT/)
25
43
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-sqlimit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kozin (nepalez)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-12 00:00:00.000000000 Z
11
+ date: 2022-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '4.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.0'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">"
28
28
  - !ruby/object:Gem::Version
29
- version: '4.0'
29
+ version: '4.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.0'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rspec
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: appraisal
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.2'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: rspec
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -106,30 +120,39 @@ dependencies:
106
120
  requirements:
107
121
  - - "~>"
108
122
  - !ruby/object:Gem::Version
109
- version: '0.44'
123
+ version: '0.49'
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '0.44'
130
+ version: '0.49'
117
131
  description:
118
132
  email: andrew.kozin@gmail.com
119
133
  executables: []
120
134
  extensions: []
121
135
  extra_rdoc_files:
122
136
  - README.md
137
+ - CHANGELOG.md
123
138
  files:
124
139
  - ".codeclimate.yml"
125
140
  - ".gitignore"
126
141
  - ".rspec"
127
142
  - ".rubocop.yml"
128
143
  - ".travis.yml"
144
+ - Appraisals
145
+ - CHANGELOG.md
129
146
  - Gemfile
130
147
  - LICENSE.txt
131
148
  - README.md
132
149
  - Rakefile
150
+ - gemfiles/.bundle/config
151
+ - gemfiles/rails_4.2.gemfile
152
+ - gemfiles/rails_5.0.gemfile
153
+ - gemfiles/rails_5.1.gemfile
154
+ - gemfiles/rails_6.0.gemfile
155
+ - gemfiles/rails_7.0.gemfile
133
156
  - lib/rspec-sqlimit.rb
134
157
  - lib/rspec/sqlimit.rb
135
158
  - lib/rspec/sqlimit/counter.rb
@@ -141,9 +164,10 @@ files:
141
164
  - spec/dummy/config/environment.rb
142
165
  - spec/dummy/db/migrate/20170211104800_create_users.rb
143
166
  - spec/dummy/db/schema.rb
144
- - spec/dummy/db/test.sqlite3
145
167
  - spec/dummy/lib/dummy.rb
146
168
  - spec/dummy/lib/dummy/application.rb
169
+ - spec/dummy/lib/dummy/compatibility.rb
170
+ - spec/rspec/sqlimit/reporter_spec.rb
147
171
  - spec/rspec/sqlimit_spec.rb
148
172
  - spec/spec_helper.rb
149
173
  homepage: https://github.com/nepalez/rspec-sqlimit
@@ -165,8 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
189
  - !ruby/object:Gem::Version
166
190
  version: '0'
167
191
  requirements: []
168
- rubyforge_project:
169
- rubygems_version: 2.5.2
192
+ rubygems_version: 3.2.3
170
193
  signing_key:
171
194
  specification_version: 4
172
195
  summary: RSpec matcher to control SQL queries made by block of code
@@ -177,8 +200,9 @@ test_files:
177
200
  - spec/dummy/config/environment.rb
178
201
  - spec/dummy/db/migrate/20170211104800_create_users.rb
179
202
  - spec/dummy/db/schema.rb
180
- - spec/dummy/db/test.sqlite3
181
203
  - spec/dummy/lib/dummy.rb
182
204
  - spec/dummy/lib/dummy/application.rb
205
+ - spec/dummy/lib/dummy/compatibility.rb
206
+ - spec/rspec/sqlimit/reporter_spec.rb
183
207
  - spec/rspec/sqlimit_spec.rb
184
208
  - spec/spec_helper.rb
Binary file