logical_query_parser 0.3.4 → 0.5.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: 717b464be4b7033bdddfcf640c16f146ace99ed3f9ec755e46c1bbb222315cc2
4
- data.tar.gz: e11b02cec70f9fa280721731456dfe6d252a4a7bc7b580d9f31afc5afdbce679
3
+ metadata.gz: 22d02f1282d55df340c385cd13c61186f4230f22f8282c7fd67b781dacd2fbd0
4
+ data.tar.gz: b952657d8f60d182c037c308005b5e6fca626b2a607fbc6d8892b93b48e74daa
5
5
  SHA512:
6
- metadata.gz: 62ac096dc6437121209c235b6daa522ff19d50d91ac31551129ac8aa67127f151815ee61488a88b9ed34440546540c44d7f2a152cc500fc652e70cd7dedf55d1
7
- data.tar.gz: 3d9ee48804f605417a2ec86ee8151b197d8a8d5f7b157dd969c6c3f07a34fa95dc9171dcdf090f6b6b0269c8df3f070f19fa6cf81177867a9a2c9231af58b4ad
6
+ metadata.gz: 4eba4f1502637981543337180b179dbd03ee0cb7eabc4215cf256a3f1654bb3bbd2db9b4690e4dc9c1f81f4a3fa2a7bdae3da3b9c75700bcd693f6b9c877ebaa
7
+ data.tar.gz: 256ad90335de5fe846cd6b38620b7dbca8f480c1a3783141adcb53691f28cd6172df75774c51eabca395562b340c493992c2935504b00cc32a7886b8dac5013f
@@ -4,63 +4,23 @@ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  test:
7
- runs-on: ubuntu-20.04
7
+ runs-on: ubuntu-22.04
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- ruby: [2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1, 3.2]
12
- gemfile: ['rails42', 'rails50', 'rails51', 'rails52', 'rails60', 'rails61', 'rails70', 'rails71']
11
+ ruby: ['3.0', 3.1, 3.2, 3.3, 3.4, '4.0']
12
+ gemfile: ['rails70', 'rails71', 'rails72', 'rails80', 'rails81']
13
13
  exclude:
14
- - ruby: 2.3
15
- gemfile: rails60
16
- - ruby: 2.3
17
- gemfile: rails61
18
- - ruby: 2.3
19
- gemfile: rails70
20
- - ruby: 2.3
21
- gemfile: rails71
22
- - ruby: 2.4
23
- gemfile: rails60
24
- - ruby: 2.4
25
- gemfile: rails61
26
- - ruby: 2.4
27
- gemfile: rails70
28
- - ruby: 2.4
29
- gemfile: rails71
30
- - ruby: 2.5
31
- gemfile: rails70
32
- - ruby: 2.5
33
- gemfile: rails71
34
- - ruby: 2.6
35
- gemfile: rails70
36
- - ruby: 2.6
37
- gemfile: rails71
38
- - ruby: 2.7
39
- gemfile: rails42
40
14
  - ruby: 3.0
41
- gemfile: rails42
15
+ gemfile: rails72
42
16
  - ruby: 3.0
43
- gemfile: rails50
17
+ gemfile: rails80
44
18
  - ruby: 3.0
45
- gemfile: rails51
46
- - ruby: 3.0
47
- gemfile: rails52
48
- - ruby: 3.1
49
- gemfile: rails42
19
+ gemfile: rails81
50
20
  - ruby: 3.1
51
- gemfile: rails50
21
+ gemfile: rails80
52
22
  - ruby: 3.1
53
- gemfile: rails51
54
- - ruby: 3.1
55
- gemfile: rails52
56
- - ruby: 3.2
57
- gemfile: rails42
58
- - ruby: 3.2
59
- gemfile: rails50
60
- - ruby: 3.2
61
- gemfile: rails51
62
- - ruby: 3.2
63
- gemfile: rails52
23
+ gemfile: rails81
64
24
 
65
25
  name: ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }}
66
26
 
@@ -68,11 +28,14 @@ jobs:
68
28
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
69
29
 
70
30
  steps:
71
- - uses: actions/checkout@v3
31
+ - uses: actions/checkout@v4
72
32
  - uses: ruby/setup-ruby@v1
73
33
  with:
74
34
  ruby-version: ${{ matrix.ruby }}
75
35
  bundler-cache: true
36
+ - name: Bundle list
37
+ run: |
38
+ bundle list
76
39
  - name: Run test
77
40
  run: |
