expressir 1.2.7 → 1.2.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d1e816b740fca308506b1d3a93fe8e5cb4e2c9e5360694b1666d13293d0faf1
4
- data.tar.gz: ef2a5565ef52d95c9ff399267db1dae5e6a4b80508507b0cd45f12b2c0e38412
3
+ metadata.gz: eaa506f3baadfef96b9ea1760f21a32c111a2e14d41be0e61a7794e68075e6e5
4
+ data.tar.gz: 621683d72768375aba6c302cd245191fed916930aa1c4490ec41ee7263b053e2
5
5
  SHA512:
6
- metadata.gz: 1a72de2aa2403422000fe829238138f12eff2b21f4a7942b9b4e4cadadf725a06462cac9896599803ea0d7e7f31af09e6a6f04a98a87c3c220ba3bc11a2f70c1
7
- data.tar.gz: 206f8561007ea135f7a0ab41689644f10e6318941d63f8a08a6d31cc4771d6f26f8f903ecfdec5be101d0dda8dd17019e1800c91e5f82cf5d865173154eaf07a
6
+ metadata.gz: 7ff98f9a3e3ff7f73ea060665e64c63e77bee3030861f36f4a2287ece88498d227b9fd618396813dfe971f326e0c4e0055bde1678338e0df38ec37264d1590d3
7
+ data.tar.gz: b17547db600a3e6ec9acaa99870ab12d0f5b184d9669eeb0f7ffd3cea9de840fa6daa112160fe06e511394851c9c99259cf451d9733bbd6fa28e9b3a4ea281a5
@@ -5,6 +5,17 @@ on:
5
5
  branches: [ master, main ]
6
6
  pull_request:
7
7
 
8
+ concurrency:
9
+ group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
10
+ cancel-in-progress: true
11
+
12
+ env:
13
+ BUNDLER_VER: 2.3.24
14
+ # Forcing bundler version to ensure that it is consistent everywhere and
15
+ # does not cause bundler gem reinstalls
16
+ # bundler/rubygems 2.3.22 is a minimal requirement to support gnu/musl differentiation
17
+ # https://github.com/rubygems/rubygems/pull/4488
18
+
8
19
  jobs:
9
20
  rubocop:
10
21
  runs-on: ubuntu-latest
@@ -15,9 +26,10 @@ jobs:
15
26
  submodules: recursive
16
27
 
17
28
  - name: Install Ruby
18
- uses: ruby/setup-ruby@v1
29
+ uses: ruby/setup-ruby@master
19
30
  with:
20
31
  ruby-version: 3.0
32
+ bundler: ${{ env.BUNDLER_VER }}
21
33
  bundler-cache: true
22
34
 
23
35
  - name: Bundle
@@ -46,13 +58,14 @@ jobs:
46
58
  run: brew install autoconf automake libtool
47
59
 
48
60
  - name: Install Ruby
49
- uses: ruby/setup-ruby@v1
61
+ uses: ruby/setup-ruby@master
50
62
  with:
51
63
  ruby-version: ${{ matrix.ruby }}
64
+ bundler: ${{ env.BUNDLER_VER }}
52
65
  bundler-cache: true
53
66
 
54
67
  - name: Process cache
55
- uses: actions/cache@v2
68
+ uses: actions/cache@v3
56
69
  id: cache
57
70
  with:
58
71
  path: lib/expressir/express/express_parser.*
@@ -70,8 +83,6 @@ jobs:
70
83
  # test release workflow
71
84
  pack-ruby:
72
85
  runs-on: ubuntu-latest
73
- strategy:
74
- fail-fast: false
75
86
  steps:
76
87
  - name: Checkout
77
88
  uses: actions/checkout@v3
@@ -79,11 +90,12 @@ jobs:
79
90
  submodules: recursive
80
91
 
81
92
  - name: Setup Ruby
82
- uses: ruby/setup-ruby@v1
93
+ uses: ruby/setup-ruby@master
83
94
  with:
84
95
  ruby-version: '3.0'
85
96
  # bundler-cache: true important to not use cache because it leads to "cannot find -lrice"
