fhir_client 3.0.6 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3ea696abc5f4af913b2cd11a96299090f49fcd5859e53631bff94e48e68a665
4
- data.tar.gz: 0e3b5a443b3f71bd73c0183f964a832b6eabe67e6e4b2e2b961087cefd320dee
3
+ metadata.gz: e672a83cc2c6d38d9b7b907e593fcee05ecead0a75320f79a8a65627deff0df7
4
+ data.tar.gz: 79219638d996eaa08b9ec7b38957da73eb1e6e5c5d26b428480178ee2e939fc4
5
5
  SHA512:
6
- metadata.gz: 2099e5b55c14de2726db9cac85f042f1974d51f6621fdd3589c6c25e52d4f6a05f2a375dde770b60b1aa8b0cf783e714714fb989901ff2e3c4e1314e43aa0312
7
- data.tar.gz: 9ad4e0543eda624b54653aa6ac7cfa9bb4371426757af02a1df4012e1b33cc80083d74940f4758f333d5f158588ee1fa1a3663a06e0339109014109c55f57f5f
6
+ metadata.gz: 904a33c45ee559acfbc0372435c9ee31e76412ef840d3616ae6f8e584aa9381d8a43cb81d937a3818891a82fe26ca5acbcaa74778602bbbe42c01c78d2e7ea35
7
+ data.tar.gz: ad3ec868c7c139105890e4091e1780efffb30649df4b7e63a5fbc8ed599dcfa249cfac2d7b84f12236712a32ec4d69b4a58c5d8fb1891330a6fc30907dfddae2
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- ruby RUBY_VERSION
3
2
 
4
3
  # gem 'fhir_models', :path => '../fhir_models'
5
4
  # gem 'fhir_dstu2_models', :path => '../fhir_dstu2_models'
@@ -1,43 +1,77 @@
1
1
  module FHIR
2
2
  module ReferenceExtras
3
+ def parts
4
+ return if contained?
5
+ if has_version?
6
+ *base_uri, type, id, _, version = reference.to_s.split '/'
7
+ else
8
+ *base_uri, type, id = reference.to_s.split '/'
9
+ end
10
+ {
11
+ base_uri: (base_uri.empty?) ? nil : base_uri.join('/'),
12
+ type: type,
13
+ id: id,
14
+ version: version
15
+ }
16
+ end
17
+
3
18
  def contained?
4
19
  reference.to_s.start_with?('#')
5
20
  end
6
21
 
22
+ def absolute?
23
+ /^https?:\/\//.match reference.to_s
24
+ end
25
+
26
+ def relative?
27
+ !(reference.blank? || contained? || absolute?)
28
+ end
29
+
7
30
  def has_version?
8
- /history/.match reference.to_s
31
+ /_history/.match reference.to_s
9
32
  end
10
33
 
11
34
  def reference_id
12
35
  if contained?
13
36
  reference.to_s[1..-1]
14
- elsif has_version?
15
- reference.to_s.split('/').second
16
37
  else
17
- reference.to_s.split('/').last
38
+ parts[:id]
18
39
  end
19
40
  end
20
41
 
21
42
  def type
22
- reference.to_s.split('/').first unless contained?
43
+ return if contained?
44
+ parts[:type]
23
45
  end
24
46
 
25
47
  def version_id
26
- if has_version?
27
- reference.to_s.split('/').last
28
- end
48
+ return if contained?
49
+ parts[:version]
50
+ end
51
+
52
+ def base_uri
53
+ return if !absolute? || contained?
54
+ parts[:base_uri]
29
55
  end
30
56
 
31
57
  def read
32
- return if contained? || type.blank? || (id.blank? && reference.blank?)
33
- rid = id || reference_id
34
- resource_class.read(rid, client)
58
+ return if !(relative? || absolute?)
59
+ if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
60
+ read_client = client
61
+ else
62
+ read_client = FHIR::Client.new base_uri, default_format: client.default_format
63
+ end
64
+ resource_class.read(reference_id, read_client)
35
65
  end
36
66
 
37
67
  def vread
38
- return if contained? || type.blank? || (id.blank? && reference.blank?) || version_id.blank?
39
- rid = id || reference_id
40
- resource_class.vread(rid, version_id, client)
68
+ return if !(relative? || absolute?) || version_id.blank?
69
+ if relative? || reference == client.full_resource_url(resource: resource_class, id: reference_id)
70
+ read_client = client
71
+ else
72
+ read_client = FHIR::Client.new base_uri, default_format: client.default_format
73
+ end
74
+ resource_class.vread(reference_id, version_id, read_client)
41
75
  end
42
76
 
43
77
  end
@@ -1,5 +1,5 @@
1
1
  module FHIR
2
2
  class Client
3
- VERSION = '3.0.6'
3
+ VERSION = '3.0.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fhir_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.6
4
+ version: 3.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andre Quina
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2018-09-28 00:00:00.000000000 Z
13
+ date: 2018-12-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport