cfoundry 0.4.2 → 0.4.3
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.
- data/lib/cfoundry/v2/model.rb +7 -1
- data/lib/cfoundry/v2/model_magic.rb +40 -8
- data/lib/cfoundry/version.rb +1 -1
- metadata +30 -32
data/lib/cfoundry/v2/model.rb
CHANGED
@@ -7,7 +7,7 @@ module CFoundry::V2
|
|
7
7
|
class Model
|
8
8
|
extend ModelMagic
|
9
9
|
|
10
|
-
attr_accessor :guid, :cache
|
10
|
+
attr_accessor :guid, :cache, :changes
|
11
11
|
|
12
12
|
def initialize(guid, client, manifest = nil, partial = false)
|
13
13
|
@guid = guid
|
@@ -16,6 +16,7 @@ module CFoundry::V2
|
|
16
16
|
@partial = partial
|
17
17
|
@cache = {}
|
18
18
|
@diff = {}
|
19
|
+
@changes = {}
|
19
20
|
end
|
20
21
|
|
21
22
|
def manifest
|
@@ -26,6 +27,10 @@ module CFoundry::V2
|
|
26
27
|
@partial
|
27
28
|
end
|
28
29
|
|
30
|
+
def changed?
|
31
|
+
!@changes.empty?
|
32
|
+
end
|
33
|
+
|
29
34
|
def inspect
|
30
35
|
"\#<#{self.class.name} '#@guid'>"
|
31
36
|
end
|
@@ -39,6 +44,7 @@ module CFoundry::V2
|
|
39
44
|
@partial = false
|
40
45
|
@cache = {}
|
41
46
|
@diff = {}
|
47
|
+
@changes = {}
|
42
48
|
end
|
43
49
|
|
44
50
|
# this does a bit of extra processing to allow for
|
@@ -157,7 +157,11 @@ module CFoundry::V2
|
|
157
157
|
|
158
158
|
@manifest ||= {}
|
159
159
|
@manifest[:entity] ||= {}
|
160
|
+
|
161
|
+
old = @manifest[:entity][name]
|
162
|
+
@changes[name] = [old, val] if old != val
|
160
163
|
@manifest[:entity][name] = val
|
164
|
+
|
161
165
|
@diff[name] = val
|
162
166
|
end
|
163
167
|
end
|
@@ -201,17 +205,28 @@ module CFoundry::V2
|
|
201
205
|
manifest[:entity][:"#{name}_url"]
|
202
206
|
end
|
203
207
|
|
204
|
-
define_method(:"#{name}=") do |
|
205
|
-
|
206
|
-
ModelMagic.validate_type(x, CFoundry::V2.const_get(kls))
|
207
|
-
end
|
208
|
+
define_method(:"#{name}=") do |val|
|
209
|
+
klass = CFoundry::V2.const_get(kls)
|
208
210
|
|
209
|
-
|
211
|
+
unless has_default && val == default
|
212
|
+
ModelMagic.validate_type(val, klass)
|
213
|
+
end
|
210
214
|
|
211
215
|
@manifest ||= {}
|
212
216
|
@manifest[:entity] ||= {}
|
217
|
+
|
218
|
+
old = @manifest[:entity][:"#{name}_guid"]
|
219
|
+
if old != val.guid
|
220
|
+
old_obj = klass.new(@client, old, @manifest[:entity][name])
|
221
|
+
|
222
|
+
@changes[name] = [old_obj, val]
|
223
|
+
end
|
224
|
+
|
225
|
+
@cache[name] = val
|
226
|
+
|
227
|
+
@manifest[:entity][name] = val.manifest
|
213
228
|
@manifest[:entity][:"#{name}_guid"] =
|
214
|
-
@diff[:"#{name}_guid"] =
|
229
|
+
@diff[:"#{name}_guid"] = val && val.guid
|
215
230
|
end
|
216
231
|
end
|
217
232
|
|
@@ -295,12 +310,29 @@ module CFoundry::V2
|
|
295
310
|
end
|
296
311
|
|
297
312
|
define_method(:"#{plural}=") do |xs|
|
298
|
-
|
313
|
+
klass = CFoundry::V2.const_get(kls)
|
299
314
|
|
300
|
-
|
315
|
+
ModelMagic.validate_type(xs, [klass])
|
301
316
|
|
302
317
|
@manifest ||= {}
|
303
318
|
@manifest[:entity] ||= {}
|
319
|
+
|
320
|
+
old = @manifest[:entity][:"#{singular}_guids"]
|
321
|
+
if old != xs.collect(&:guid)
|
322
|
+
old_objs =
|
323
|
+
if all = @manifest[:entity][plural]
|
324
|
+
all.collect do |m|
|
325
|
+
klass.new(@client, m[:metadata][:guid], m)
|
326
|
+
end
|
327
|
+
else
|
328
|
+
old.collect { |id| klass.new(@client, id) }
|
329
|
+
end
|
330
|
+
|
331
|
+
@changes[name] = [old_objs, val]
|
332
|
+
end
|
333
|
+
|
334
|
+
@cache[plural] = xs
|
335
|
+
|
304
336
|
@manifest[:entity][:"#{singular}_guids"] =
|
305
337
|
@diff[:"#{singular}_guids"] = xs.collect(&:guid)
|
306
338
|
end
|
data/lib/cfoundry/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoundry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 3
|
10
|
+
version: 0.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Suraci
|
@@ -15,8 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
19
|
-
default_executable:
|
18
|
+
date: 2012-12-05 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: multipart-post
|
@@ -111,44 +110,43 @@ extra_rdoc_files: []
|
|
111
110
|
files:
|
112
111
|
- LICENSE
|
113
112
|
- Rakefile
|
114
|
-
- lib/cfoundry.rb
|
113
|
+
- lib/cfoundry/baseclient.rb
|
114
|
+
- lib/cfoundry/chatty_hash.rb
|
115
115
|
- lib/cfoundry/client.rb
|
116
|
-
- lib/cfoundry/version.rb
|
117
116
|
- lib/cfoundry/errors.rb
|
118
117
|
- lib/cfoundry/uaaclient.rb
|
119
|
-
- lib/cfoundry/
|
120
|
-
- lib/cfoundry/
|
118
|
+
- lib/cfoundry/upload_helpers.rb
|
119
|
+
- lib/cfoundry/v1/app.rb
|
120
|
+
- lib/cfoundry/v1/base.rb
|
121
|
+
- lib/cfoundry/v1/client.rb
|
122
|
+
- lib/cfoundry/v1/framework.rb
|
123
|
+
- lib/cfoundry/v1/runtime.rb
|
124
|
+
- lib/cfoundry/v1/service.rb
|
125
|
+
- lib/cfoundry/v1/service_instance.rb
|
126
|
+
- lib/cfoundry/v1/user.rb
|
127
|
+
- lib/cfoundry/v2/app.rb
|
128
|
+
- lib/cfoundry/v2/base.rb
|
121
129
|
- lib/cfoundry/v2/client.rb
|
122
|
-
- lib/cfoundry/v2/
|
123
|
-
- lib/cfoundry/v2/user.rb
|
130
|
+
- lib/cfoundry/v2/domain.rb
|
124
131
|
- lib/cfoundry/v2/framework.rb
|
132
|
+
- lib/cfoundry/v2/model.rb
|
125
133
|
- lib/cfoundry/v2/model_magic.rb
|
126
|
-
- lib/cfoundry/v2/service_auth_token.rb
|
127
|
-
- lib/cfoundry/v2/space.rb
|
128
|
-
- lib/cfoundry/v2/app.rb
|
129
|
-
- lib/cfoundry/v2/service_plan.rb
|
130
|
-
- lib/cfoundry/v2/base.rb
|
131
134
|
- lib/cfoundry/v2/organization.rb
|
132
135
|
- lib/cfoundry/v2/route.rb
|
133
|
-
- lib/cfoundry/v2/domain.rb
|
134
136
|
- lib/cfoundry/v2/runtime.rb
|
137
|
+
- lib/cfoundry/v2/service.rb
|
138
|
+
- lib/cfoundry/v2/service_auth_token.rb
|
139
|
+
- lib/cfoundry/v2/service_binding.rb
|
135
140
|
- lib/cfoundry/v2/service_instance.rb
|
136
|
-
- lib/cfoundry/
|
137
|
-
- lib/cfoundry/
|
138
|
-
- lib/cfoundry/
|
139
|
-
- lib/cfoundry/
|
140
|
-
- lib/cfoundry/v1/user.rb
|
141
|
-
- lib/cfoundry/v1/framework.rb
|
142
|
-
- lib/cfoundry/v1/app.rb
|
143
|
-
- lib/cfoundry/v1/base.rb
|
144
|
-
- lib/cfoundry/v1/runtime.rb
|
145
|
-
- lib/cfoundry/v1/service_instance.rb
|
141
|
+
- lib/cfoundry/v2/service_plan.rb
|
142
|
+
- lib/cfoundry/v2/space.rb
|
143
|
+
- lib/cfoundry/v2/user.rb
|
144
|
+
- lib/cfoundry/version.rb
|
146
145
|
- lib/cfoundry/zip.rb
|
147
|
-
- lib/cfoundry
|
146
|
+
- lib/cfoundry.rb
|
147
|
+
- spec/client_spec.rb
|
148
148
|
- spec/helpers.rb
|
149
149
|
- spec/Rakefile
|
150
|
-
- spec/client_spec.rb
|
151
|
-
has_rdoc: true
|
152
150
|
homepage: http://cloudfoundry.com/
|
153
151
|
licenses: []
|
154
152
|
|
@@ -178,11 +176,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
176
|
requirements: []
|
179
177
|
|
180
178
|
rubyforge_project: cfoundry
|
181
|
-
rubygems_version: 1.
|
179
|
+
rubygems_version: 1.8.24
|
182
180
|
signing_key:
|
183
181
|
specification_version: 3
|
184
182
|
summary: High-level library for working with the Cloud Foundry API.
|
185
183
|
test_files:
|
184
|
+
- spec/client_spec.rb
|
186
185
|
- spec/helpers.rb
|
187
186
|
- spec/Rakefile
|
188
|
-
- spec/client_spec.rb
|