tnql 1.0.1 → 1.1.0

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
- SHA1:
3
- metadata.gz: 6936ea7d47edc8da4c5e4e80aa4f6905a9b3ae58
4
- data.tar.gz: 38f63a375516daa97dfb6d18584fa3d274ccbfa3
2
+ SHA256:
3
+ metadata.gz: 84f8dbf9e2ffa3742f3862ceab072de0b902a7898d3d02a41f46e4f7edaf0da6
4
+ data.tar.gz: 777e9c6aeb0db7ddc37c9629053c69b42e4a7a23fc8b3d5ebdbac0680ba57929
5
5
  SHA512:
6
- metadata.gz: 17a96583fd8085d0ee50011df72f10c2715c88d4b293796e17677df5c8c0a896074839860a3895bcfb4e845a4700a574b60206d9898a5c4e11f60d642262b2d7
7
- data.tar.gz: 89f27417a0c4eece79c6d1febb82a1d8cc42ef005bdf69713881eda82ce4d3d12909a2c79740b57221abeba422c731a86ea793d9e248a2f014f885fb316a1572
6
+ metadata.gz: faf39b0b48420853a4684f4a54b2bba3590e029dd3e41d7315d5b0442358a9160d5b06637d9599384b681e85de36a6213f7666ea1d7d176e72f3f479414c284b
7
+ data.tar.gz: b447671bf6d26ed0d6218704098ff906faffee0c2ce9aa505b8d3463a0e6acf8f96a496824cce9bc5ffef031eecac2403cb46d418c405b6a7983c7e29901fbb8
@@ -0,0 +1,2 @@
1
+ # Admins should have oversight of the version:
2
+ lib/tnql/version.rb @publichealthengland/ndr-admins
@@ -0,0 +1,23 @@
1
+ name: Lint
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ rubocop:
7
+ name: RuboCop
8
+
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ with:
14
+ fetch-depth: 0 # fetch everything
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: 3.0
19
+ - name: Install dependencies
20
+ run: bundle install
21
+ - name: Run RuboCop against BASE..HEAD changes
22
+ run: bundle exec rake rubocop:diff origin/${GITHUB_BASE_REF#*/}
23
+
@@ -0,0 +1,71 @@
1
+ name: Test
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ matrix:
9
+ ruby-version:
10
+ - 2.6
11
+ - 2.7
12
+ - 3.0
13
+ gemfile:
14
+ - gemfiles/Gemfile.rails52
15
+ - gemfiles/Gemfile.rails60
16
+
17
+ name: Ruby ${{ matrix.ruby-version }} / Bundle ${{ matrix.gemfile }}
18
+
19
+ runs-on: ubuntu-latest
20
+
21
+ env:
22
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ uses: ruby/setup-ruby@v1
28
+ with:
29
+ ruby-version: ${{ matrix.ruby-version }}
30
+ - name: Install dependencies
31
+ run: bundle install
32
+ - name: Run tests
33
+ run: bundle exec rake
34
+
35
+ # A utility job upon which Branch Protection can depend,
36
+ # thus remaining agnostic of the matrix.
37
+ test_matrix:
38
+ if: ${{ always() }}
39
+ runs-on: ubuntu-latest
40
+ name: Matrix
41
+ needs: test
42
+ steps:
43
+ - name: Check build matrix status
44
+ if: ${{ needs.test.result != 'success' }}
45
+ run: exit 1
46
+
47
+ notify:
48
+ # Run only on master, but regardless of whether tests past:
49
+ if: ${{ always() && github.ref == 'refs/heads/master' }}
50
+
51
+ needs: test_matrix
52
+
53
+ runs-on: ubuntu-latest
54
+
55
+ steps:
56
+ - uses: 8398a7/action-slack@v3
57
+ with:
58
+ status: custom
59
+ fields: workflow,commit,author
60
+ custom_payload: |
61
+ {
62
+ channel: 'C7FQWGDHP',
63
+ username: 'CI – ' + '${{ github.repository }}'.split('/')[1],
64
+ icon_emoji: ':hammer_and_wrench:',
65
+ attachments: [{
66
+ color: '${{ needs.test_matrix.result }}' === 'success' ? 'good' : '${{ needs.test_matrix.result }}' === 'failure' ? 'danger' : 'warning',
67
+ text: `${process.env.AS_WORKFLOW} against \`${{ github.ref }}\` (${process.env.AS_COMMIT}) for ${{ github.actor }} resulted in *${{ needs.test_matrix.result }}*.`
68
+ }]
69
+ }
70
+ env:
71
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
data/.rubocop.yml CHANGED
@@ -1,7 +1 @@
1
- inherit_from: 'https://raw.githubusercontent.com/PublicHealthEngland/ndr_dev_support/master/.rubocop.yml'
2
-
3
- Rails:
4
- Enabled: false
5
-
6
- AllCops:
7
- TargetRubyVersion: 2.3
1
+ require: ndr_dev_support
data/CHANGELOG.md ADDED
@@ -0,0 +1,29 @@
1
+ ## [Unreleased]
2
+ *no unreleased changes*
3
+
4
+ ## 1.1.0 / 2021-11-25
5
+ ### Added
6
+ * allow exclusion of crown dependency from corresponding registry
7
+ ### Fixed
8
+ * update rubocop configuration
9
+ * bump dependent gem `ndr_dev_support` to v6.0
10
+
11
+ ## 1.0.4 / 2021-01-29
12
+ ### Fixed
13
+ * Compatibility with Rails 6
14
+
15
+ ## 1.0.3 / 2019-10-29
16
+ ### Fixed
17
+ * Relax `chronic` dependency
18
+
19
+ ## 1.0.2 / 2019-07-09
20
+ ### Fixed
21
+ * Rails 5.2 support
22
+
23
+ ## 1.0.1 / 2018-07-06
24
+ ### Fixed
25
+ * Rails 5.1 support
26
+
27
+ ## 1.0.0 / 2017-05-25
28
+ ### Added
29
+ * Public release
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # TNQL [![Build Status](https://travis-ci.org/PublicHealthEngland/tnql.svg?branch=master)](https://travis-ci.org/PublicHealthEngland/tnql)
1
+ # TNQL [![Build Status](https://github.com/publichealthengland/tnql/workflows/Test/badge.svg)](https://github.com/publichealthengland/tnql/actions?query=workflow%3Atest) [![Gem Version](https://badge.fury.io/rb/tnql.svg)](https://rubygems.org/gems/tnql)
2
2
 
3
3
  Tumour Natural Query Language (TNQL) is a [Treetop](http://treetop.rubyforge.org/) driven Domain Specific Language (DSL) used by the Public Health England (PHE) National Cancer Registration and Analysis Service (NCRAS) to identify cohorts of tumours.
4
4
 
data/code_safety.yml CHANGED
@@ -1,21 +1,33 @@
1
1
  ---
2
2
  file safety:
3
+ ".github/CODEOWNERS":
4
+ comments:
5
+ reviewed_by: josh.pencheon
6
+ safe_revision: b2ac2de6856884bdb1e0cb369b02d30c1fd64166
7
+ ".github/workflows/lint.yml":
8
+ comments:
9
+ reviewed_by: josh.pencheon
10
+ safe_revision: b2ac2de6856884bdb1e0cb369b02d30c1fd64166
11
+ ".github/workflows/test.yml":
12
+ comments:
13
+ reviewed_by: josh.pencheon
14
+ safe_revision: b2ac2de6856884bdb1e0cb369b02d30c1fd64166
3
15
  ".gitignore":
4
16
  comments:
5
- reviewed_by: timgentry
6
- safe_revision: 065dcccb9db71374cea5aad104657a5c1f877d1c
17
+ reviewed_by: josh.pencheon
18
+ safe_revision: fbc1cf349a296e3489e4b27b4de6c52222113926
7
19
  ".hound.yml":
8
20
  comments:
9
21
  reviewed_by: timgentry
10
22
  safe_revision: 1cf068b17559ed381e013fe71a481eb3db15f553
11
23
  ".rubocop.yml":
12
24
  comments:
13
- reviewed_by: timgentry
14
- safe_revision: b85a30c6fd89eddc6597323f7afe7ea2859ae9ac
15
- ".travis.yml":
16
- comments:
17
- reviewed_by: timgentry
18
- safe_revision: d4f2a88af5df3bde2a58185e8095821fafc599bf
25
+ reviewed_by: ollietulloch
26
+ safe_revision: b1aeb26ad5721337fc37605b11e2a4a859ebc1f7
27
+ CHANGELOG.md:
28
+ comments: Incorrectly bumped to v1.5.0 from v1.0.4 previously
29
+ reviewed_by: ollietulloch
30
+ safe_revision: dbd0e04b521511e49b7e5b004d1ca7e915867c09
19
31
  CODE_OF_CONDUCT.md:
20
32
  comments:
21
33
  reviewed_by: timgentry
@@ -34,8 +46,8 @@ file safety:
34
46
  safe_revision: 065dcccb9db71374cea5aad104657a5c1f877d1c
35
47
  README.md:
36
48
  comments:
37
- reviewed_by: timgentry
38
- safe_revision: f47d9a806bce9a24ee538dae9674c7deba79a7a8
49
+ reviewed_by: josh.pencheon
50
+ safe_revision: b2ac2de6856884bdb1e0cb369b02d30c1fd64166
39
51
  Rakefile:
40
52
  comments:
41
53
  reviewed_by: timgentry
@@ -48,6 +60,14 @@ file safety:
48
60
  comments:
49
61
  reviewed_by: timgentry
50
62
  safe_revision: 065dcccb9db71374cea5aad104657a5c1f877d1c
63
+ gemfiles/Gemfile.rails52:
64
+ comments:
65
+ reviewed_by: josh.pencheon
66
+ safe_revision: 3316c8246806653c6ae3f50864b710dd76a064b3
67
+ gemfiles/Gemfile.rails60:
68
+ comments:
69
+ reviewed_by: josh.pencheon
70
+ safe_revision: 8f52c0cbddb974f10eb4f8c3de06038aa95e3429
51
71
  lib/tnql.rb:
52
72
  comments:
53
73
  reviewed_by: timgentry
@@ -108,8 +128,8 @@ file safety:
108
128
  lib/tnql/grammars/registry.treetop:
109
129
  comments: It is a known issue that this is potentially susceptible to certain
110
130
  kinds of DoS attack
111
- reviewed_by: timgentry
112
- safe_revision: b3a8b33cbc5dd29822e0e6ded32500ccd7a15670
131
+ reviewed_by: ollietulloch
132
+ safe_revision: 0ba6205a546963eb7e7387bea51f81e6b5485af8
113
133
  lib/tnql/grammars/staging.treetop:
114
134
  comments: It is a known issue that this is potentially susceptible to certain
115
135
  kinds of DoS attack
@@ -172,8 +192,8 @@ file safety:
172
192
  safe_revision: 61b0293f89d57118268e15fc49b529c64bbbe2b7
173
193
  lib/tnql/nodes/registry.rb:
174
194
  comments:
175
- reviewed_by: timgentry
176
- safe_revision: 2c3dd20879903b98f7f05d5d3e73b1478c275c93
195
+ reviewed_by: ollietulloch
196
+ safe_revision: 96b9ba36a2da7246bff2f0a49cef0e1808ddb4e5
177
197
  lib/tnql/nodes/staging.rb:
178
198
  comments:
179
199
  reviewed_by: timgentry
@@ -199,9 +219,9 @@ file safety:
199
219
  reviewed_by: timgentry
200
220
  safe_revision: 61b0293f89d57118268e15fc49b529c64bbbe2b7
201
221
  lib/tnql/version.rb:
202
- comments:
203
- reviewed_by: timgentry
204
- safe_revision: 44b3b8fee3cf50c9fe614dbccc9eccc27f0c87a3
222
+ comments: Incorrectly bumped to v1.5.0 from v1.0.4 previously
223
+ reviewed_by: ollietulloch
224
+ safe_revision: dbd0e04b521511e49b7e5b004d1ca7e915867c09
205
225
  test/nodes/age_test.rb:
206
226
  comments:
207
227
  reviewed_by: timgentry
@@ -217,7 +237,7 @@ file safety:
217
237
  test/nodes/e_base_records_test.rb:
218
238
  comments:
219
239
  reviewed_by: timgentry
220
- safe_revision: 0749ad008871e286c6e0450a733599f0c86ced5f
240
+ safe_revision: '0749ad008871e286c6e0450a733599f0c86ced5f'
221
241
  test/nodes/main_test.rb:
222
242
  comments:
223
243
  reviewed_by: timgentry
@@ -236,8 +256,8 @@ file safety:
236
256
  safe_revision: 61b0293f89d57118268e15fc49b529c64bbbe2b7
237
257
  test/nodes/registry_test.rb:
238
258
  comments:
239
- reviewed_by: timgentry
240
- safe_revision: 61b0293f89d57118268e15fc49b529c64bbbe2b7
259
+ reviewed_by: ollietulloch
260
+ safe_revision: 0ba6205a546963eb7e7387bea51f81e6b5485af8
241
261
  test/nodes/staging_test.rb:
242
262
  comments:
243
263
  reviewed_by: timgentry
@@ -268,5 +288,5 @@ file safety:
268
288
  safe_revision: 61b0293f89d57118268e15fc49b529c64bbbe2b7
269
289
  tnql.gemspec:
270
290
  comments:
271
- reviewed_by: timgentry
272
- safe_revision: 44b3b8fee3cf50c9fe614dbccc9eccc27f0c87a3
291
+ reviewed_by: ollietulloch
292
+ safe_revision: 14e059d904af19a4921a37b2949529b916d19b93
@@ -2,4 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec path: '..'
4
4
 
5
- gem 'rails', '~> 4.2.0'
5
+ gem 'rails', '~> 5.2.0'
@@ -2,4 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec path: '..'
4
4
 
5
- gem 'rails', '~> 5.0.0'
5
+ gem 'rails', '~> 6.0'
@@ -1,7 +1,11 @@
1
1
  module Tnql
2
2
  grammar Registry
3
3
  rule registry
4
- space registry:(registry_code / registry_abbr) <Nodes::RegistryNode>
4
+ exclude:exclude_crown_dependencies? space registry:(registry_code / registry_abbr) <Nodes::RegistryNode>
5
+ end
6
+
7
+ rule exclude_crown_dependencies
8
+ space ('not' / 'non' / 'exclude') space crown_dependency:('channel islands' / 'iom' / 'isle of man') <Nodes::ExcludeCrownDependencyNode>
5
9
  end
6
10
 
7
11
  rule registry_code
@@ -2,7 +2,21 @@ module Tnql #:nodoc: all
2
2
  module Nodes
3
3
  module RegistryNode
4
4
  def meta_data_item
5
- { 'tumour.registry' => { Tnql::EQUALS => registry.to_registrycode } }
5
+ registrycode = registry.to_registrycode
6
+ exclude_crown_dependency = !exclude.blank? && exclude.to_registrycode == registrycode
7
+ { 'tumour.registry' => { Tnql::EQUALS => [registrycode, exclude_crown_dependency] } }
8
+ end
9
+ end
10
+
11
+ module ExcludeCrownDependencyNode
12
+ CROWN_DEPENDENCY_REGISTRY = {
13
+ 'channel islands' => 'Y1001',
14
+ 'iom' => 'Y1701',
15
+ 'isle of man' => 'Y1701'
16
+ }.freeze unless defined?(CROWN_DEPENDENCY_REGISTRY)
17
+
18
+ def to_registrycode
19
+ CROWN_DEPENDENCY_REGISTRY[crown_dependency.text_value]
6
20
  end
7
21
  end
8
22
 
data/lib/tnql/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # This stores the current version of the Tnql gem
2
2
  module Tnql
3
- VERSION = '1.0.1'.freeze
3
+ VERSION = '1.1.0'.freeze
4
4
  end
data/tnql.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path('lib', __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'tnql/version'
5
5
 
@@ -16,18 +16,20 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").
18
18
  reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ # SECURE BNS 2018-08-06: Minimise sharing of (public-key encrypted) slack secrets in .travis.yml
20
+ spec.files -= %w[.travis.yml] # Not needed in the gem
19
21
  spec.bindir = 'exe'
20
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
23
  spec.require_paths = ['lib']
22
24
 
23
- spec.required_ruby_version = '>= 2.2.0'
25
+ spec.required_ruby_version = '>= 2.6'
24
26
 
25
- spec.add_dependency 'activesupport', '>= 3.2.18', '< 5.2'
27
+ spec.add_dependency 'activesupport', '>= 3.2.18', '< 7'
26
28
  spec.add_dependency 'ndr_support', '>= 3.0', '< 6'
27
29
  spec.add_dependency 'treetop', '>= 1.4.10'
28
- spec.add_dependency 'chronic', '~> 0.3.0'
30
+ spec.add_dependency 'chronic', '~> 0.3'
29
31
 
30
- spec.add_development_dependency 'ndr_dev_support', '~> 2.1'
32
+ spec.add_development_dependency 'ndr_dev_support', '~> 6.0'
31
33
  spec.add_development_dependency 'bundler'
32
34
  spec.add_development_dependency 'rake'
33
35
  spec.add_development_dependency 'minitest', '>= 5.0.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tnql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - PHE NDR IT Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-06 00:00:00.000000000 Z
11
+ date: 2021-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 3.2.18
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.2'
22
+ version: '7'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 3.2.18
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.2'
32
+ version: '7'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: ndr_support
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -70,28 +70,28 @@ dependencies:
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: 0.3.0
73
+ version: '0.3'
74
74
  type: :runtime
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
- version: 0.3.0
80
+ version: '0.3'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: ndr_dev_support
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '2.1'
87
+ version: '6.0'
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '2.1'
94
+ version: '6.0'
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: bundler
97
97
  requirement: !ruby/object:Gem::Requirement
@@ -210,10 +210,13 @@ executables: []
210
210
  extensions: []
211
211
  extra_rdoc_files: []
212
212
  files:
213
+ - ".github/CODEOWNERS"
214
+ - ".github/workflows/lint.yml"
215
+ - ".github/workflows/test.yml"
213
216
  - ".gitignore"
214
217
  - ".hound.yml"
215
218
  - ".rubocop.yml"
216
- - ".travis.yml"
219
+ - CHANGELOG.md
217
220
  - CODE_OF_CONDUCT.md
218
221
  - Gemfile
219
222
  - Guardfile
@@ -223,9 +226,8 @@ files:
223
226
  - bin/console
224
227
  - bin/setup
225
228
  - code_safety.yml
226
- - gemfiles/Gemfile.rails42
227
- - gemfiles/Gemfile.rails50
228
- - gemfiles/Gemfile.rails51
229
+ - gemfiles/Gemfile.rails52
230
+ - gemfiles/Gemfile.rails60
229
231
  - lib/tnql.rb
230
232
  - lib/tnql/constants.rb
231
233
  - lib/tnql/grammars.rb
@@ -274,15 +276,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
276
  requirements:
275
277
  - - ">="
276
278
  - !ruby/object:Gem::Version
277
- version: 2.2.0
279
+ version: '2.6'
278
280
  required_rubygems_version: !ruby/object:Gem::Requirement
279
281
  requirements:
280
282
  - - ">="
281
283
  - !ruby/object:Gem::Version
282
284
  version: '0'
283
285
  requirements: []
284
- rubyforge_project:
285
- rubygems_version: 2.5.2.3
286
+ rubygems_version: 3.0.3
286
287
  signing_key:
287
288
  specification_version: 4
288
289
  summary: Tumour Natural Query Language
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.3
5
- - 2.4
6
- - 2.5
7
-
8
- gemfile:
9
- - gemfiles/Gemfile.rails42
10
- - gemfiles/Gemfile.rails50
11
- - gemfiles/Gemfile.rails51
12
-
13
- sudo: false
14
-
15
- cache: bundler
16
-
17
- before_script: "bundle update"
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '..'
4
-
5
- gem 'rails', '~> 5.1.0'