rails_sql_counter 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +14 -1
- data/Gemfile.lock +14 -0
- data/README.md +28 -2
- data/lib/rails_sql_counter/version.rb +1 -1
- data/lib/rails_sql_counter.rb +9 -3
- data/rails_sql_counter.gemspec +2 -0
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3da1f83702e6199bfe68eb3dd67ce419f97b529e157d6e6b1cf4f5ef92f158d
|
4
|
+
data.tar.gz: 9ab44fbbed52564fcdb72552843c195dacccfe203299b544fd9d1885fa5cce36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 830489aefd50d4ee2efaa57d2b7cc63a26f9808e084ee59e56b8c31e3325c81dc6aac264e0653e7b5faf73f84dbf7037729a1280d453f277bfd026fee3c8a53e
|
7
|
+
data.tar.gz: 66bf1ccdb4f39433ca921b5c012661b9e963c077c07f4f0400383574045fa4a3e6a416de2b153ebd2156349832410c090ced7e2b60a3536bb9ca77f5241cfcb0
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,20 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
-
## [
|
7
|
+
## [0.2.0] - 2021-08-25
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- `.profile` method has been added
|
11
|
+
- ActiveSupport has been added as explicit dependency
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- `.end` doesn't reset the counter
|
15
|
+
- `.process` has been redeclared as private member
|
16
|
+
|
17
|
+
## [0.1.1] - 2021-08-18
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
- Clean subscriber after end
|
8
21
|
|
9
22
|
## [0.1.0] - 2021-08-17
|
10
23
|
|
data/Gemfile.lock
CHANGED
@@ -2,11 +2,22 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
rails_sql_counter (0.1.1)
|
5
|
+
activesupport
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
10
|
+
activesupport (6.1.4.1)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
+
i18n (>= 1.6, < 2)
|
13
|
+
minitest (>= 5.1)
|
14
|
+
tzinfo (~> 2.0)
|
15
|
+
zeitwerk (~> 2.3)
|
16
|
+
concurrent-ruby (1.1.9)
|
9
17
|
diff-lcs (1.4.4)
|
18
|
+
i18n (1.8.10)
|
19
|
+
concurrent-ruby (~> 1.0)
|
20
|
+
minitest (5.14.4)
|
10
21
|
rake (12.3.3)
|
11
22
|
rspec (3.10.0)
|
12
23
|
rspec-core (~> 3.10.0)
|
@@ -21,6 +32,9 @@ GEM
|
|
21
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
22
33
|
rspec-support (~> 3.10.0)
|
23
34
|
rspec-support (3.10.2)
|
35
|
+
tzinfo (2.0.4)
|
36
|
+
concurrent-ruby (~> 1.0)
|
37
|
+
zeitwerk (2.4.2)
|
24
38
|
|
25
39
|
PLATFORMS
|
26
40
|
ruby
|
data/README.md
CHANGED
@@ -29,12 +29,12 @@ Or install it yourself as:
|
|
29
29
|
|
30
30
|
* **start**: starts to count sql queries
|
31
31
|
* **end**: ends to count sql queries
|
32
|
-
* **counter**: returns number of sql
|
32
|
+
* **counter**: returns number of sql queries from start
|
33
|
+
* **profile**: syntax sugar to facilitate start/end
|
33
34
|
|
34
35
|
## Usage
|
35
36
|
|
36
37
|
Test example:
|
37
|
-
|
38
38
|
```ruby
|
39
39
|
context '...' do
|
40
40
|
before { RailsSqlCounter.start }
|
@@ -46,6 +46,32 @@ context '...' do
|
|
46
46
|
expect(RailsSqlCounter.counter).to eq(1)
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
# You could also use .profile
|
51
|
+
context '...' do
|
52
|
+
it 'returns results with only one query' do
|
53
|
+
RailsSqlCounter.profile { get path }
|
54
|
+
|
55
|
+
expect(RailsSqlCounter.counter).to eq(1)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
```
|
59
|
+
You may want to wrap the tests as:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
config.around(:each, :max_queries) do |example|
|
63
|
+
RailsSqlCounter.profile { example.run }
|
64
|
+
|
65
|
+
if RailsSqlCounter.counter > example.metadata[:max_queries]
|
66
|
+
raise 'Maximum number of queries overpassed.'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
(...)
|
71
|
+
|
72
|
+
it 'returns results with only one query', max_queries: 1 do
|
73
|
+
get path
|
74
|
+
end
|
49
75
|
```
|
50
76
|
|
51
77
|
## Development
|
data/lib/rails_sql_counter.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rails_sql_counter/version'
|
4
|
+
require 'active_support'
|
4
5
|
|
5
6
|
# Count sql queries
|
6
7
|
module RailsSqlCounter
|
@@ -30,9 +31,14 @@ module RailsSqlCounter
|
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
33
|
-
def self.
|
34
|
-
|
34
|
+
def self.profile(&block)
|
35
|
+
start
|
36
|
+
block.call
|
37
|
+
ensure
|
38
|
+
self.end
|
39
|
+
end
|
35
40
|
|
41
|
+
def self.end
|
36
42
|
ActiveSupport::Notifications.unsubscribe(@@subscriber)
|
37
43
|
@@subscriber = nil
|
38
44
|
end
|
@@ -50,5 +56,5 @@ module RailsSqlCounter
|
|
50
56
|
end
|
51
57
|
end
|
52
58
|
|
53
|
-
private_class_method :inc, :show_backtrace
|
59
|
+
private_class_method :inc, :show_backtrace, :process
|
54
60
|
end
|
data/rails_sql_counter.gemspec
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_sql_counter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rjurado
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
12
|
-
dependencies:
|
11
|
+
date: 2021-08-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description: Allows to control how many queries are launched between two points
|
14
28
|
email:
|
15
29
|
- rjurado@nosolosoftware.es
|
@@ -49,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
63
|
- !ruby/object:Gem::Version
|
50
64
|
version: '0'
|
51
65
|
requirements: []
|
52
|
-
rubygems_version: 3.1.
|
66
|
+
rubygems_version: 3.1.2
|
53
67
|
signing_key:
|
54
68
|
specification_version: 4
|
55
69
|
summary: Keep under control how many sql queries are launched in your App
|