78
41
  bundle exec rspec
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
File without changes
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.5.0
4
+
5
+ * Drop support for ruby <= 2.7, rails <= 6.1.
6
+
7
+ ## 0.4.0
8
+
9
+ * Add `frozen_string_literal: true`.
10
+ * Fix internal hash key for building sql.
11
+
3
12
  ## 0.3.4
4
13
 
5
14
  * Just rebuild gem file to fix file permission.
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem "activerecord", ">= 7.0.0"
6
+ gem "sqlite3"
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
@@ -4,9 +4,9 @@ A parser to generate a tree structure from a logical search query string using t
4
4
 
5
5
  ## Dependencies
6
6
 
7
- * ruby 2.3+
7
+ * ruby 3.0+
8
8
  * treetop 1.6+
9
- * activerecord 4.2+ (optional)
9
+ * activerecord 7.0+ (optional)
10
10
 
11
11
  ## Installation
12
12
 
data/Rakefile CHANGED
File without changes
@@ -1,5 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem "rails", "~> 7.0.1"
3
+ gem "activerecord", "~> 7.0.1"
4
+ gem "sqlite3", "~> 1.4.0"
5
+
6
+ gem "concurrent-ruby", "<= 1.3.4"
7
+
8
+ if RUBY_VERSION >= "3.4"
9
+ gem "bigdecimal"
10
+ gem "mutex_m"
11
+ end
4
12
 
5
13
  gemspec path: "../"
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem "rails", "~> 7.1.0"
3
+ gem "activerecord", "~> 7.1.0"
4
+ gem "sqlite3", "~> 1.6.6"
4
5
 
5
6
  gemspec path: "../"
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem "rails", "~> 6.1.0"
3
+ gem "activerecord", "~> 7.2.0"
4
+ gem "sqlite3"
4
5
 
5
6
  gemspec path: "../"
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "activerecord", "~> 8.0.0"
4
+ gem "sqlite3"
5
+
6
+ gemspec path: "../"
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "activerecord", "~> 8.1.0"
4
+ gem "sqlite3"
5
+
6
+ gemspec path: "../"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LogicalQueryParser
2
4
  class Assoc
3
5
  attr_accessor :column_mapping, :structure
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'assoc'
2
4
 
3
5
  module LogicalQueryParser
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LogicalQueryParser
2
4
  module ExpNode
3
5
  def to_sql(params = {})
4
- params[:sql] ||= ''
6
+ params[:_sql] ||= ''.dup
5
7
  exp.to_sql(params)
6
8
  end
7
9
  end
@@ -15,10 +17,10 @@ module LogicalQueryParser
15
17
  exp.to_sql(params)
16
18
  rparen.to_sql(params)
17
19
  if rexp.elements.size > 0
18
- params[:sql] += ' AND '
20
+ params[:_sql] += ' AND '
19
21
  rexp.elements[0].to_sql(params)
20
22
  end
21
- params[:sql]
23
+ params[:_sql]
22
24
  end
23
25
  end
24
26
 
@@ -33,38 +35,38 @@ module LogicalQueryParser
33
35
  module LiteralExpNode
34
36
  def to_sql(params)
35
37
  literal.to_sql(params)
36
- params[:sql] << ' AND '
38
+ params[:_sql] << ' AND '
37
39
  exp.to_sql(params)
38
40
  end
39
41
  end
40
42
 
41
43
  module LParenNode
42
44
  def to_sql(params)
43
- params[:sql] << '('
45
+ params[:_sql] << '('
44
46
  end
45
47
  end
46
48
 
47
49
  module RParenNode
48
50
  def to_sql(params)
49
- params[:sql] << ')'
51
+ params[:_sql] << ')'
50
52
  end
51
53
  end
52
54
 
53
55
  module AndNode
54
56
  def to_sql(params)
55
- params[:sql] << ' AND '
57
+ params[:_sql] << ' AND '
56
58
  end
57
59
  end
58
60
 
59
61
  module OrNode
60
62
  def to_sql(params)
61
- params[:sql] << ' OR '
63
+ params[:_sql] << ' OR '
62
64
  end
63
65
  end
64
66
 
65
67
  module NotNode
66
68
  def to_sql(params)
67
- params[:sql] << 'NOT '
69
+ params[:_sql] << 'NOT '
68
70
  end
69
71
  end
70
72
 
@@ -75,7 +77,7 @@ module LogicalQueryParser
75
77
 
76
78
  sql = build_arel(params, operator, text).reduce(logic).to_sql
77
79
  sql = "(#{sql})" if sql[0] != '(' && sql[-1] != ')'
78
- params[:sql] << sql
80
+ params[:_sql] << sql
79
81
  end
80
82
 
