cfoundry 0.3.3 → 0.3.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.
- data/lib/cfoundry/chatty_hash.rb +34 -0
- data/lib/cfoundry/v1/app.rb +19 -2
- data/lib/cfoundry/v1/client.rb +6 -1
- data/lib/cfoundry/v2/app.rb +17 -0
- data/lib/cfoundry/version.rb +1 -1
- metadata +5 -4
@@ -0,0 +1,34 @@
|
|
1
|
+
module CFoundry
|
2
|
+
class ChattyHash
|
3
|
+
include Enumerable
|
4
|
+
|
5
|
+
def initialize(callback, hash = {})
|
6
|
+
@callback = callback
|
7
|
+
@hash = hash
|
8
|
+
end
|
9
|
+
|
10
|
+
def [](name)
|
11
|
+
@hash[name]
|
12
|
+
end
|
13
|
+
|
14
|
+
def []=(name, value)
|
15
|
+
@hash[name] = value
|
16
|
+
@callback.call(self)
|
17
|
+
value
|
18
|
+
end
|
19
|
+
|
20
|
+
def each(&blk)
|
21
|
+
@hash.each(&blk)
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete(key)
|
25
|
+
value = @hash.delete(key)
|
26
|
+
@callback.call(self)
|
27
|
+
value
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_json(*args)
|
31
|
+
@hash.to_json(*args)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/cfoundry/v1/app.rb
CHANGED
@@ -4,6 +4,7 @@ require "pathname"
|
|
4
4
|
require "tmpdir"
|
5
5
|
|
6
6
|
require "cfoundry/zip"
|
7
|
+
require "cfoundry/chatty_hash"
|
7
8
|
|
8
9
|
require "cfoundry/v1/framework"
|
9
10
|
require "cfoundry/v1/runtime"
|
@@ -183,13 +184,29 @@ module CFoundry::V1
|
|
183
184
|
state == "STARTED"
|
184
185
|
end
|
185
186
|
|
187
|
+
def env
|
188
|
+
e = manifest[:env] || []
|
189
|
+
|
190
|
+
env = {}
|
191
|
+
e.each do |pair|
|
192
|
+
name, val = pair.split("=", 2)
|
193
|
+
env[name] = val
|
194
|
+
end
|
195
|
+
|
196
|
+
CFoundry::ChattyHash.new(method(:env=), env)
|
197
|
+
end
|
198
|
+
|
199
|
+
def env=(hash)
|
200
|
+
@manifest ||= {}
|
201
|
+
@manifest[:env] = hash.collect { |k, v| "#{k}=#{v}" }
|
202
|
+
end
|
203
|
+
|
186
204
|
{ :total_instances => :instances,
|
187
205
|
:state => :state,
|
188
206
|
:status => :state,
|
189
207
|
:services => :services,
|
190
208
|
:uris => :uris,
|
191
|
-
:urls => :uris
|
192
|
-
:env => :env
|
209
|
+
:urls => :uris
|
193
210
|
}.each do |meth, attr|
|
194
211
|
define_method(meth) do
|
195
212
|
manifest[attr]
|
data/lib/cfoundry/v1/client.rb
CHANGED
@@ -189,7 +189,12 @@ module CFoundry::V1
|
|
189
189
|
|
190
190
|
# TODO: remove once v2 allows filtering by name
|
191
191
|
# see V2::Client#app_by_name
|
192
|
-
|
192
|
+
def app_by_name(name)
|
193
|
+
app = app(name)
|
194
|
+
if app.exists?
|
195
|
+
app
|
196
|
+
end
|
197
|
+
end
|
193
198
|
|
194
199
|
# Retrieve all of the current user's services.
|
195
200
|
def service_instances
|
data/lib/cfoundry/v2/app.rb
CHANGED
@@ -2,8 +2,11 @@ require "fileutils"
|
|
2
2
|
require "digest/sha1"
|
3
3
|
require "pathname"
|
4
4
|
require "tmpdir"
|
5
|
+
require "json"
|
5
6
|
|
6
7
|
require "cfoundry/zip"
|
8
|
+
require "cfoundry/chatty_hash"
|
9
|
+
|
7
10
|
require "cfoundry/v2/model"
|
8
11
|
|
9
12
|
module CFoundry::V2
|
@@ -36,6 +39,20 @@ module CFoundry::V2
|
|
36
39
|
alias :space :app_space
|
37
40
|
alias :space= :app_space=
|
38
41
|
|
42
|
+
private :environment_json, :environment_json=
|
43
|
+
|
44
|
+
def env
|
45
|
+
@env ||= CFoundry::ChattyHash.new(
|
46
|
+
method(:env=),
|
47
|
+
JSON.parse(environment_json))
|
48
|
+
end
|
49
|
+
|
50
|
+
def env=(hash)
|
51
|
+
@env = hash
|
52
|
+
@diff["environment_json"] = hash
|
53
|
+
hash
|
54
|
+
end
|
55
|
+
|
39
56
|
def debug_mode # TODO v2
|
40
57
|
nil
|
41
58
|
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: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 4
|
10
|
+
version: 0.3.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Suraci
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-
|
18
|
+
date: 2012-07-15 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rest-client
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- LICENSE
|
107
107
|
- Rakefile
|
108
108
|
- lib/cfoundry/baseclient.rb
|
109
|
+
- lib/cfoundry/chatty_hash.rb
|
109
110
|
- lib/cfoundry/client.rb
|
110
111
|
- lib/cfoundry/errors.rb
|
111
112
|
- lib/cfoundry/uaaclient.rb
|