86
97
  # more info https://github.com/lutaml/expressir/runs/2097658383?check_suite_focus=true#step:7:2126
98
+ bundler: ${{ env.BUNDLER_VER }}
87
99
 
88
100
  - name: Bundle
89
101
  run: bundle install --jobs 4 --retry 3
@@ -92,7 +104,7 @@ jobs:
92
104
  run: gem build expressir.gemspec
93
105
 
94
106
  - name: Package gem without native extension
95
- uses: actions/upload-artifact@v2
107
+ uses: actions/upload-artifact@v3
96
108
  with:
97
109
  name: pkg-ruby
98
110
  path: expressir-*.gem
@@ -110,11 +122,12 @@ jobs:
110
122
  submodules: recursive
111
123
 
112
124
  - name: Setup Ruby
113
- uses: ruby/setup-ruby@v1
125
+ uses: ruby/setup-ruby@master
114
126
  with:
115
127
  ruby-version: '3.0'
116
128
  # bundler-cache: true important to not use cache because it leads to "cannot find -lrice"
117
129
  # more info https://github.com/lutaml/expressir/runs/2097658383?check_suite_focus=true#step:7:2126
130
+ bundler: ${{ env.BUNDLER_VER }}
118
131
 
119
132
  - name: Bundle
120
133
  run: bundle install --jobs 4 --retry 3
@@ -131,7 +144,7 @@ jobs:
131
144
  run: bundle exec rake gem:${{ matrix.host }}
132
145
 
133
146
  - name: Package gem with native extension
134
- uses: actions/upload-artifact@v2
147
+ uses: actions/upload-artifact@v3
135
148
  with:
136
149
  name: pkg-${{ matrix.host }}