81
83
  private
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LogicalQueryParser
2
4
  module ExpNode
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LogicalQueryParser
2
- VERSION = "0.3.4"
4
+ VERSION = "0.5.0"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'treetop'
2
4
  Treetop.load File.expand_path("../logical_query_parser.treetop", __FILE__)
3
5
 
File without changes
@@ -19,12 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = ">= 3.0"
23
+
22
24
  spec.add_dependency "treetop", "~> 1.6.8"
23
25
 
24
26
  spec.add_development_dependency "bundler"
27
+ spec.add_development_dependency "irb"
25
28
  spec.add_development_dependency "rake"
26
29
  spec.add_development_dependency "rspec"
27
30
  spec.add_development_dependency "simplecov"
28
- spec.add_development_dependency "activerecord"
29
- spec.add_development_dependency "sqlite3"
30
31
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logical_query_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshikazu Kaneta
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-11-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: treetop
@@ -39,21 +38,7 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
41
+ name: irb
57
42
  requirement: !ruby/object:Gem::Requirement
58
43
  requirements:
59
44
  - - ">="
@@ -67,7 +52,7 @@ dependencies:
67
52
  - !ruby/object:Gem::Version
68
53
  version: '0'
69
54
  - !ruby/object:Gem::Dependency
70
- name: simplecov
55
+ name: rake
71
56
  requirement: !ruby/object:Gem::Requirement
72
57
  requirements:
73
58
  - - ">="
@@ -81,7 +66,7 @@ dependencies:
81
66
  - !ruby/object:Gem::Version
82
67
  version: '0'
83
68
  - !ruby/object:Gem::Dependency
84
- name: activerecord
69
+ name: rspec
85
70
  requirement: !ruby/object:Gem::Requirement
86
71
  requirements:
87
72
  - - ">="
@@ -95,7 +80,7 @@ dependencies:
95
80
  - !ruby/object:Gem::Version
96
81
  version: '0'
97
82
  - !ruby/object:Gem::Dependency
98
- name: sqlite3
83
+ name: simplecov
99
84
  requirement: !ruby/object:Gem::Requirement
100
85
  requirements:
101
86
  - - ">="
@@ -127,14 +112,11 @@ files:
127
112
  - Rakefile
128
113
  - bin/console
129
114
  - bin/setup
130
- - gemfiles/rails42.gemfile
131
- - gemfiles/rails50.gemfile
132
- - gemfiles/rails51.gemfile
133
- - gemfiles/rails52.gemfile
134
- - gemfiles/rails60.gemfile
135
- - gemfiles/rails61.gemfile
136
115
  - gemfiles/rails70.gemfile
137
116
  - gemfiles/rails71.gemfile
117
+ - gemfiles/rails72.gemfile
118
+ - gemfiles/rails80.gemfile
119
+ - gemfiles/rails81.gemfile
138
120
  - lib/logical_query_parser.rb
139
121
  - lib/logical_query_parser.treetop
140
122
  - lib/logical_query_parser/assoc.rb
@@ -147,7 +129,6 @@ homepage: https://github.com/kanety/logical_query_parser
147
129
  licenses:
148
130
  - MIT
149
131
  metadata: {}
150
- post_install_message:
151
132
  rdoc_options: []
152
133
  require_paths:
153
134
  - lib
@@ -155,15 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
136
  requirements:
156
137
  - - ">="
157
138
  - !ruby/object:Gem::Version
158
- version: '0'
139
+ version: '3.0'
159
140
  required_rubygems_version: !ruby/object:Gem::Requirement
160
141
  requirements:
161
142
  - - ">="
162
143
  - !ruby/object:Gem::Version
163
144
  version: '0'
164
145
  requirements: []
165
- rubygems_version: 3.3.3
166
- signing_key:
146
+ rubygems_version: 3.6.9
167
147
  specification_version: 4
168
148
  summary: A parser for a logical query string.
169
149
  test_files: []
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "activerecord", "~> 4.2.9"
4
- gem "sqlite3", "~> 1.3.6"
5
-
6
- gemspec path: "../"
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "activerecord", "~> 5.0.5"
4
- gem "sqlite3", "~> 1.3.6"
5
-
6
- gemspec path: "../"
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "activerecord", "~> 5.1.3"
4
- gem "sqlite3", "~> 1.3.6"
5
-
6
- gemspec path: "../"
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "activerecord", "~> 5.2.0"
4
- gem "sqlite3", "~> 1.3.6"
5
-
6
- gemspec path: "../"
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "activerecord", "~> 6.0.0"
4
- gem "psych", "~> 3.3.0"
5
-
6
- gemspec path: "../"