lhs 1.3.0 → 1.3.1

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
  SHA1:
3
- metadata.gz: 4d2fe9d241de70e1547f04ecc340becf4758a22e
4
- data.tar.gz: 9203ee6326411236cf93485beb289862fd3ec060
3
+ metadata.gz: bd943de16b65c840dc1b4b5c05ff7a8909dcf2d7
4
+ data.tar.gz: ef07ef221571d7de7c2a426983b1fe060b2868c9
5
5
  SHA512:
6
- metadata.gz: 6d5169f5bc32a55a05e0ed1ffbe5e236e79f65714a7f7ae177516517c0dbd3d6f06082dfb5393e3188294db94b9fb958fe9bda6459ef1bfc3da77e13a8fc4c2f
7
- data.tar.gz: 6d86b6cc756b977d07a991794b91665b82b0e426ff5d0321a1f4dcad0bfdbdfb1ea4bbdce65adf62015675c07d54e1ae25c7736c192da863f9ed7131c4b2e56d
6
+ metadata.gz: c1e7a9dec8966d5fcef164e81ab77b8e39e8d07d2991ccd94794c606b1615f80f1a312c0799a7d0e516cee408a2171ea312ea68013ce6148cfbd74e7f0ac9004
7
+ data.tar.gz: 45ac1316587e3b26fe8c21bee179fe0a021cb7616eac8ec9cebf2c2869d646db007864cfa2cb8d2200c261c079d2ba5f86b370d327b06df8347e8d769883d995
@@ -60,14 +60,25 @@ class LHS::Service
60
60
  else
61
61
  url_option_for(data, key)
62
62
  end
63
+ addition = load_includes(includes, options, key, data)
64
+ extend(data, addition, key)
65
+ end
66
+
67
+ # Load additional resources that are requested with include
68
+ def load_includes(includes, options, key, data)
63
69
  service = service_for_options(options) || self
64
70
  options = convert_options_to_endpoints(options) if service_for_options(options)
65
- addition = if (further_keys = includes.fetch(key, nil) if includes.is_a? Hash)
66
- service.class.includes(further_keys).instance.request(options)
71
+ further_keys = includes.fetch(key, nil) if includes.is_a? Hash
72
+ service_class = if further_keys
73
+ service.class.includes(further_keys)
67
74
  else
68
- service.class.includes(nil).instance.request(options)
75
+ service.class.includes(nil)
76
+ end
77
+ begin
78
+ service_class.instance.request(options)
79
+ rescue LHC::NotFound
80
+ LHS::Data.new({}, data, service)
69
81
  end
70
- extend(data, addition, key)
71
82
  end
72
83
 
73
84
  # Merge explicit params nested in 'params' namespace with original hash.
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -115,4 +115,27 @@ describe LHS::Service do
115
115
  end
116
116
  end
117
117
  end
118
+
119
+ context 'links pointing to nowhere' do
120
+
121
+ it 'sets nil for links that cannot be included' do
122
+ class Feedback < LHS::Service
123
+ endpoint ':datastore/feedbacks'
124
+ endpoint ':datastore/feedbacks/:id'
125
+ end
126
+
127
+ stub_request(:get, "#{datastore}/feedbacks/123")
128
+ .to_return(status: 200, body: {
129
+ 'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
130
+ 'campaign' => { 'href' => "#{datastore}/content-ads/51dfc5690cf271c375c5a12d" }
131
+ }.to_json)
132
+
133
+ stub_request(:get, "#{datastore}/content-ads/51dfc5690cf271c375c5a12d")
134
+ .to_return(status: 404)
135
+
136
+ feedback = Feedback.includes(campaign: :entry).find(123)
137
+ expect(feedback.campaign._raw.keys.count).to eq 1
138
+ expect(feedback.campaign.href).to be
139
+ end
140
+ end
118
141
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - local.ch