137
150
  path: pkg/*.gem
@@ -147,10 +160,11 @@ jobs:
147
160
  os: [ ubuntu-latest, windows-latest, macos-latest ]
148
161
  steps:
149
162
  - name: Install Ruby
150
- uses: ruby/setup-ruby@v1
163
+ uses: ruby/setup-ruby@master
151
164
  with:
152
165
  ruby-version: ${{ matrix.ruby }}
153
166
  bundler-cache: true
167
+ bundler: ${{ env.BUNDLER_VER }}
154
168
 
155
169
  - name: Checkout
156
170
  uses: actions/checkout@v3
@@ -159,9 +173,9 @@ jobs:
159
173
 
160
174
  - name: Bundle
161
175
  run: bundle install --jobs 4 --retry 3
162
-
176
+
163
177
  - name: Download packaged gem
164
- uses: actions/download-artifact@v2
178
+ uses: actions/download-artifact@v3
165
179
  with:
166
180
  name: pkg-ruby
167
181
  path: pkg
@@ -185,19 +199,20 @@ jobs:
185
199
  ruby: [ '3.1', '3.0', '2.7' ]
186
200
  steps:
187
201
  - name: Install Ruby
188
- uses: ruby/setup-ruby@v1
202
+ uses: ruby/setup-ruby@master
189
203
  with:
190
204
  ruby-version: ${{ matrix.ruby }}
191
205
  bundler-cache: true
206
+ bundler: ${{ env.BUNDLER_VER }}
192
207
 
193
208
  - name: Checkout
194
209
  uses: actions/checkout@v3
195
210
 
196
211
  - name: Bundle
197
212
  run: bundle install --jobs 4 --retry 3
198
-
213
+
199
214
  - name: Download packaged gem
200
- uses: actions/download-artifact@v2
215
+ uses: actions/download-artifact@v3
201
216
  with:
202
217
  name: pkg-darwin
203
218
  path: pkg
@@ -222,19 +237,20 @@ jobs:
222
237
  ruby: [ '3.1', '3.0', '2.7' ]
223
238
  steps:
224
239
  - name: Install Ruby
225
- uses: ruby/setup-ruby@v1
240
+ uses: ruby/setup-ruby@master
226
241
  with:
227
242
  ruby-version: ${{ matrix.ruby }}
228
243
  bundler-cache: true
244
+ bundler: ${{ env.BUNDLER_VER }}
229
245
 
230
246
  - name: Checkout
231
247
  uses: actions/checkout@v3
232
248
 
233
249
  - name: Bundle
234
250
  run: bundle install --jobs 4 --retry 3
235
-
251
+
236
252
  - name: Download packaged gem
237
- uses: actions/download-artifact@v2
253
+ uses: actions/download-artifact@v3
238
254
  with:
239
255
  name: pkg-linux
240
256
  path: pkg
@@ -255,25 +271,26 @@ jobs:
255
271
  runs-on: windows-latest
256
272
  strategy:
257
273
  fail-fast: false
258
- # Ruby 3.1 fails
259
- # https://github.com/lutaml/expressir/issues/103
274
+ # Ruby 3.1 fails
275
+ # https://github.com/lutaml/expressir/issues/103
260
276
  matrix:
261
277
  ruby: [ '3.1', '3.0', '2.7' ]
262
278
  steps:
263
279
  - name: Install Ruby
264
- uses: ruby/setup-ruby@v1
280
+ uses: ruby/setup-ruby@master
265
281
  with:
266
282
  ruby-version: ${{ matrix.ruby }}
267
283
  bundler-cache: true
284
+ bundler: ${{ env.BUNDLER_VER }}
268
285
 
269
286
  - name: Checkout
270
287
  uses: actions/checkout@v3
271
288
 
272
289
  - name: Bundle
273
290
  run: bundle install --jobs 4 --retry 3
274
-
291
+
275
292
  - name: Download packaged gem
276
- uses: actions/download-artifact@v2
293
+ uses: actions/download-artifact@v3
277
294
  with:
278
295
  name: pkg-windows
279
296
  path: pkg
@@ -11,17 +11,22 @@ on:
11
11
  push:
12
12
  tags: [ v* ]
13
13
 
14
+ concurrency:
15
+ group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
16
+ cancel-in-progress: true
17
+
14
18
  jobs:
15
19
  bump:
16
- runs-on: ubuntu-18.04
20
+ runs-on: ubuntu-latest
17
21
  steps:
18
- - uses: actions/checkout@v2
22
+ - uses: actions/checkout@v4
19
23
  with:
20
24
  submodules: recursive
21
25
 
22
- - uses: ruby/setup-ruby@v1
26
+ - uses: ruby/setup-ruby@master
23
27
  with:
24
- ruby-version: '3.0'
28
+ ruby-version: '3.1'
29
+ bundler: ${{ env.BUNDLER_VER }}
25
30
 
26
31
  - if: ${{ github.event_name == 'workflow_dispatch' }} # unfortunatelly cannot keep this condition on job level
27
32
  run: |
@@ -31,21 +36,21 @@ jobs:
31
36
  gem bump --version ${{ github.event.inputs.next_version }} --tag --push
32
37
 
33
38
  pack:
34
- runs-on: ubuntu-18.04
39
+ runs-on: ubuntu-latest
35
40
  needs: bump
36
41
  strategy:
37
42
  fail-fast: false
38
43
  matrix:
39
44
  host: [ linux, windows, darwin ]
40
45
  steps:
41
- - uses: actions/checkout@v2
46
+ - uses: actions/checkout@v4
42
47
  with:
43
48
  submodules: recursive
44
49
  ref: main # https://github.com/actions/checkout/issues/439#issuecomment-830862188
45
50
 
46
- - uses: ruby/setup-ruby@v1
51
+ - uses: ruby/setup-ruby@master
47
52
  with:
48
- ruby-version: '3.0'
53
+ ruby-version: '3.1'
49
54
  # bundler-cache: true important to not use cache because it leads to "cannot find -lrice"
50
55
  # more info https://github.com/lutaml/expressir/runs/2097658383?check_suite_focus=true#step:7:2126
51
56
 
@@ -55,7 +60,7 @@ jobs:
55
60
  - run: gem build expressir.gemspec
56
61
 
57
62
  - if: matrix.host == 'linux'
58
- uses: actions/upload-artifact@v2
63
+ uses: actions/upload-artifact@v3
59
64
  with:
60
65
  name: pkg-ruby
61
66
  path: expressir-*.gem
@@ -71,38 +76,38 @@ jobs:
71
76
  # build gem WITH pre-built native extension
72
77
  - run: bundle exec rake gem:${{ matrix.host }}
73
78
 
74
- - uses: actions/upload-artifact@v2
79
+ - uses: actions/upload-artifact@v3
75
80
  with:
76
81
  name: pkg-${{ matrix.host }}
77
82
  path: pkg/*.gem
78
83
 
79
84
  publish:
80
- runs-on: ubuntu-18.04
85
+ runs-on: ubuntu-latest
81
86
  needs: pack
82
87
  steps:
83
- - uses: actions/download-artifact@v2
88
+ - uses: actions/download-artifact@v3
84
89
  with:
85
90
  name: pkg-ruby
86
91
  path: pkg
87
92
 
88
- - uses: actions/download-artifact@v2
93
+ - uses: actions/download-artifact@v3
89
94
  with:
90
95
  name: pkg-linux
91
96
  path: pkg
92
97
 
93
- - uses: actions/download-artifact@v2
98
+ - uses: actions/download-artifact@v3
94
99
  with:
95
100
  name: pkg-windows
96
101
  path: pkg
97
102
 
98
- - uses: actions/download-artifact@v2
103
+ - uses: actions/download-artifact@v3
99
104
  with:
100
105
  name: pkg-darwin
101
106
  path: pkg
102
107
 
103
- - uses: ruby/setup-ruby@v1
108
+ - uses: ruby/setup-ruby@master
104
109
  with:
105
- ruby-version: '3.0'
110
+ ruby-version: '3.1'
106
111
 
107
112
  - run: ls -l pkg/
108
113
 
data/.rubocop.yml CHANGED
@@ -2,7 +2,8 @@ inherit_from:
2
2
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
3
3
 
4
4
  AllCops:
5
- TargetRubyVersion: 2.6
5
+ TargetRubyVersion: 2.7
6
+ NewCops: enable
6
7
  SuggestExtensions: false
7
8
  Exclude:
8
9
  - 'vendor/**/*'
