sequel_caller_location 0.2.2 → 0.3.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/.github/workflows/build.yml +17 -0
- data/.github/workflows/publish.yml +24 -0
- data/Gemfile +2 -0
- data/lib/sequel/extensions/caller_location.rb +33 -8
- data/sequel_caller_location.gemspec +3 -1
- data/spec/sequel/caller_location_spec.rb +10 -0
- metadata +21 -21
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 475ec67c63cf67c042c9ec60267a35f3612ef41ceae6dced9900a2d9cd719b34
|
4
|
+
data.tar.gz: 5d06413010d4e05f9c84d4e10c91d61208fed87b75497a7d067f0c5623349c65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 001e1bfc735875c4097a390068e3212e9d73ac1eb8ec2c5f225b4da6e0179548b73423aae481165f703a7b274055b726e58cc91ecf144f7e7e18f6dba64a3690
|
7
|
+
data.tar.gz: 006ced3d9eb278d13e4f1760ce0a990a10b6e9ed88d557499d330bf1643e9e4cbb9d1fa0fb4ba32ec31518cd60e132914e2329a347853d762f62cf7b76454263
|
@@ -0,0 +1,17 @@
|
|
1
|
+
name: Build
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
runs-on: ubuntu-latest
|
6
|
+
steps:
|
7
|
+
- uses: actions/checkout@v2
|
8
|
+
- name: Set up Ruby
|
9
|
+
uses: ruby/setup-ruby@v1
|
10
|
+
with:
|
11
|
+
ruby-version: 2.6
|
12
|
+
- name: Install dependencies
|
13
|
+
run: bundle install
|
14
|
+
- name: Run linter
|
15
|
+
run: bundle exec rubocop --parallel
|
16
|
+
- name: Run tests
|
17
|
+
run: bundle exec rspec
|
@@ -0,0 +1,24 @@
|
|
1
|
+
name: Publish
|
2
|
+
on:
|
3
|
+
release:
|
4
|
+
types: [published]
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: Publish
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
steps:
|
10
|
+
- uses: actions/checkout@v2
|
11
|
+
- name: Set up Ruby 2.6
|
12
|
+
uses: actions/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
version: 2.6.x
|
15
|
+
- name: Publish to RubyGems
|
16
|
+
run: |
|
17
|
+
mkdir -p $HOME/.gem
|
18
|
+
touch $HOME/.gem/credentials
|
19
|
+
chmod 0600 $HOME/.gem/credentials
|
20
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
21
|
+
gem build *.gemspec
|
22
|
+
gem push *.gem
|
23
|
+
env:
|
24
|
+
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
data/Gemfile
CHANGED
@@ -4,18 +4,43 @@ require 'sequel'
|
|
4
4
|
|
5
5
|
module Sequel
|
6
6
|
module CallerLocation
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
def insert_sql(*values)
|
8
|
+
sql = super(*values)
|
9
|
+
backtrace = caller_locations(1).find { |c| c.path !~ /gems/ }
|
10
|
+
append_location(sql, backtrace)
|
11
|
+
sql
|
12
|
+
end
|
13
|
+
|
14
|
+
def update_sql(*values)
|
15
|
+
sql = super(*values)
|
16
|
+
backtrace = caller_locations(1).find { |c| c.path !~ /gems/ }
|
17
|
+
append_location(sql, backtrace)
|
18
|
+
sql
|
19
|
+
end
|
20
|
+
|
21
|
+
def select_sql(*values)
|
22
|
+
sql = super(*values)
|
23
|
+
backtrace = caller_locations(1).find { |c| c.path !~ /gems/ }
|
24
|
+
|
25
|
+
@cache.delete(:_select_sql)
|
26
|
+
append_location(sql, backtrace)
|
27
|
+
sql
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete_sql(*values)
|
31
|
+
sql = super(*values)
|
32
|
+
backtrace = caller_locations(1).find { |c| c.path !~ /gems/ }
|
33
|
+
@cache.delete(:_delete_sql)
|
34
|
+
append_location(sql, backtrace)
|
35
|
+
sql
|
15
36
|
end
|
16
37
|
|
17
38
|
private
|
18
39
|
|
40
|
+
def append_location(sql, backtrace)
|
41
|
+
sql << format_sql_comment(backtrace) if !sql.frozen? && backtrace
|
42
|
+
end
|
43
|
+
|
19
44
|
def format_sql_comment(comment)
|
20
45
|
" -- #{comment.to_s.gsub(/\s+/, ' ')}\n"
|
21
46
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gem::Specification.new do |gem|
|
2
4
|
gem.authors = ['Timothée Peignier']
|
3
5
|
gem.email = ['timothee.peignier@tryphon.org']
|
@@ -11,7 +13,7 @@ Gem::Specification.new do |gem|
|
|
11
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
12
14
|
gem.name = 'sequel_caller_location'
|
13
15
|
gem.require_paths = ['lib']
|
14
|
-
gem.version = '0.
|
16
|
+
gem.version = '0.3.0'
|
15
17
|
|
16
18
|
gem.add_runtime_dependency 'sequel', '>= 4.39.0'
|
17
19
|
|
@@ -9,6 +9,11 @@ describe Sequel::CallerLocation do
|
|
9
9
|
expect(ds.select_sql).to eq("SELECT * FROM t -- #{caller_locations(0, 1).first}\n")
|
10
10
|
end
|
11
11
|
|
12
|
+
it 'add caller location to select statement only once' do
|
13
|
+
ds.select_sql
|
14
|
+
expect(ds.select_sql).to eq("SELECT * FROM t -- #{caller_locations(0, 1).first}\n")
|
15
|
+
end
|
16
|
+
|
12
17
|
it 'add caller location to insert statement' do
|
13
18
|
expect(ds.insert_sql(a: 1)).to eq("INSERT INTO t (a) VALUES (1) -- #{caller_locations(0, 1).first}\n")
|
14
19
|
end
|
@@ -17,6 +22,11 @@ describe Sequel::CallerLocation do
|
|
17
22
|
expect(ds.delete_sql).to eq("DELETE FROM t -- #{caller_locations(0, 1).first}\n")
|
18
23
|
end
|
19
24
|
|
25
|
+
it 'add caller location to delete statement only once' do
|
26
|
+
ds.delete_sql
|
27
|
+
expect(ds.delete_sql).to eq("DELETE FROM t -- #{caller_locations(0, 1).first}\n")
|
28
|
+
end
|
29
|
+
|
20
30
|
it 'add caller location to update statement' do
|
21
31
|
expect(ds.update_sql(a: 1)).to eq("UPDATE t SET a = 1 -- #{caller_locations(0, 1).first}\n")
|
22
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel_caller_location
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timothée Peignier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -28,60 +28,60 @@ dependencies:
|
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.5'
|
34
31
|
- - ">="
|
35
32
|
- !ruby/object:Gem::Version
|
36
33
|
version: 3.5.0
|
34
|
+
- - "~>"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '3.5'
|
37
37
|
type: :development
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "~>"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '3.5'
|
44
41
|
- - ">="
|
45
42
|
- !ruby/object:Gem::Version
|
46
43
|
version: 3.5.0
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.5'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rubocop
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0.52'
|
54
51
|
- - ">="
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: 0.52.0
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.52'
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '0.52'
|
64
61
|
- - ">="
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: 0.52.0
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.52'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: rubocop-rspec
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - "
|
71
|
+
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: 1.22.0
|
74
|
-
- - "
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: 1.22.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - "
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 1.22.0
|
84
|
-
- - "
|
84
|
+
- - "~>"
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: 1.22.0
|
87
87
|
- !ruby/object:Gem::Dependency
|
@@ -105,9 +105,10 @@ executables: []
|
|
105
105
|
extensions: []
|
106
106
|
extra_rdoc_files: []
|
107
107
|
files:
|
108
|
+
- ".github/workflows/build.yml"
|
109
|
+
- ".github/workflows/publish.yml"
|
108
110
|
- ".gitignore"
|
109
111
|
- ".rubocop.yml"
|
110
|
-
- ".travis.yml"
|
111
112
|
- Gemfile
|
112
113
|
- LICENSE
|
113
114
|
- README.md
|
@@ -134,8 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
135
|
- !ruby/object:Gem::Version
|
135
136
|
version: '0'
|
136
137
|
requirements: []
|
137
|
-
|
138
|
-
rubygems_version: 2.7.4
|
138
|
+
rubygems_version: 3.0.3
|
139
139
|
signing_key:
|
140
140
|
specification_version: 4
|
141
141
|
summary: Add caller location as SQL comments.
|