cistern 2.0.3 → 2.0.4

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: 62a24a469ced62056ea61f768a991144ea7dad32
4
- data.tar.gz: 30ca44a90ed296c9018078bf7e7ea4ee47e0925f
3
+ metadata.gz: 51ecc36c328ba3a9a404a952c76144db023edfa3
4
+ data.tar.gz: 0a7a965f9b3a3c37b78cd78802456537e251e3b8
5
5
  SHA512:
6
- metadata.gz: e6099df1553e5ffe2545dacf6b5b0ed30962aa8a34fa5411c657e6346cf38a129d8905d2d49e8b1eb64ef105acaccdb04013acd5791e9e4e8899305a7864a333
7
- data.tar.gz: ea06d0083d50711092a437b8a3af93de9ee947138c273670a45553690d2c4944214a5d2e93e778fefaead17744f9688f41333cf8de0cc1318453c23df35dec43
6
+ metadata.gz: f668e16c9431a22a14fcc628872b337835c9873fde7e75fc9099f6eb257d4c5cf30657e4b0513efad785d567be9ef2650d29db5d2acabc9d2dd6cdc232e4845f
7
+ data.tar.gz: ecf04f9577df53a188eb09496d34c01a6a8696af93377a5ef45982afe6f63d5f96ba1af4c1d80d4cf585794c53c600524b42c6d8cc9a8b9de000289f3f85707f
@@ -173,11 +173,21 @@ module Cistern::Attributes
173
173
  end
174
174
 
175
175
  def identity
176
- send(self.class.instance_variable_get('@identity'))
176
+ key = self.class.instance_variable_get('@identity')
177
+
178
+ if key
179
+ public_send(key)
180
+ end
177
181
  end
178
182
 
179
183
  def identity=(new_identity)
180
- send("#{self.class.instance_variable_get('@identity')}=", new_identity)
184
+ key = self.class.instance_variable_get('@identity')
185
+
186
+ if key
187
+ public_send("#{key}=", new_identity)
188
+ else
189
+ raise ArgumentError, "Identity not specified"
190
+ end
181
191
  end
182
192
 
183
193
  def merge_attributes(new_attributes = {})
@@ -222,7 +232,7 @@ module Cistern::Attributes
222
232
  end
223
233
 
224
234
  def new_record?
225
- !identity
235
+ identity.nil?
226
236
  end
227
237
 
228
238
  # check that the attributes specified in args exist and is not nil
@@ -257,7 +267,7 @@ module Cistern::Attributes
257
267
  protected
258
268
 
259
269
  def missing_attributes(args)
260
- ([:service] | args).select{|arg| send("#{arg}").nil?}
270
+ ([:service] | args).select { |arg| send("#{arg}").nil? }
261
271
  end
262
272
 
263
273
  def changed!(attribute, from, to)
@@ -1,3 +1,3 @@
1
1
  module Cistern
2
- VERSION = "2.0.3"
2
+ VERSION = "2.0.4"
3
3
  end
data/spec/model_spec.rb CHANGED
@@ -20,6 +20,23 @@ describe "Cistern::Model" do
20
20
  end
21
21
  end
22
22
 
23
+ context "#new_record?" do
24
+ it "does not require identity" do
25
+ identity_less = Class.new(Sample::Model)
26
+
27
+ expect(identity_less.new.new_record?).to eq(true)
28
+ end
29
+
30
+ it "is false if identity is set" do
31
+ identity_full = Class.new(Sample::Model) {
32
+ identity :id
33
+ }
34
+
35
+ expect(identity_full.new.new_record?).to eq(true)
36
+ expect(identity_full.new(id: 1).new_record?).to eq(false)
37
+ end
38
+ end
39
+
23
40
  it "should set singular resource service method" do
24
41
  class ModelService < Cistern::Service
25
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cistern
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-27 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: API client framework extracted from Fog
14
14
  email: