querly 1.0.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a365f3cf29cb25703707662a6102e79eb0b838386d1a792b8522ba4dbd45be6
4
- data.tar.gz: 24773a3bf4817d76f29e5c96ab02c39650c29a5dac5e712ae58d821eed1b2906
3
+ metadata.gz: c59512018b5efff3d07b7be91d84f27bdbcb03ab0c3c85d753776defae7f1465
4
+ data.tar.gz: 2d3a28676a671d80378c67e26bd2afd6bf047243a775da6db990dad97e0b0495
5
5
  SHA512:
6
- metadata.gz: 2a40df07387dce70a282203e8e30daf5794f5da9f90ec20dc61516a750b3b72aaf77b605ee85707f9f257f5d955f2cc4815742cde27052f762746601b66d55e5
7
- data.tar.gz: 53d33483e9d501d8954ad0640a4990bf919eb6f93452a186cb4e593d22dbbbb101c79a60e5905c281703d4887664e87bec0b3d5d3fc602bfd9607d2bd61d916c
6
+ metadata.gz: b72388f4e4cd1d73c6b5942fcbe5897ffa7f1aac5fd4cfa40c644a5a2ac21f36809531847d10a455c97d6f5b9f4d1a580715f390b98f92352bcc9819949c4bca
7
+ data.tar.gz: 12116f61a8ae822d6a95560d4acdde918579e312702f402b51bb5a9244cca1f5c4b69b0d47e02a88a6b35fa4f37de90ed0727919eede1dce2362c95e3eb4b2da
@@ -0,0 +1,28 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request: {}
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: "ubuntu-latest"
12
+ strategy:
13
+ matrix:
14
+ container_tag:
15
+ - 2.6-bionic
16
+ - 2.7-bionic
17
+ - master-nightly-bionic
18
+ container:
19
+ image: rubylang/ruby:${{ matrix.container_tag }}
20
+ steps:
21
+ - uses: actions/checkout@v1
22
+ - name: Run test
23
+ run: |
24
+ ruby -v
25
+ gem install bundler
26
+ bundle install --jobs 4 --retry 3
27
+ bin/setup
28
+ bundle exec rake build test
@@ -1,9 +1,10 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.5
5
- - 2.5.3
6
- - 2.6.0
4
+ - 2.4.10
5
+ - 2.5.8
6
+ - 2.6.6
7
+ - 2.7.1
7
8
  before_install: gem install bundler
8
9
  script:
9
10
  - bundle exec rake test
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.1.0 (2020-05-17)
6
+
7
+ * Fix invalid bytes sequence in UTF-8 error by @mallowlabs [#75](https://github.com/soutaro/querly/pull/75)
8
+ * Detect safe navigation operator as a method call by @pocke [#71](https://github.com/soutaro/querly/pull/71)
9
+
5
10
  ## 1.0.0 (2019-7-19)
6
11
 
7
12
  * Add `--config` option for `find` and `console` [#67](https://github.com/soutaro/querly/pull/67)
data/bin/setup CHANGED
@@ -4,5 +4,4 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
-
8
- # Do any other automated setup that you need to do here
7
+ bundle exec rake racc
@@ -118,7 +118,7 @@ module Querly
118
118
 
119
119
  when :str
120
120
  return false unless type == :string
121
- test_value(node.children.first)
121
+ test_value(node.children.first.scrub)
122
122
 
123
123
  when :sym
124
124
  return false unless type == :symbol
@@ -147,7 +147,8 @@ module Querly
147
147
 
148
148
  def =~(pair)
149
149
  # Skip send node with block
150
- if pair.node.type == :send && pair.parent
150
+ type = pair.node.type
151
+ if (type == :send || type == :csend) && pair.parent
151
152
  if pair.parent.node.type == :block
152
153
  if pair.parent.node.children.first.equal? pair.node
153
154
  return false
@@ -176,7 +177,7 @@ module Querly
176
177
  node = node.children.first if node&.type == :block
177
178
 
178
179
  case node&.type
179
- when :send
180
+ when :send, :csend
180
181
  return false unless test_name(node)
181
182
  return false unless test_receiver(node.children[0])
182
183
  return false unless test_args(node.children.drop(2), args)
@@ -290,7 +291,8 @@ module Querly
290
291
  if receiver.test_node(node)
291
292
  true
292
293
  else
293
- node&.type == :send && test_node(node.children[0])
294
+ type = node&.type
295
+ (type == :send || type == :csend) && test_node(node.children[0])
294
296
  end
295
297
  end
296
298
  end
@@ -315,7 +317,7 @@ module Querly
315
317
  # We don't want lvar without method call
316
318
  # Skips when the node is not receiver of :send
317
319
  parent_node = pair.parent&.node
318
- if parent_node && parent_node.type == :send && parent_node.children.first.equal?(node)
320
+ if parent_node && (parent_node.type == :send || parent_node.type == :csend) && parent_node.children.first.equal?(node)
319
321
  test_node(node)
320
322
  end
321
323
  else
@@ -325,7 +327,7 @@ module Querly
325
327
 
326
328
  def test_node(node)
327
329
  case node&.type
328
- when :send
330
+ when :send, :csend
329
331
  node.children[1] == name
330
332
  when :lvar
331
333
  node.children.first == name
@@ -1,3 +1,3 @@
1
1
  module Querly
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_development_dependency "bundler", ">= 1.12"
26
- spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rake", "~> 13.0"
27
27
  spec.add_development_dependency "minitest", "~> 5.0"
28
28
  spec.add_development_dependency "racc", ">= 1.4.14"
29
29
  spec.add_development_dependency "unification_assertion", "0.0.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: querly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-19 00:00:00.000000000 Z
11
+ date: 2020-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -209,6 +209,7 @@ executables:
209
209
  extensions: []
210
210
  extra_rdoc_files: []
211
211
  files:
212
+ - ".github/workflows/ruby.yml"
212
213
  - ".gitignore"
213
214
  - ".travis.yml"
214
215
  - CHANGELOG.md
@@ -275,8 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
276
  - !ruby/object:Gem::Version
276
277
  version: '0'
277
278
  requirements: []
278
- rubyforge_project:
279
- rubygems_version: 2.7.6
279
+ rubygems_version: 3.1.2
280
280
  signing_key:
281
281
  specification_version: 4
282
282
  summary: Pattern Based Checking Tool for Ruby