data/bin/rspec CHANGED
@@ -15,7 +15,7 @@ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
15
15
  bundle_binstub = File.expand_path("bundle", __dir__)
16
16
 
17
17
  if File.file?(bundle_binstub)
18
- if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
18
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
19
19
  load(bundle_binstub)
20
20
  else
21
21
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
data/expressir.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.metadata["source_code_uri"] = spec.homepage
18
18
  spec.metadata["changelog_uri"] = "https://github.com/lutaml/expressir/releases"
19
19
 
20
- spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
20
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
21
21
 
22
22
  spec.files = `git ls-files`.split("\n")\
23
23
  + Dir.glob("ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/**/*")
@@ -41,8 +41,8 @@ Gem::Specification.new do |spec|
41
41
  spec.add_development_dependency "rake-compiler", "~> 1.2"
42
42
  spec.add_development_dependency "rake-compiler-dock", "~> 1.2.1"
43
43
  spec.add_development_dependency "rspec", "~> 3.11"
44
- spec.add_development_dependency "rubocop", "1.5.2"
45
- spec.add_development_dependency "rubocop-performance", "~> 1.0"
44
+ spec.add_development_dependency "rubocop", "1.58"
45
+ spec.add_development_dependency "rubocop-performance", "~> 1.19"
46
46
  spec.add_development_dependency "webrick", "~> 1.7.0"
47
47
  spec.add_development_dependency "yard", "~> 0.9.26"
48
48
  end
@@ -49,7 +49,7 @@ else
49
49
  dir_config(extension_name)
50
50
  end
51
51
 
52
- $CPPFLAGS << " -std=c++17 -DANTLR4CPP_STATIC -DHAVE_CXX11 -O3"
52
+ $CPPFLAGS << " -std=c++17 -DANTLR4CPP_STATIC -DHAVE_CXX11 -O2 -fno-omit-frame-pointer"
53
53
  $INCFLAGS << " -I#{__dir__}/#{antlr4_src}"
54
54
  $srcs = []
55
55
 
