kensa 1.3.0 → 1.4.0
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/bin/kensa +1 -1
- data/lib/heroku/kensa/client.rb +9 -3
- data/lib/heroku/kensa/manifest.rb +1 -1
- data/lib/heroku/kensa/version.rb +1 -1
- data/test/init_test.rb +1 -12
- data/test/manifest_check_test.rb +7 -0
- metadata +28 -28
data/bin/kensa
CHANGED
data/lib/heroku/kensa/client.rb
CHANGED
@@ -77,7 +77,7 @@ module Heroku
|
|
77
77
|
|
78
78
|
def sso
|
79
79
|
id = @args.shift || abort("! no id specified; see usage")
|
80
|
-
data =
|
80
|
+
data = decoded_manifest
|
81
81
|
sso = Sso.new(data.merge(@options)).start
|
82
82
|
puts sso.message
|
83
83
|
Launchy.open sso.sso_url
|
@@ -86,7 +86,7 @@ module Heroku
|
|
86
86
|
def push
|
87
87
|
user, password = ask_for_credentials
|
88
88
|
host = heroku_host
|
89
|
-
data =
|
89
|
+
data = decoded_manifest
|
90
90
|
resource = RestClient::Resource.new(host, user, password)
|
91
91
|
resource['provider/addons'].post(resolve_manifest, headers)
|
92
92
|
puts "-----> Manifest for \"#{data['id']}\" was pushed successfully"
|
@@ -148,6 +148,12 @@ module Heroku
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
+
def decoded_manifest
|
152
|
+
OkJson.decode(resolve_manifest)
|
153
|
+
rescue OkJson::Error => e
|
154
|
+
raise CommandInvalid, "#{filename} includes invalid JSON"
|
155
|
+
end
|
156
|
+
|
151
157
|
def manifest_exists?
|
152
158
|
File.exists?(filename)
|
153
159
|
end
|
@@ -157,7 +163,7 @@ module Heroku
|
|
157
163
|
options = args.pop if args.last.is_a?(Hash)
|
158
164
|
|
159
165
|
args.each do |klass|
|
160
|
-
data =
|
166
|
+
data = decoded_manifest
|
161
167
|
check = klass.new(data.merge(@options.merge(options)), screen)
|
162
168
|
result = check.call
|
163
169
|
screen.finish
|
data/lib/heroku/kensa/version.rb
CHANGED
data/test/init_test.rb
CHANGED
@@ -16,17 +16,7 @@ class InitTest < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
kensa "init"
|
21
|
-
manifest = read_json(@filename)
|
22
|
-
%w{test production}.each do |env|
|
23
|
-
assert manifest['api'][env] =~ /^http/
|
24
|
-
end
|
25
|
-
assert !File.exist?('.env')
|
26
|
-
end
|
27
|
-
|
28
|
-
=begin
|
29
|
-
def test_init_default_so_sso_post
|
19
|
+
def test_init_defaults_to_sso_post
|
30
20
|
kensa "init"
|
31
21
|
manifest = read_json(@filename)
|
32
22
|
%w{test production}.each do |env|
|
@@ -36,7 +26,6 @@ class InitTest < Test::Unit::TestCase
|
|
36
26
|
end
|
37
27
|
assert !File.exist?('.env')
|
38
28
|
end
|
39
|
-
=end
|
40
29
|
|
41
30
|
def test_init_uses_file_flag
|
42
31
|
@filename = 'foo.json'
|
data/test/manifest_check_test.rb
CHANGED
@@ -5,6 +5,13 @@ class ManifestCheckTest < Test::Unit::TestCase
|
|
5
5
|
|
6
6
|
def check ; ManifestCheck ; end
|
7
7
|
|
8
|
+
test "doesn't barf on OkJson errors" do
|
9
|
+
File.open("addon-manifest.json", 'w') { |f| f << "{,a" }
|
10
|
+
assert_raises Client::CommandInvalid, "addon-manifest.json includes invalid JSON" do
|
11
|
+
kensa "test provision"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
%w{get post}.each do |method|
|
9
16
|
context "with sso #{method}" do
|
10
17
|
setup { @data = Manifest.new(:method => method).skeleton }
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kensa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 1.
|
10
|
+
version: 1.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Blake Mizerany
|
@@ -19,10 +19,12 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date:
|
22
|
+
date: 2012-01-27 00:00:00 -08:00
|
23
23
|
default_executable: kensa
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
+
name: contest
|
27
|
+
prerelease: false
|
26
28
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
29
|
none: false
|
28
30
|
requirements:
|
@@ -33,10 +35,10 @@ dependencies:
|
|
33
35
|
- 0
|
34
36
|
version: "0"
|
35
37
|
type: :development
|
36
|
-
name: contest
|
37
|
-
prerelease: false
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
|
+
name: timecop
|
41
|
+
prerelease: false
|
40
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
43
|
none: false
|
42
44
|
requirements:
|
@@ -49,10 +51,10 @@ dependencies:
|
|
49
51
|
- 5
|
50
52
|
version: 0.3.5
|
51
53
|
type: :development
|
52
|
-
name: timecop
|
53
|
-
prerelease: false
|
54
54
|
version_requirements: *id002
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: sinatra
|
57
|
+
prerelease: false
|
56
58
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
59
|
none: false
|
58
60
|
requirements:
|
@@ -64,10 +66,10 @@ dependencies:
|
|
64
66
|
- 9
|
65
67
|
version: "0.9"
|
66
68
|
type: :development
|
67
|
-
name: sinatra
|
68
|
-
prerelease: false
|
69
69
|
version_requirements: *id003
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
+
name: contest
|
72
|
+
prerelease: false
|
71
73
|
requirement: &id004 !ruby/object:Gem::Requirement
|
72
74
|
none: false
|
73
75
|
requirements:
|
@@ -78,10 +80,10 @@ dependencies:
|
|
78
80
|
- 0
|
79
81
|
version: "0"
|
80
82
|
type: :development
|
81
|
-
name: contest
|
82
|
-
prerelease: false
|
83
83
|
version_requirements: *id004
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
+
name: haml
|
86
|
+
prerelease: false
|
85
87
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
88
|
none: false
|
87
89
|
requirements:
|
@@ -92,10 +94,10 @@ dependencies:
|
|
92
94
|
- 0
|
93
95
|
version: "0"
|
94
96
|
type: :development
|
95
|
-
name: haml
|
96
|
-
prerelease: false
|
97
97
|
version_requirements: *id005
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
+
name: rr
|
100
|
+
prerelease: false
|
99
101
|
requirement: &id006 !ruby/object:Gem::Requirement
|
100
102
|
none: false
|
101
103
|
requirements:
|
@@ -106,10 +108,10 @@ dependencies:
|
|
106
108
|
- 0
|
107
109
|
version: "0"
|
108
110
|
type: :development
|
109
|
-
name: rr
|
110
|
-
prerelease: false
|
111
111
|
version_requirements: *id006
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
+
name: fakefs
|
114
|
+
prerelease: false
|
113
115
|
requirement: &id007 !ruby/object:Gem::Requirement
|
114
116
|
none: false
|
115
117
|
requirements:
|
@@ -120,10 +122,10 @@ dependencies:
|
|
120
122
|
- 0
|
121
123
|
version: "0"
|
122
124
|
type: :development
|
123
|
-
name: fakefs
|
124
|
-
prerelease: false
|
125
125
|
version_requirements: *id007
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
name: artifice
|
128
|
+
prerelease: false
|
127
129
|
requirement: &id008 !ruby/object:Gem::Requirement
|
128
130
|
none: false
|
129
131
|
requirements:
|
@@ -134,10 +136,10 @@ dependencies:
|
|
134
136
|
- 0
|
135
137
|
version: "0"
|
136
138
|
type: :development
|
137
|
-
name: artifice
|
138
|
-
prerelease: false
|
139
139
|
version_requirements: *id008
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
+
name: rest-client
|
142
|
+
prerelease: false
|
141
143
|
requirement: &id009 !ruby/object:Gem::Requirement
|
142
144
|
none: false
|
143
145
|
requirements:
|
@@ -158,10 +160,10 @@ dependencies:
|
|
158
160
|
- 0
|
159
161
|
version: 1.4.0
|
160
162
|
type: :runtime
|
161
|
-
name: rest-client
|
162
|
-
prerelease: false
|
163
163
|
version_requirements: *id009
|
164
164
|
- !ruby/object:Gem::Dependency
|
165
|
+
name: term-ansicolor
|
166
|
+
prerelease: false
|
165
167
|
requirement: &id010 !ruby/object:Gem::Requirement
|
166
168
|
none: false
|
167
169
|
requirements:
|
@@ -173,10 +175,10 @@ dependencies:
|
|
173
175
|
- 0
|
174
176
|
version: "1.0"
|
175
177
|
type: :runtime
|
176
|
-
name: term-ansicolor
|
177
|
-
prerelease: false
|
178
178
|
version_requirements: *id010
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
|
+
name: launchy
|
181
|
+
prerelease: false
|
180
182
|
requirement: &id011 !ruby/object:Gem::Requirement
|
181
183
|
none: false
|
182
184
|
requirements:
|
@@ -189,10 +191,10 @@ dependencies:
|
|
189
191
|
- 2
|
190
192
|
version: 0.3.2
|
191
193
|
type: :runtime
|
192
|
-
name: launchy
|
193
|
-
prerelease: false
|
194
194
|
version_requirements: *id011
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
|
+
name: mechanize
|
197
|
+
prerelease: false
|
196
198
|
requirement: &id012 !ruby/object:Gem::Requirement
|
197
199
|
none: false
|
198
200
|
requirements:
|
@@ -205,8 +207,6 @@ dependencies:
|
|
205
207
|
- 0
|
206
208
|
version: 1.0.0
|
207
209
|
type: :runtime
|
208
|
-
name: mechanize
|
209
|
-
prerelease: false
|
210
210
|
version_requirements: *id012
|
211
211
|
description: Kensa is a command-line tool to help add-on providers integrating their services with Heroku. It manages manifest files, and provides a TDD-like approach for programmers to test and develop their APIs.
|
212
212
|
email: pedro@heroku.com
|