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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34eecdc38097b7169d2d0326a4c17f8fa593062ff0b48a66eae4f7a48c6a20c5
4
- data.tar.gz: 5aa107b9b9c127d890c2270704fedd7b119ac4899cb5e29e15c81462e3fdafe3
3
+ metadata.gz: 475ec67c63cf67c042c9ec60267a35f3612ef41ceae6dced9900a2d9cd719b34
4
+ data.tar.gz: 5d06413010d4e05f9c84d4e10c91d61208fed87b75497a7d067f0c5623349c65
5
5
  SHA512:
6
- metadata.gz: acadb149207c12ad0601ae555d7e960e7e5500f4184439c6ebae677bea4af937d07efb41a28dd6ad8ac3bb6661da0e157dcb89bb106495b66481f57d9368261a
7
- data.tar.gz: 35b8084e5f6792fab8b152d679755d9b204e7bdb0e18e326060476b091a28a7ec97acfc794bfb014504dd191447b27330f32a8b45e840eceae219190657dd4c5
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
@@ -4,18 +4,43 @@ require 'sequel'
4
4
 
5
5
  module Sequel
6
6
  module CallerLocation
7
- %w[select insert update delete].each do |type|
8
- define_method(:"#{type}_sql") do |*a|
9
- sql = super(*a)
10
- if !sql.frozen? && (backtrace = caller_locations(1).find { |c| c.path !~ /gems/ })
11
- sql << format_sql_comment(backtrace)
12
- end
13
- sql
14
- end
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.2.2'
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.2.2
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: 2018-01-14 00:00:00.000000000 Z
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
- rubyforge_project:
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.
@@ -1,10 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3
4
- - 2.4
5
- - 2.5
6
- script:
7
- - bundle exec rubocop --parallel
8
- - bundle exec rspec
9
- notifications:
10
- email: false