@@ -17,7 +17,7 @@ require "set"
17
17
  # - such multi-pass parsing is not implemented yet
18
18
  # - xxxRef - merged to SimpleReference
19
19
  # - entityConstructor, functionCall - merged to FunctionCall
20
- #
20
+ #
21
21
  # difference between generalized and instantiable types is not recognized
22
22
  # see note in 8.6.2 Parameter data types
23
23
  # > A syntactic construct such as ARRAY[1:3] OF REAL satisfies two syntactic productions —
@@ -69,7 +69,7 @@ module Expressir
69
69
  default
70
70
  end
71
71
  end
72
-
72
+
73
73
  def visit_if_map(ctx)
74
74
  if ctx
75
75
  ctx.map{|ctx2| visit(ctx2)}
@@ -77,7 +77,7 @@ module Expressir
77
77
  []
78
78
  end
79
79
  end
80
-
80
+
81
81
  def visit_if_map_flatten(ctx)
82
82
  if ctx
83
83
  ctx.map{|ctx2| visit(ctx2)}.flatten
@@ -111,15 +111,25 @@ module Expressir
111
111
  end
112
112
  end
113
113
 
114
+ def node_find(node, path)
115
+ if node.is_a?(Enumerable)
116
+ target_node = node.find { |item| item.find(path) }
117
+ else
118
+ target_node = node.find(path)
119
+ end
120
+ target_node
121
+ end
122
+
114
123
  def find_remark_target(node, path)
115
- target_node = node.find(path)
124
+ target_node = node_find(node, path)
125
+
116
126
  return target_node if target_node
117
127
 
118
128
  # check if path can create implicit remark item
119
129
  # see https://github.com/lutaml/expressir/issues/78
120
130
  rest, _, current_path = path.rpartition(".") # get last path part
121
131
  _, _, current_path = current_path.rpartition(":") # ignore prefix
122
- parent_node = node.find(rest)
132
+ parent_node = node_find(node, rest)
123
133
  if parent_node and parent_node.class.method_defined? :remark_items
