fhir_stu3_models 3.1.1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +1 -1
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +0 -1
- data/.rubocop.yml +5 -1
- data/.rubocop_todo.yml +49 -119
- data/.ruby-version +1 -0
- data/.simplecov +1 -5
- data/.tool-versions +1 -0
- data/Gemfile.lock +36 -32
- data/Guardfile +1 -1
- data/fhir_stu3_models.gemspec +2 -1
- data/lib/fhir_stu3_models/bootstrap/definitions.rb +14 -1
- data/lib/fhir_stu3_models/bootstrap/field.rb +2 -2
- data/lib/fhir_stu3_models/bootstrap/generator.rb +7 -5
- data/lib/fhir_stu3_models/bootstrap/hashable.rb +5 -4
- data/lib/fhir_stu3_models/bootstrap/json.rb +2 -2
- data/lib/fhir_stu3_models/bootstrap/model.rb +43 -31
- data/lib/fhir_stu3_models/bootstrap/preprocess.rb +23 -15
- data/lib/fhir_stu3_models/bootstrap/xml.rb +9 -7
- data/lib/fhir_stu3_models/deprecate.rb +1 -0
- data/lib/fhir_stu3_models/fhir.rb +8 -7
- data/lib/fhir_stu3_models/fhir_ext/element_definition.rb +4 -1
- data/lib/fhir_stu3_models/fhir_ext/structure_definition.rb +24 -17
- data/lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb +10 -0
- data/lib/fhir_stu3_models/fhir_ext/structure_definition_finding.rb +2 -2
- data/lib/fhir_stu3_models/fluentpath/expression.rb +1 -1
- data/lib/fhir_stu3_models/fluentpath/parse.rb +10 -7
- data/lib/fhir_stu3_models/version.rb +1 -1
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fad10495a24114dafe28e11c75994cfd4f724cdbeae5c52314a72fb92dcbcb1
|
4
|
+
data.tar.gz: fb2866760125408e5187f9bcb3b6ecfc0806b9fcd6ce9243713911985b7c20f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a1e2967c6a837027428cd7b30f3bfefeb55a766bf434f7732c89cff3b3003ba5dc42ef845a171121400f92062c1d740467be86fb8e36a720b738bd0a8f9e832
|
7
|
+
data.tar.gz: 1582407356c083ef680a408b891f0c20d29bcd4f67a3579511acf0f0bf1cf758f63d8974a6c2bb07b810a5f598c71e52238c973882282d6cb8ba6c1be1f4ebcb
|
data/.codeclimate.yml
CHANGED
data/.github/workflows/ruby.yml
CHANGED
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
AllCops:
|
3
|
-
TargetRubyVersion:
|
3
|
+
TargetRubyVersion: 3.0
|
4
4
|
Exclude:
|
5
5
|
- 'test/**/*'
|
6
6
|
- 'spec/**/*'
|
@@ -12,6 +12,8 @@ AllCops:
|
|
12
12
|
- 'bin/*'
|
13
13
|
Layout/LineLength:
|
14
14
|
Enabled: false
|
15
|
+
Style/AccessorGrouping:
|
16
|
+
Enabled: false
|
15
17
|
Style/FrozenStringLiteralComment:
|
16
18
|
Enabled: false
|
17
19
|
Style/HashEachMethods:
|
@@ -20,6 +22,8 @@ Style/HashTransformKeys:
|
|
20
22
|
Enabled: true
|
21
23
|
Style/HashTransformValues:
|
22
24
|
Enabled: true
|
25
|
+
Style/WordArray:
|
26
|
+
EnforcedStyle: brackets
|
23
27
|
inherit_mode:
|
24
28
|
merge:
|
25
29
|
- Exclude
|
data/.rubocop_todo.yml
CHANGED
@@ -1,55 +1,21 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2023-12-13 21:39:37 UTC using RuboCop version 1.23.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
10
|
-
#
|
11
|
-
Layout/EmptyLineAfterGuardClause:
|
12
|
-
Exclude:
|
13
|
-
- 'lib/fhir_stu3_models/bootstrap/definitions.rb'
|
14
|
-
- 'lib/fhir_stu3_models/bootstrap/generator.rb'
|
15
|
-
- 'lib/fhir_stu3_models/bootstrap/hashable.rb'
|
16
|
-
- 'lib/fhir_stu3_models/bootstrap/model.rb'
|
17
|
-
- 'lib/fhir_stu3_models/bootstrap/preprocess.rb'
|
18
|
-
- 'lib/fhir_stu3_models/bootstrap/xml.rb'
|
19
|
-
- 'lib/fhir_stu3_models/deprecate.rb'
|
20
|
-
- 'lib/fhir_stu3_models/fhir_ext/element_definition.rb'
|
21
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition.rb'
|
22
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb'
|
23
|
-
- 'lib/fhir_stu3_models/fluentpath/parse.rb'
|
24
|
-
|
25
|
-
# Offense count: 1
|
26
|
-
# Cop supports --auto-correct.
|
27
|
-
Layout/RescueEnsureAlignment:
|
28
|
-
Exclude:
|
29
|
-
- 'lib/fhir_stu3_models/bootstrap/hashable.rb'
|
30
|
-
|
31
|
-
# Offense count: 6
|
32
|
-
# Cop supports --auto-correct.
|
33
|
-
Lint/NonDeterministicRequireOrder:
|
34
|
-
Exclude:
|
35
|
-
- 'lib/fhir_stu3_models.rb'
|
36
|
-
|
37
|
-
# Offense count: 2
|
38
|
-
# Cop supports --auto-correct.
|
39
|
-
Lint/ToJSON:
|
40
|
-
Exclude:
|
41
|
-
- 'lib/fhir_stu3_models/bootstrap/json.rb'
|
42
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_finding.rb'
|
43
|
-
|
44
|
-
# Offense count: 38
|
9
|
+
# Offense count: 37
|
10
|
+
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
45
11
|
Metrics/AbcSize:
|
46
|
-
Max:
|
12
|
+
Max: 407
|
47
13
|
|
48
14
|
# Offense count: 7
|
49
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
50
|
-
#
|
15
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
16
|
+
# IgnoredMethods: refine
|
51
17
|
Metrics/BlockLength:
|
52
|
-
Max:
|
18
|
+
Max: 71
|
53
19
|
|
54
20
|
# Offense count: 7
|
55
21
|
# Configuration parameters: CountBlocks.
|
@@ -57,47 +23,51 @@ Metrics/BlockNesting:
|
|
57
23
|
Max: 5
|
58
24
|
|
59
25
|
# Offense count: 6
|
60
|
-
# Configuration parameters: CountComments.
|
26
|
+
# Configuration parameters: CountComments, CountAsOne.
|
61
27
|
Metrics/ClassLength:
|
62
28
|
Max: 345
|
63
29
|
|
64
|
-
# Offense count:
|
30
|
+
# Offense count: 32
|
31
|
+
# Configuration parameters: IgnoredMethods.
|
65
32
|
Metrics/CyclomaticComplexity:
|
66
|
-
Max:
|
33
|
+
Max: 77
|
67
34
|
|
68
|
-
# Offense count:
|
69
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
35
|
+
# Offense count: 44
|
36
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
70
37
|
Metrics/MethodLength:
|
71
|
-
Max:
|
38
|
+
Max: 126
|
72
39
|
|
73
40
|
# Offense count: 1
|
74
|
-
# Configuration parameters: CountComments.
|
41
|
+
# Configuration parameters: CountComments, CountAsOne.
|
75
42
|
Metrics/ModuleLength:
|
76
|
-
Max:
|
43
|
+
Max: 115
|
77
44
|
|
78
|
-
# Offense count:
|
45
|
+
# Offense count: 29
|
46
|
+
# Configuration parameters: IgnoredMethods.
|
79
47
|
Metrics/PerceivedComplexity:
|
80
|
-
Max:
|
48
|
+
Max: 80
|
49
|
+
|
50
|
+
# Offense count: 5
|
51
|
+
# Configuration parameters: EnforcedStyle, IgnoredPatterns.
|
52
|
+
# SupportedStyles: snake_case, camelCase
|
53
|
+
Naming/MethodName:
|
54
|
+
Exclude:
|
55
|
+
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_finding.rb'
|
81
56
|
|
82
57
|
# Offense count: 4
|
83
58
|
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
|
84
|
-
# AllowedNames:
|
59
|
+
# AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
|
85
60
|
Naming/MethodParameterName:
|
86
61
|
Exclude:
|
87
62
|
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb'
|
88
63
|
|
89
|
-
# Offense count:
|
64
|
+
# Offense count: 1
|
90
65
|
# Cop supports --auto-correct.
|
91
|
-
# Configuration parameters:
|
92
|
-
|
66
|
+
# Configuration parameters: EnforcedStyle.
|
67
|
+
# SupportedStyles: nested, compact
|
68
|
+
Style/ClassAndModuleChildren:
|
93
69
|
Exclude:
|
94
|
-
- '
|
95
|
-
|
96
|
-
# Offense count: 1
|
97
|
-
# Configuration parameters: .
|
98
|
-
# SupportedStyles: inline, group
|
99
|
-
Style/AccessModifierDeclarations:
|
100
|
-
EnforcedStyle: inline
|
70
|
+
- '.simplecov'
|
101
71
|
|
102
72
|
# Offense count: 17
|
103
73
|
Style/ClassVars:
|
@@ -105,17 +75,23 @@ Style/ClassVars:
|
|
105
75
|
- 'lib/fhir_stu3_models/bootstrap/definitions.rb'
|
106
76
|
- 'lib/fhir_stu3_models/fluentpath/parse.rb'
|
107
77
|
|
78
|
+
# Offense count: 1
|
79
|
+
Style/CombinableLoops:
|
80
|
+
Exclude:
|
81
|
+
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb'
|
82
|
+
|
108
83
|
# Offense count: 6
|
84
|
+
# Cop supports --auto-correct.
|
109
85
|
Style/CommentedKeyword:
|
110
86
|
Exclude:
|
111
87
|
- 'lib/fhir_stu3_models/bootstrap/hashable.rb'
|
112
88
|
- 'lib/fhir_stu3_models/bootstrap/model.rb'
|
113
89
|
|
114
|
-
# Offense count:
|
90
|
+
# Offense count: 15
|
91
|
+
# Configuration parameters: AllowedConstants.
|
115
92
|
Style/Documentation:
|
116
93
|
Exclude:
|
117
|
-
- '
|
118
|
-
- 'test/**/*'
|
94
|
+
- '.simplecov'
|
119
95
|
- 'lib/fhir_stu3_models/bootstrap/definitions.rb'
|
120
96
|
- 'lib/fhir_stu3_models/bootstrap/field.rb'
|
121
97
|
- 'lib/fhir_stu3_models/bootstrap/generator.rb'
|
@@ -131,13 +107,6 @@ Style/Documentation:
|
|
131
107
|
- 'lib/fhir_stu3_models/fluentpath/expression.rb'
|
132
108
|
- 'lib/fhir_stu3_models/fluentpath/parse.rb'
|
133
109
|
|
134
|
-
# Offense count: 22
|
135
|
-
# Cop supports --auto-correct.
|
136
|
-
# Configuration parameters: EnforcedStyle.
|
137
|
-
# SupportedStyles: always, always_true, never
|
138
|
-
Style/FrozenStringLiteralComment:
|
139
|
-
Enabled: false
|
140
|
-
|
141
110
|
# Offense count: 29
|
142
111
|
# Cop supports --auto-correct.
|
143
112
|
Style/IfUnlessModifier:
|
@@ -150,61 +119,22 @@ Style/IfUnlessModifier:
|
|
150
119
|
- 'lib/fhir_stu3_models/fhir_ext/structure_definition.rb'
|
151
120
|
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb'
|
152
121
|
|
153
|
-
# Offense count: 1
|
154
|
-
Style/MethodMissingSuper:
|
155
|
-
Exclude:
|
156
|
-
- 'lib/fhir_stu3_models/bootstrap/model.rb'
|
157
|
-
|
158
122
|
# Offense count: 1
|
159
123
|
Style/MissingRespondToMissing:
|
160
124
|
Exclude:
|
161
125
|
- 'lib/fhir_stu3_models/bootstrap/model.rb'
|
162
126
|
|
163
|
-
# Offense count:
|
164
|
-
|
127
|
+
# Offense count: 2
|
128
|
+
# Configuration parameters: AllowedMethods.
|
129
|
+
# AllowedMethods: respond_to_missing?
|
130
|
+
Style/OptionalBooleanParameter:
|
165
131
|
Exclude:
|
166
|
-
- 'lib/fhir_stu3_models/bootstrap/definitions.rb'
|
167
132
|
- 'lib/fhir_stu3_models/bootstrap/generator.rb'
|
168
|
-
- 'lib/fhir_stu3_models/bootstrap/
|
169
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition.rb'
|
133
|
+
- 'lib/fhir_stu3_models/bootstrap/template.rb'
|
170
134
|
|
171
135
|
# Offense count: 1
|
172
136
|
# Cop supports --auto-correct.
|
173
|
-
|
174
|
-
|
175
|
-
- 'lib/fhir_stu3_models/bootstrap/generator.rb'
|
176
|
-
|
177
|
-
# Offense count: 16
|
178
|
-
# Cop supports --auto-correct.
|
179
|
-
# Configuration parameters: EnforcedStyle.
|
180
|
-
# SupportedStyles: implicit, explicit
|
181
|
-
Style/RescueStandardError:
|
137
|
+
# Configuration parameters: AllowModifier.
|
138
|
+
Style/SoleNestedConditional:
|
182
139
|
Exclude:
|
183
|
-
- 'lib/fhir_stu3_models/
|
184
|
-
- 'lib/fhir_stu3_models/bootstrap/hashable.rb'
|
185
|
-
- 'lib/fhir_stu3_models/bootstrap/json.rb'
|
186
|
-
- 'lib/fhir_stu3_models/bootstrap/model.rb'
|
187
|
-
- 'lib/fhir_stu3_models/bootstrap/xml.rb'
|
188
|
-
- 'lib/fhir_stu3_models/fhir.rb'
|
189
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition.rb'
|
190
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_finding.rb'
|
191
|
-
- 'lib/fhir_stu3_models/fluentpath/expression.rb'
|
192
|
-
- 'lib/fhir_stu3_models/fluentpath/parse.rb'
|
193
|
-
|
194
|
-
# Offense count: 4
|
195
|
-
# Cop supports --auto-correct.
|
196
|
-
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
|
197
|
-
# AllowedMethods: present?, blank?, presence, try, try!
|
198
|
-
Style/SafeNavigation:
|
199
|
-
Exclude:
|
200
|
-
- 'lib/fhir_stu3_models/bootstrap/xml.rb'
|
201
|
-
- 'lib/fhir_stu3_models/fhir_ext/structure_definition.rb'
|
202
|
-
|
203
|
-
# Offense count: 7
|
204
|
-
# Cop supports --auto-correct.
|
205
|
-
# Configuration parameters: EnforcedStyle.
|
206
|
-
# SupportedStyles: forbid_for_all_comparison_operators, forbid_for_equality_operators_only, require_for_all_comparison_operators, require_for_equality_operators_only
|
207
|
-
Style/YodaCondition:
|
208
|
-
Exclude:
|
209
|
-
- 'lib/fhir_stu3_models/bootstrap/preprocess.rb'
|
210
|
-
- 'lib/fhir_stu3_models/fluentpath/parse.rb'
|
140
|
+
- 'lib/fhir_stu3_models/fhir_ext/structure_definition_compare.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.1.2
|
data/.simplecov
CHANGED
@@ -1,14 +1,10 @@
|
|
1
1
|
require 'simplecov'
|
2
2
|
SimpleCov.command_name 'Unit Tests'
|
3
|
-
SimpleCov.start do
|
4
|
-
add_filter "test/"
|
5
|
-
add_group "Library", "lib"
|
6
|
-
end
|
7
3
|
|
8
4
|
class SimpleCov::Formatter::QualityFormatter
|
9
5
|
def format(result)
|
10
6
|
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
11
|
-
File.open(
|
7
|
+
File.open('coverage/covered_percent', 'w') do |f|
|
12
8
|
f.puts result.source_files.covered_percent.to_f
|
13
9
|
end
|
14
10
|
end
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 3.1.2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fhir_stu3_models (3.
|
4
|
+
fhir_stu3_models (3.2.0)
|
5
5
|
bcp47 (>= 0.3)
|
6
6
|
date_time_precision (>= 0.8)
|
7
7
|
mime-types (>= 3.0)
|
@@ -13,12 +13,12 @@ GEM
|
|
13
13
|
ast (2.4.2)
|
14
14
|
bcp47 (0.3.3)
|
15
15
|
i18n
|
16
|
-
coderay (1.1.
|
16
|
+
coderay (1.1.3)
|
17
17
|
concurrent-ruby (1.1.9)
|
18
18
|
date_time_precision (0.8.1)
|
19
19
|
diff-lcs (1.3)
|
20
20
|
docile (1.1.5)
|
21
|
-
ffi (1.
|
21
|
+
ffi (1.16.3)
|
22
22
|
formatador (0.2.5)
|
23
23
|
guard (2.15.0)
|
24
24
|
formatador (>= 0.2.4)
|
@@ -39,21 +39,19 @@ GEM
|
|
39
39
|
test-unit (~> 3.0)
|
40
40
|
i18n (1.8.10)
|
41
41
|
concurrent-ruby (~> 1.0)
|
42
|
-
jaro_winkler (1.5.4)
|
43
42
|
json (2.5.1)
|
44
|
-
listen (3.
|
45
|
-
rb-fsevent (~> 0.
|
46
|
-
rb-inotify (~> 0.9, >= 0.9.
|
47
|
-
ruby_dep (~> 1.2)
|
43
|
+
listen (3.8.0)
|
44
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
45
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
48
46
|
lumberjack (1.0.13)
|
49
|
-
method_source (0.
|
47
|
+
method_source (1.0.0)
|
50
48
|
mime-types (3.3.1)
|
51
49
|
mime-types-data (~> 3.2015)
|
52
50
|
mime-types-data (3.2021.0901)
|
53
|
-
mini_portile2 (2.
|
51
|
+
mini_portile2 (2.8.6)
|
54
52
|
nenv (0.3.0)
|
55
|
-
nokogiri (1.
|
56
|
-
mini_portile2 (~> 2.
|
53
|
+
nokogiri (1.16.5)
|
54
|
+
mini_portile2 (~> 2.8.2)
|
57
55
|
racc (~> 1.4)
|
58
56
|
nokogiri-diff (0.2.0)
|
59
57
|
nokogiri (~> 1.5)
|
@@ -61,20 +59,23 @@ GEM
|
|
61
59
|
notiffany (0.1.3)
|
62
60
|
nenv (~> 0.1)
|
63
61
|
shellany (~> 0.0)
|
64
|
-
parallel (1.
|
65
|
-
parser (3.
|
62
|
+
parallel (1.23.0)
|
63
|
+
parser (3.2.2.4)
|
66
64
|
ast (~> 2.4.1)
|
65
|
+
racc
|
67
66
|
power_assert (1.1.5)
|
68
|
-
pry (0.
|
69
|
-
coderay (~> 1.1
|
70
|
-
method_source (~>
|
71
|
-
racc (1.
|
72
|
-
rainbow (3.
|
67
|
+
pry (0.14.2)
|
68
|
+
coderay (~> 1.1)
|
69
|
+
method_source (~> 1.0)
|
70
|
+
racc (1.8.0)
|
71
|
+
rainbow (3.1.1)
|
73
72
|
rake (12.3.3)
|
74
|
-
rb-fsevent (0.
|
75
|
-
rb-inotify (0.10.
|
73
|
+
rb-fsevent (0.11.2)
|
74
|
+
rb-inotify (0.10.1)
|
76
75
|
ffi (~> 1.0)
|
77
|
-
|
76
|
+
regexp_parser (2.8.3)
|
77
|
+
rexml (3.2.8)
|
78
|
+
strscan (>= 3.0.9)
|
78
79
|
rspec (3.8.0)
|
79
80
|
rspec-core (~> 3.8.0)
|
80
81
|
rspec-expectations (~> 3.8.0)
|
@@ -88,27 +89,30 @@ GEM
|
|
88
89
|
diff-lcs (>= 1.2.0, < 2.0)
|
89
90
|
rspec-support (~> 3.8.0)
|
90
91
|
rspec-support (3.8.2)
|
91
|
-
rubocop (
|
92
|
-
jaro_winkler (~> 1.5.1)
|
92
|
+
rubocop (1.23.0)
|
93
93
|
parallel (~> 1.10)
|
94
|
-
parser (>=
|
94
|
+
parser (>= 3.0.0.0)
|
95
95
|
rainbow (>= 2.2.2, < 4.0)
|
96
|
+
regexp_parser (>= 1.8, < 3.0)
|
96
97
|
rexml
|
98
|
+
rubocop-ast (>= 1.12.0, < 2.0)
|
97
99
|
ruby-progressbar (~> 1.7)
|
98
|
-
unicode-display_width (>= 1.4.0, <
|
99
|
-
|
100
|
-
|
100
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
101
|
+
rubocop-ast (1.30.0)
|
102
|
+
parser (>= 3.2.1.0)
|
103
|
+
ruby-progressbar (1.13.0)
|
101
104
|
shellany (0.0.1)
|
102
105
|
simplecov (0.13.0)
|
103
106
|
docile (~> 1.1.0)
|
104
107
|
json (>= 1.8, < 3)
|
105
108
|
simplecov-html (~> 0.10.0)
|
106
109
|
simplecov-html (0.10.2)
|
110
|
+
strscan (3.1.0)
|
107
111
|
tdiff (0.3.4)
|
108
112
|
test-unit (3.3.3)
|
109
113
|
power_assert
|
110
114
|
thor (0.20.3)
|
111
|
-
unicode-display_width (
|
115
|
+
unicode-display_width (2.5.0)
|
112
116
|
|
113
117
|
PLATFORMS
|
114
118
|
ruby
|
@@ -122,12 +126,12 @@ DEPENDENCIES
|
|
122
126
|
pry
|
123
127
|
rake
|
124
128
|
rspec
|
125
|
-
rubocop (= 0
|
129
|
+
rubocop (= 1.23.0)
|
126
130
|
simplecov
|
127
131
|
test-unit
|
128
132
|
|
129
133
|
RUBY VERSION
|
130
|
-
ruby
|
134
|
+
ruby 3.1.2p20
|
131
135
|
|
132
136
|
BUNDLED WITH
|
133
|
-
2.
|
137
|
+
2.2.21
|
data/Guardfile
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
#
|
16
16
|
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
17
17
|
|
18
|
-
#
|
18
|
+
# NOTE: The cmd option is now required due to the increasing number of ways
|
19
19
|
# rspec may be run, below are examples of the most common uses.
|
20
20
|
# * bundler: 'bundle exec rspec'
|
21
21
|
# * bundler binstubs: 'bin/rspec'
|
data/fhir_stu3_models.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
|
+
spec.required_ruby_version = '>= 3.0.0'
|
24
25
|
spec.add_dependency 'nokogiri', '>= 1.11.4'
|
25
26
|
spec.add_dependency 'date_time_precision', '>= 0.8'
|
26
27
|
spec.add_dependency 'bcp47', '>= 0.3'
|
@@ -33,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
33
34
|
spec.add_development_dependency 'rspec'
|
34
35
|
spec.add_development_dependency 'simplecov'
|
35
36
|
spec.add_development_dependency 'nokogiri-diff'
|
36
|
-
spec.add_development_dependency 'rubocop', '0
|
37
|
+
spec.add_development_dependency 'rubocop', '1.23.0'
|
37
38
|
spec.add_development_dependency 'guard-rspec'
|
38
39
|
spec.add_development_dependency 'guard-test'
|
39
40
|
end
|
@@ -45,6 +45,7 @@ module FHIR
|
|
45
45
|
def self.type_definition(type_name)
|
46
46
|
return nil if type_name.nil?
|
47
47
|
return @@cache[type_name] if @@cache[type_name]
|
48
|
+
|
48
49
|
definition = types.find { |x| x['xmlId'] == type_name || x['name'] == type_name || x['url'] == type_name }
|
49
50
|
@@cache[type_name] = FHIR::STU3::StructureDefinition.new(definition) if definition
|
50
51
|
@@cache[type_name]
|
@@ -74,6 +75,7 @@ module FHIR
|
|
74
75
|
def self.resource_definition(resource_name)
|
75
76
|
return nil if resource_name.nil?
|
76
77
|
return @@cache[resource_name] if @@cache[resource_name]
|
78
|
+
|
77
79
|
definition = resources.find { |x| x['xmlId'] == resource_name || x['name'] == resource_name || x['url'] == resource_name }
|
78
80
|
@@cache[resource_name] = FHIR::STU3::StructureDefinition.new(definition) if definition
|
79
81
|
@@cache[resource_name]
|
@@ -104,8 +106,10 @@ module FHIR
|
|
104
106
|
|
105
107
|
def self.extension_definition(extension_name)
|
106
108
|
return nil if extension_name.nil?
|
109
|
+
|
107
110
|
extension = extensions.find { |x| x['xmlId'] == extension_name || x['name'] == extension_name || x['url'] == extension_name }
|
108
111
|
return nil if extension.nil?
|
112
|
+
|
109
113
|
FHIR::STU3::StructureDefinition.new(extension)
|
110
114
|
end
|
111
115
|
deprecate :get_extension_definition, :extension_definition
|
@@ -113,8 +117,10 @@ module FHIR
|
|
113
117
|
# Get the basetype (String) for a given profile or extension.
|
114
118
|
def self.basetype(uri)
|
115
119
|
return nil if uri.nil?
|
120
|
+
|
116
121
|
defn = profiles.detect { |x| x['url'] == uri } || extensions.detect { |x| x['url'] == uri }
|
117
122
|
return nil if defn.nil?
|
123
|
+
|
118
124
|
defn['baseType']
|
119
125
|
end
|
120
126
|
deprecate :get_basetype, :basetype
|
@@ -122,14 +128,17 @@ module FHIR
|
|
122
128
|
# Get the StructureDefinition for a given profile.
|
123
129
|
def self.profile(uri)
|
124
130
|
return nil if uri.nil?
|
131
|
+
|
125
132
|
defn = profiles.detect { |x| x['url'] == uri } || extensions.detect { |x| x['url'] == uri }
|
126
133
|
return nil if defn.nil?
|
134
|
+
|
127
135
|
FHIR::STU3::StructureDefinition.new(defn)
|
128
136
|
end
|
129
137
|
deprecate :get_profile, :profile
|
130
138
|
|
131
139
|
def self.profiles_for_resource(resource_name)
|
132
140
|
return nil if resource_name.nil?
|
141
|
+
|
133
142
|
profiles.select { |x| x['baseType'] == resource_name }.map { |x| FHIR::STU3::StructureDefinition.new(x) }
|
134
143
|
end
|
135
144
|
deprecate :get_profiles_for_resource, :profile_for_resource
|
@@ -137,6 +146,7 @@ module FHIR
|
|
137
146
|
# Get a dynamically generated class for a given profile.
|
138
147
|
def self.get_profile_class(uri)
|
139
148
|
return nil if uri.nil?
|
149
|
+
|
140
150
|
load_profiles
|
141
151
|
load_extensions
|
142
152
|
|
@@ -162,7 +172,7 @@ module FHIR
|
|
162
172
|
load f
|
163
173
|
# set the return class type
|
164
174
|
klass = Object.const_get("FHIR::STU3::Profile::#{id}::#{type}")
|
165
|
-
rescue
|
175
|
+
rescue StandardError
|
166
176
|
FHIR::STU3.logger.error "Failed to generate class for profile #{uri}"
|
167
177
|
end
|
168
178
|
# unlink the file so it can be garbage collected
|
@@ -198,6 +208,7 @@ module FHIR
|
|
198
208
|
def self.get_codes(uri)
|
199
209
|
return nil if uri.nil?
|
200
210
|
return @@cache[uri] if @@cache[uri]
|
211
|
+
|
201
212
|
valueset = expansions.find { |x| x['url'] == uri } || valuesets.find { |x| x['url'] == uri && x['resourceType'] == 'ValueSet' }
|
202
213
|
unless valueset.nil?
|
203
214
|
@@cache[uri] = {}
|
@@ -230,6 +241,7 @@ module FHIR
|
|
230
241
|
# If one can't be found, return nil
|
231
242
|
def self.get_display(uri, code)
|
232
243
|
return nil if uri.nil? || code.nil?
|
244
|
+
|
233
245
|
valuesets_and_expansions = expansions.select { |ex| ex['compose']['include'].detect { |i| i['system'] == uri } }
|
234
246
|
valuesets_and_expansions += valuesets.select { |vs| vs['url'] == uri }
|
235
247
|
code_hash = nil
|
@@ -269,6 +281,7 @@ module FHIR
|
|
269
281
|
|
270
282
|
def self.search_parameters(type_name)
|
271
283
|
return nil if type_name.nil?
|
284
|
+
|
272
285
|
search_params.select { |p| p['base'].include?(type_name) && p['xpath'] && !p['xpath'].include?('extension') }.map { |p| p['code'] }
|
273
286
|
end
|
274
287
|
deprecate :get_search_parameters, :search_parameters
|
@@ -23,7 +23,7 @@ module FHIR
|
|
23
23
|
def serialize
|
24
24
|
hash = {}
|
25
25
|
instance_variables.each do |v|
|
26
|
-
hash[v.to_s[1
|
26
|
+
hash[v.to_s[1..]] = instance_variable_get(v)
|
27
27
|
end
|
28
28
|
hash.delete('name')
|
29
29
|
hash.keep_if do |_key, value|
|
@@ -37,7 +37,7 @@ module FHIR
|
|
37
37
|
|
38
38
|
def fix_name(name)
|
39
39
|
fix = nil
|
40
|
-
fix = "local_#{name}" if
|
40
|
+
fix = "local_#{name}" if ['class', 'method', 'resourceType'].include?(name)
|
41
41
|
fix
|
42
42
|
end
|
43
43
|
end
|
@@ -119,6 +119,7 @@ module FHIR
|
|
119
119
|
# skip the first element
|
120
120
|
next if element['path'] == path_type
|
121
121
|
next unless element['type']
|
122
|
+
|
122
123
|
unique_types = element['type'].map { |t| t['code'] }.uniq
|
123
124
|
if unique_types.include?('Element') || unique_types.include?('BackboneElement')
|
124
125
|
child_templates << element['path']
|
@@ -128,6 +129,7 @@ module FHIR
|
|
128
129
|
child_templates.each do |child_name|
|
129
130
|
child_fixed_name = cap_first(child_name.gsub("#{type_name}.", ''))
|
130
131
|
next if child_fixed_name.include?('.')
|
132
|
+
|
131
133
|
child_def = { 'id' => child_fixed_name, 'snapshot' => { 'element' => [] } }
|
132
134
|
# Copy the element definitions for the child structure
|
133
135
|
structure_def['snapshot']['element'].each do |element|
|
@@ -182,13 +184,13 @@ module FHIR
|
|
182
184
|
field.path = element['path'].gsub(path_type, type_name)
|
183
185
|
field.type = data_type
|
184
186
|
field.type = 'Extension' if field.path.end_with?('extension')
|
185
|
-
field.type_profiles = profiles if
|
187
|
+
field.type_profiles = profiles if ['Reference', 'Extension'].include?(data_type)
|
186
188
|
field.min = element['min']
|
187
189
|
field.max = element['max']
|
188
190
|
field.max = field.max.to_i
|
189
191
|
field.max = '*' if element['max'] == '*'
|
190
192
|
|
191
|
-
if
|
193
|
+
if ['code', 'Coding', 'CodeableConcept'].include?(data_type) && element['binding']
|
192
194
|
field.binding = element['binding']
|
193
195
|
field.binding['uri'] = field.binding['valueSetUri']
|
194
196
|
field.binding['uri'] = field.binding['valueSetReference'] if field.binding['uri'].nil?
|
@@ -203,9 +205,9 @@ module FHIR
|
|
203
205
|
if field.valid_codes.empty? && field.binding['uri'] && !field.binding['uri'].end_with?('bcp47') && !field.binding['uri'].end_with?('bcp13.txt')
|
204
206
|
FHIR::STU3.logger.warn " MISSING EXPANSION -- #{field.path} #{field.min}..#{field.max}: #{field.binding['uri']} (#{field.binding['strength']})"
|
205
207
|
@missing_expansions = true
|
206
|
-
@missing_required_expansion
|
208
|
+
@missing_required_expansion ||= (field.binding['strength'] == 'required')
|
207
209
|
end
|
208
|
-
elsif
|
210
|
+
elsif ['Element', 'BackboneElement'].include?(data_type)
|
209
211
|
# This is a nested structure or class
|
210
212
|
field.type = "#{hierarchy.join('::')}::#{cap_first(field.name)}"
|
211
213
|
end
|
@@ -216,7 +218,7 @@ module FHIR
|
|
216
218
|
field = FHIR::STU3::Field.new(field_base_name)
|
217
219
|
field.path = element['path'].gsub(path_type, type_name)
|
218
220
|
field.type = element['contentReference']
|
219
|
-
field.type = field.type[1
|
221
|
+
field.type = field.type[1..] if field.type[0] == '#'
|
220
222
|
if hierarchy.last == field.type
|
221
223
|
# reference to self
|
222
224
|
field.type = hierarchy.join('::').to_s
|