fhir_stu3_models 3.1.1 → 3.2.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 +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
|