124
134
  remark_item = Model::Declarations::RemarkItem.new(
125
135
  id: current_path
@@ -134,7 +144,7 @@ module Expressir
134
144
  parent_node.remark_items << remark_item
135
145
  end
136
146
  parent_node.reset_children_by_id
137
-
147
+
138
148
  remark_item
139
149
  end
140
150
  end
@@ -427,7 +437,7 @@ module Expressir
427
437
  optional = ctx__OPTIONAL && true
428
438
  unique = ctx__UNIQUE && true
429
439
  base_type = visit_if(ctx__instantiable_type)
430
-
440
+
431
441
  Model::DataTypes::Array.new(
432
442
  bound1: bound1,
433
443
  bound2: bound2,
@@ -495,7 +505,7 @@ module Expressir
495
505
  bound1 = visit_if(ctx__bound_spec__bound1)
496
506
  bound2 = visit_if(ctx__bound_spec__bound2)
497
507
  base_type = visit_if(ctx__instantiable_type)
498
-
508
+
499
509
  Model::DataTypes::Bag.new(
500
510
  bound1: bound1,
501
511
  bound2: bound2,
@@ -830,7 +840,7 @@ module Expressir
830
840
  if ctx__type_ref
831
841
  ref = visit_if(ctx__type_ref)
832
842
  attribute = visit_if(ctx__enumeration_ref)
833
-
843
+
834
844
  Model::References::AttributeReference.new(
835
845
  ref: ref,
836
846
  attribute: attribute
@@ -1030,7 +1040,7 @@ module Expressir
1030
1040
  optional = ctx__OPTIONAL && true
1031
1041
  unique = ctx__UNIQUE && true
1032
1042
  base_type = visit_if(ctx__parameter_type)
1033
-
1043
+
1034
1044
  Model::DataTypes::Array.new(
1035
1045
  bound1: bound1,
1036
1046
  bound2: bound2,
@@ -1049,7 +1059,7 @@ module Expressir
1049
1059
  bound1 = visit_if(ctx__bound_spec__bound1)
1050
1060
  bound2 = visit_if(ctx__bound_spec__bound2)
1051
1061
  base_type = visit_if(ctx__parameter_type)
1052
-
1062
+
1053
1063
  Model::DataTypes::Bag.new(
1054
1064
  bound1: bound1,
1055
1065
  bound2: bound2,
@@ -1068,7 +1078,7 @@ module Expressir
1068
1078
  bound2 = visit_if(ctx__bound_spec__bound2)
1069
1079
  unique = ctx__UNIQUE && true
1070
1080
  base_type = visit_if(ctx__parameter_type)
1071
-
1081
+
1072
1082
  Model::DataTypes::List.new(
1073
1083
  bound1: bound1,
1074
1084
  bound2: bound2,
@@ -1093,7 +1103,7 @@ module Expressir
1093
1103
  bound1 = visit_if(ctx__bound_spec__bound1)
1094
1104
  bound2 = visit_if(ctx__bound_spec__bound2)
1095
1105
  base_type = visit_if(ctx__parameter_type)
1096
-
1106
+
1097
1107
  Model::DataTypes::Set.new(
1098
1108
  bound1: bound1,
1099
1109
  bound2: bound2,
@@ -1358,7 +1368,7 @@ module Expressir
1358
1368
  bound2 = visit_if(ctx__bound_spec__bound2)
1359
1369
  unique = ctx__UNIQUE && true
1360
1370
  base_type = visit_if(ctx__instantiable_type)
1361
-
1371
+
1362
1372
  Model::DataTypes::List.new(
1363
1373
  bound1: bound1,
1364
1374
  bound2: bound2,
@@ -1989,7 +1999,7 @@ module Expressir
1989
1999
  end
1990
2000
  end
1991
2001
  end
1992
-
2002
+
1993
2003
  Model::Declarations::SchemaVersion.new(
1994
2004
  value: value,
1995
2005
  items: items
@@ -2042,7 +2052,7 @@ module Expressir
2042
2052
  bound1 = visit_if(ctx__bound_spec__bound1)
2043
2053
  bound2 = visit_if(ctx__bound_spec__bound2)
2044
2054
  base_type = visit_if(ctx__instantiable_type)
2045
-
2055
+
2046
2056
  Model::DataTypes::Set.new(
2047
2057
  bound1: bound1,
2048
2058
  bound2: bound2,
@@ -2087,7 +2097,7 @@ module Expressir
2087
2097
  def visit_simple_factor_expression(ctx)
2088
2098
  ctx__expression = ctx.expression
2089
2099
  ctx__primary = ctx.primary
2090
-
2100
+
2091
2101
  visit_if(ctx__expression || ctx__primary)
2092
2102
  end
2093
2103
 
@@ -2575,4 +2585,4 @@ module Expressir
2575
2585
  end
2576
2586
  end
2577
2587
  end
2578
- end
2588
+ end
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "1.2.7".freeze
2
+ VERSION = "1.2.9".freeze
3
3
  end
@@ -126,7 +126,7 @@ CrossRuby = Struct.new(:version, :host) do
126
126
 
127
127
  def verify_entry_linux(dll)
128
128
  nm = `#{["env", "LANG=C", tool("nm"), "-D", dll].shelljoin}`
129
- unless / T Init_express_parser/.match?(nm)
129
+ unless nm.include?(" T Init_express_parser")
130
130
  raise "Export function Init_express_parser not in dll #{dll}"
131
131
  end
132
132
  end
@@ -223,7 +223,7 @@ CrossRuby = Struct.new(:version, :host) do
223
223
  end
224
224
 
225
225
  def actual_dlls_windows(dump)
226
- dump.scan(/DLL Name: (.*)$/).map(&:first).map(&:downcase).uniq
226
+ dump.scan(/DLL Name: (.*)$/).map { |x| x.first.downcase }.uniq
227
227
  end
228
228
 
229
229
  def actual_dlls_darwin(dll)
@@ -272,12 +272,12 @@ CrossRuby = Struct.new(:version, :host) do
272
272
  end
273
273
  end
274
274
 
275
- CROSS_RUBIES = File.read(".cross_rubies").split("\n").map do |line|
275
+ CROSS_RUBIES = File.read(".cross_rubies").split("\n").filter_map do |line|
276
276
  case line
277
277
  when /\A([^#]+):([^#]+)/
278
278
  CrossRuby.new($1, $2)
279
279
  end
280
- end.compact
280
+ end
281
281
 
282
282
  ENV["RUBY_CC_VERSION"] = CROSS_RUBIES.map(&:ver).uniq.join(":")
283
283
 
@@ -329,7 +329,7 @@ namespace "gem" do
329
329
  #{pre_req(plat)} &&
330
330
  gem install bundler --no-document &&
331
331
  bundle &&
332
- bundle exec rake gem:#{plat}:builder MAKE='nice make -j`nproc`'
332
+ bundle exec rake gem:#{plat}:builder MAKE="nice make -j`nproc`"
333
333
  RCD
334
334
  end
335
335
 
@@ -23,7 +23,9 @@ ENTITY remark_entity;
23
23
  DERIVE remark_derived_attribute : STRING := 'xxx';
24
24
  INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
25
25
  UNIQUE UR1: remark_attribute;
26
- WHERE WR1: TRUE;
26
+ WHERE WR1:
27
+ --"unusual_placement" placed inside WHERE clauses (or other enumerable context)
28
+ TRUE;
27
29
  --"remark_attribute" entity scope - entity attribute
28
30
  --"remark_derived_attribute" entity scope - entity derived attribute
29
31
  --"remark_inverse_attribute" entity scope - entity inverse attribute
@@ -188,4 +190,4 @@ END_SCHEMA;
188
190
  --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
189
191
  --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
190
192
  --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
191
- --"remark_schema.remark_item" universal scope - schema remark item
193
+ --"remark_schema.remark_item" universal scope - schema remark item
@@ -133,6 +133,11 @@ schemas:
133
133
  - schema scope - entity where, with prefix
134
134
  - universal scope - entity where
135
135
  - universal scope - entity where, with prefix
136
+ remark_items:
137
+ - _class: Expressir::Model::Declarations::RemarkItem
138
+ id: unusual_placement
139
+ remarks:
140
+ - placed inside WHERE clauses (or other enumerable context)
136
141
  expression:
137
142
  _class: Expressir::Model::Literals::Logical
138
143
  value: :TRUE
@@ -146,6 +146,7 @@ several physical lines.
146
146
  --"remark_schema.remark_entity.WR1" schema scope - entity where, with prefix
147
147
  --"remark_schema.remark_entity.WR1" universal scope - entity where
148
148
  --"remark_schema.remark_entity.WR1" universal scope - entity where, with prefix
149
+ --"remark_schema.remark_entity.WR1.unusual_placement" placed inside WHERE clauses (or other enumerable context)
149
150
  --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition
150
151
  --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition, with prefix
151
152
  --"remark_schema.remark_entity.IP1" schema scope - entity informal proposition
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-20 00:00:00.000000000 Z
11
+ date: 2023-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -170,28 +170,28 @@ dependencies:
170
170
  requirements:
171
171
  - - '='
172
172
  - !ruby/object:Gem::Version
173
- version: 1.5.2
173
+ version: '1.58'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - '='
179
179
  - !ruby/object:Gem::Version
180
- version: 1.5.2
180
+ version: '1.58'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rubocop-performance
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '1.0'
187
+ version: '1.19'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '1.0'
194
+ version: '1.19'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: webrick
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -724,14 +724,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
724
724
  requirements:
725
725
  - - ">="
726
726
  - !ruby/object:Gem::Version
727
- version: 2.6.0
727
+ version: 2.7.0
728
728
  required_rubygems_version: !ruby/object:Gem::Requirement
729
729
  requirements:
730
730
  - - ">="
731
731
  - !ruby/object:Gem::Version
732
732
  version: '0'
733
733
  requirements: []
734
- rubygems_version: 3.2.33
734
+ rubygems_version: 3.3.26
735
735
  signing_key:
736
736
  specification_version: 4
737
737
  summary: ISO EXPRESS parser and tools in Ruby.