kensa 1.2.0 → 1.2.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.
- data/.travis.yml +7 -0
- data/Gemfile.lock +7 -6
- data/README.md +3 -1
- data/Rakefile +1 -11
- data/bin/kensa +4 -1
- data/kensa.gemspec +1 -2
- data/lib/heroku/kensa.rb +1 -0
- data/lib/heroku/kensa/check.rb +28 -24
- data/lib/heroku/kensa/client.rb +50 -10
- data/lib/heroku/kensa/http.rb +1 -1
- data/lib/heroku/kensa/manifest.rb +2 -2
- data/lib/heroku/kensa/okjson.rb +606 -0
- data/lib/heroku/kensa/post_proxy.rb +1 -1
- data/lib/heroku/kensa/screen.rb +3 -0
- data/lib/heroku/kensa/sso.rb +1 -1
- data/lib/heroku/kensa/version.rb +1 -1
- data/test/all_check_test.rb +1 -0
- data/test/helper.rb +15 -4
- data/test/init_test.rb +29 -5
- data/test/manifest_check_test.rb +26 -19
- data/test/options_parsing_test.rb +64 -0
- data/test/plan_change_check_test.rb +1 -0
- data/test/provision_check_test.rb +7 -0
- data/test/resources/server.rb +26 -20
- data/test/sso_check_test.rb +1 -1
- metadata +184 -129
data/lib/heroku/kensa/screen.rb
CHANGED
data/lib/heroku/kensa/sso.rb
CHANGED
data/lib/heroku/kensa/version.rb
CHANGED
data/test/all_check_test.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -3,17 +3,28 @@ require 'heroku/kensa/client'
|
|
3
3
|
require 'contest'
|
4
4
|
require 'timecop'
|
5
5
|
require 'rr'
|
6
|
-
require '
|
6
|
+
require 'artifice'
|
7
|
+
require 'test/resources/server'
|
7
8
|
|
8
9
|
class Test::Unit::TestCase
|
9
10
|
include RR::Adapters::TestUnit
|
10
11
|
|
12
|
+
module ProviderMock
|
13
|
+
def setup
|
14
|
+
Artifice.activate_with(ProviderServer)
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
Artifice.deactivate
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
11
22
|
def kensa(command)
|
12
|
-
Heroku::Kensa::Client.new(command.split, :silent => true).run!
|
23
|
+
Heroku::Kensa::Client.new(command.split, :silent => true, :test => true).run!
|
13
24
|
end
|
14
25
|
|
15
26
|
def read_json(filename)
|
16
|
-
|
27
|
+
OkJson.decode(File.open(filename).read)
|
17
28
|
end
|
18
29
|
|
19
30
|
#this prepends a prefix for the provider server
|
@@ -61,7 +72,7 @@ class Test::Unit::TestCase
|
|
61
72
|
end
|
62
73
|
|
63
74
|
def to_json(data, headers={})
|
64
|
-
body =
|
75
|
+
body = OkJson.encode(data)
|
65
76
|
add_headers(body, headers)
|
66
77
|
end
|
67
78
|
|
data/test/init_test.rb
CHANGED
@@ -12,6 +12,16 @@ class InitTest < Test::Unit::TestCase
|
|
12
12
|
FakeFS.deactivate!
|
13
13
|
end
|
14
14
|
|
15
|
+
def test_init_default_so_sso_post
|
16
|
+
kensa "init"
|
17
|
+
manifest = read_json(@filename)
|
18
|
+
%w{test production}.each do |env|
|
19
|
+
assert manifest['api'][env] =~ /^http/
|
20
|
+
end
|
21
|
+
assert !File.exist?('.env')
|
22
|
+
end
|
23
|
+
|
24
|
+
=begin
|
15
25
|
def test_init_default_so_sso_post
|
16
26
|
kensa "init"
|
17
27
|
manifest = read_json(@filename)
|
@@ -22,6 +32,7 @@ class InitTest < Test::Unit::TestCase
|
|
22
32
|
end
|
23
33
|
assert !File.exist?('.env')
|
24
34
|
end
|
35
|
+
=end
|
25
36
|
|
26
37
|
def test_init_uses_file_flag
|
27
38
|
@filename = 'foo.json'
|
@@ -41,14 +52,27 @@ class InitTest < Test::Unit::TestCase
|
|
41
52
|
assert !File.exist?('.env')
|
42
53
|
end
|
43
54
|
|
44
|
-
def
|
45
|
-
|
55
|
+
def assert_foreman_env(env, manifest)
|
56
|
+
assert env.include?("SSO_SALT=#{manifest['api']['sso_salt']}\n")
|
57
|
+
assert env.include?("HEROKU_USERNAME=#{manifest['id']}\n")
|
58
|
+
assert env.include?("HEROKU_PASSWORD=#{manifest['api']['password']}")
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_init_with_foreman_flag_and_get
|
62
|
+
kensa "init --foreman --sso get"
|
63
|
+
env = File.open(".env").read
|
64
|
+
manifest = read_json(@filename)
|
65
|
+
assert manifest['api']['test'] =~ /:5000/
|
66
|
+
assert manifest['api']['test'] =~ /:5000/
|
67
|
+
assert_foreman_env env, manifest
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_init_with_foreman_flag_and_post
|
71
|
+
kensa "init --foreman --sso post"
|
46
72
|
env = File.open(".env").read
|
47
73
|
manifest = read_json(@filename)
|
48
74
|
assert manifest['api']['test']['base_url'] =~ /:5000/
|
49
75
|
assert manifest['api']['test']['sso_url'] =~ /:5000/
|
50
|
-
|
51
|
-
assert env.include?("HEROKU_USERNAME=#{manifest['id']}\n")
|
52
|
-
assert env.include?("HEROKU_PASSWORD=#{manifest['api']['password']}")
|
76
|
+
assert_foreman_env env, manifest
|
53
77
|
end
|
54
78
|
end
|
data/test/manifest_check_test.rb
CHANGED
@@ -59,30 +59,37 @@ class ManifestCheckTest < Test::Unit::TestCase
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
test "api
|
63
|
-
@data["api"]
|
64
|
-
|
62
|
+
test "api does not require config_vars" do
|
63
|
+
@data["api"].delete "config_vars"
|
64
|
+
assert_valid
|
65
65
|
end
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
context "with config vars" do
|
68
|
+
test "api contains config_vars array" do
|
69
|
+
@data["api"]["config_vars"] = "test"
|
70
|
+
assert_invalid
|
71
|
+
end
|
71
72
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
test "contains at least one config var" do
|
74
|
+
@data["api"]["config_vars"].clear
|
75
|
+
assert_invalid
|
76
|
+
end
|
76
77
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
78
|
+
test "all config vars are in upper case" do
|
79
|
+
@data["api"]["config_vars"] << 'MYADDON_invalid_var'
|
80
|
+
assert_invalid
|
81
|
+
end
|
81
82
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
83
|
+
test "assert config var prefixes match addon id" do
|
84
|
+
@data["api"]["config_vars"] << 'MONGO_URL'
|
85
|
+
assert_invalid
|
86
|
+
end
|
87
|
+
|
88
|
+
test "replaces dashes for underscores on the config var check" do
|
89
|
+
@data["id"] = "MY-ADDON"
|
90
|
+
@data["api"]["config_vars"] = ["MY_ADDON_URL"]
|
91
|
+
assert_valid
|
92
|
+
end
|
86
93
|
end
|
87
94
|
|
88
95
|
test "username is deprecated" do
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'test/helper'
|
2
|
+
|
3
|
+
class OptionParsingTest < Test::Unit::TestCase
|
4
|
+
include Heroku::Kensa
|
5
|
+
|
6
|
+
def options_for_cmd(string)
|
7
|
+
client = Client.new(string.split)
|
8
|
+
options = client.options[:options]
|
9
|
+
end
|
10
|
+
|
11
|
+
test "parameters get forwarded to provider" do
|
12
|
+
Artifice.activate_with(lambda { |env|
|
13
|
+
params = OkJson.decode env['rack.input'].read
|
14
|
+
options = params['options']
|
15
|
+
assert_equal 'true', options['foo']
|
16
|
+
assert_equal 'baz', options['bar']
|
17
|
+
assert_equal 'baz', options['fap']
|
18
|
+
[201, {}, 'hello']
|
19
|
+
}) do
|
20
|
+
kensa "init --sso get"
|
21
|
+
kensa "test provision --foo --bar=baz --fap baz"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def assert_normal_options(options)
|
26
|
+
assert_equal true, options[:async]
|
27
|
+
assert_equal 'true', options[:options]['foo']
|
28
|
+
assert_equal 'foo', options[:plan]
|
29
|
+
assert_equal 'foo.json', options[:filename]
|
30
|
+
assert_equal 'production', options[:env]
|
31
|
+
end
|
32
|
+
|
33
|
+
test "leaves normal args alone" do
|
34
|
+
cmd = "test provision --foo --production --async --file foo.json --plan foo"
|
35
|
+
assert_normal_options Client.new(cmd.split).options
|
36
|
+
end
|
37
|
+
|
38
|
+
test "works with single dash -s tyle flags" do
|
39
|
+
cmd = "test provision --foo --production --async -f foo.json -p foo"
|
40
|
+
assert_normal_options Client.new(cmd.split).options
|
41
|
+
end
|
42
|
+
|
43
|
+
test "parsing --flag" do
|
44
|
+
options = options_for_cmd("test provision --foo")
|
45
|
+
assert_equal 'true', options['foo']
|
46
|
+
end
|
47
|
+
|
48
|
+
test "parsing --flag=value" do
|
49
|
+
options = options_for_cmd("test provision --foo=bar")
|
50
|
+
assert_equal 'bar', options['foo']
|
51
|
+
end
|
52
|
+
|
53
|
+
test "parsing --flag value" do
|
54
|
+
options = options_for_cmd("test provision --foo bar")
|
55
|
+
assert_equal 'bar', options['foo']
|
56
|
+
end
|
57
|
+
|
58
|
+
test "parsing mixed" do
|
59
|
+
options = options_for_cmd("test provision --foo --bar foo --baz")
|
60
|
+
assert_equal 'true', options['foo']
|
61
|
+
assert_equal 'true', options['baz']
|
62
|
+
assert_equal 'foo', options['bar']
|
63
|
+
end
|
64
|
+
end
|
@@ -2,6 +2,7 @@ require 'test/helper'
|
|
2
2
|
|
3
3
|
class ProvisionCheckTest < Test::Unit::TestCase
|
4
4
|
include Heroku::Kensa
|
5
|
+
include ProviderMock
|
5
6
|
|
6
7
|
def check ; ProvisionCheck ; end
|
7
8
|
|
@@ -22,6 +23,12 @@ class ProvisionCheckTest < Test::Unit::TestCase
|
|
22
23
|
assert_valid
|
23
24
|
end
|
24
25
|
|
26
|
+
test "provision call with extra params" do
|
27
|
+
use_provider_endpoint "cmd-line-options"
|
28
|
+
@data[:options] = {:foo => 'bar', :bar => 'baz'}
|
29
|
+
assert_valid
|
30
|
+
end
|
31
|
+
|
25
32
|
test "detects invalid JSON" do
|
26
33
|
use_provider_endpoint "invalid-json"
|
27
34
|
assert_invalid
|
data/test/resources/server.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'sinatra'
|
3
|
-
require '
|
2
|
+
require 'sinatra/base'
|
3
|
+
require File.expand_path('../../../lib/heroku/kensa/okjson', __FILE__)
|
4
4
|
|
5
|
-
|
5
|
+
class Hash
|
6
|
+
def to_json
|
7
|
+
OkJson.encode(self)
|
8
|
+
end
|
9
|
+
end
|
6
10
|
|
11
|
+
class ProviderServer < Sinatra::Base
|
7
12
|
helpers do
|
8
13
|
def heroku_only!
|
9
14
|
unless auth_heroku?
|
@@ -26,17 +31,22 @@ helpers do
|
|
26
31
|
end
|
27
32
|
|
28
33
|
def json_must_include(keys)
|
29
|
-
params =
|
34
|
+
params = OkJson.decode(request.body.read)
|
30
35
|
keys.each do |param|
|
31
36
|
raise "#{param} not included with request" unless params.keys.include? param
|
32
37
|
end
|
33
38
|
end
|
34
39
|
|
35
40
|
def login(heroku_user=true)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
41
|
+
@header = heroku_user
|
42
|
+
haml <<-HAML
|
43
|
+
%html
|
44
|
+
%body
|
45
|
+
- if @header
|
46
|
+
#heroku-header
|
47
|
+
%h1 Heroku
|
48
|
+
%h1 Sample Addon
|
49
|
+
HAML
|
40
50
|
end
|
41
51
|
end
|
42
52
|
|
@@ -53,6 +63,8 @@ end
|
|
53
63
|
|
54
64
|
post '/cmd-line-options/heroku/resources' do
|
55
65
|
heroku_only!
|
66
|
+
options = OkJson.decode(request.body.read)['options']
|
67
|
+
raise "Where are my options?" unless options['foo'] && options['bar']
|
56
68
|
{ :id => 123 }.to_json
|
57
69
|
end
|
58
70
|
|
@@ -63,7 +75,7 @@ end
|
|
63
75
|
|
64
76
|
post '/invalid-response/heroku/resources' do
|
65
77
|
heroku_only!
|
66
|
-
|
78
|
+
'null'
|
67
79
|
end
|
68
80
|
|
69
81
|
post '/invalid-status/heroku/resources' do
|
@@ -117,7 +129,7 @@ get '/working/heroku/resources/:id' do
|
|
117
129
|
end
|
118
130
|
|
119
131
|
post '/working/sso/login' do
|
120
|
-
puts params.inspect
|
132
|
+
#puts params.inspect
|
121
133
|
sso
|
122
134
|
end
|
123
135
|
|
@@ -213,15 +225,9 @@ end
|
|
213
225
|
|
214
226
|
get '/' do
|
215
227
|
unauthorized! unless session[:logged_in]
|
216
|
-
haml :index
|
217
228
|
end
|
218
229
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
%body
|
224
|
-
- if session[:heroku]
|
225
|
-
#heroku-header
|
226
|
-
%h1 Heroku
|
227
|
-
%h1 Sample Addon
|
230
|
+
if $0 == __FILE__
|
231
|
+
self.run!
|
232
|
+
end
|
233
|
+
end
|
data/test/sso_check_test.rb
CHANGED
metadata
CHANGED
@@ -1,10 +1,15 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: kensa
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 1.2.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Blake Mizerany
|
9
14
|
- Pedro Belo
|
10
15
|
- Adam Wiggins
|
@@ -13,164 +18,207 @@ authors:
|
|
13
18
|
autorequire:
|
14
19
|
bindir: bin
|
15
20
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
+
|
22
|
+
date: 2011-12-14 00:00:00 -08:00
|
23
|
+
default_executable: kensa
|
24
|
+
dependencies:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
27
|
none: false
|
22
|
-
requirements:
|
23
|
-
- -
|
24
|
-
- !ruby/object:Gem::Version
|
25
|
-
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
version: "0"
|
26
35
|
type: :development
|
36
|
+
name: contest
|
27
37
|
prerelease: false
|
28
|
-
version_requirements: *
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
|
31
|
-
requirement: &70130076416540 !ruby/object:Gem::Requirement
|
38
|
+
version_requirements: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
32
41
|
none: false
|
33
|
-
requirements:
|
34
|
-
- -
|
35
|
-
- !ruby/object:Gem::Version
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 25
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 3
|
49
|
+
- 5
|
36
50
|
version: 0.3.5
|
37
51
|
type: :development
|
52
|
+
name: timecop
|
38
53
|
prerelease: false
|
39
|
-
version_requirements: *
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
|
42
|
-
requirement: &70130076414660 !ruby/object:Gem::Requirement
|
54
|
+
version_requirements: *id002
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
43
57
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 25
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 9
|
65
|
+
version: "0.9"
|
48
66
|
type: :development
|
67
|
+
name: sinatra
|
49
68
|
prerelease: false
|
50
|
-
version_requirements: *
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
|
53
|
-
requirement: &70130076412640 !ruby/object:Gem::Requirement
|
69
|
+
version_requirements: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
54
72
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
59
80
|
type: :development
|
60
|
-
prerelease: false
|
61
|
-
version_requirements: *70130076412640
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
81
|
name: contest
|
64
|
-
|
82
|
+
prerelease: false
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
65
86
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
70
94
|
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: *70130076411500
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
95
|
name: haml
|
75
|
-
|
96
|
+
prerelease: false
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
76
100
|
none: false
|
77
|
-
requirements:
|
78
|
-
- -
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 3
|
105
|
+
segments:
|
106
|
+
- 0
|
107
|
+
version: "0"
|
81
108
|
type: :development
|
82
|
-
prerelease: false
|
83
|
-
version_requirements: *70130076410000
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
109
|
name: rr
|
86
|
-
|
110
|
+
prerelease: false
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
87
114
|
none: false
|
88
|
-
requirements:
|
89
|
-
- -
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
hash: 3
|
119
|
+
segments:
|
120
|
+
- 0
|
121
|
+
version: "0"
|
92
122
|
type: :development
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: *70130076408820
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
123
|
name: fakefs
|
97
|
-
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: *id007
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
98
128
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
hash: 3
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
version: "0"
|
103
136
|
type: :development
|
137
|
+
name: artifice
|
104
138
|
prerelease: false
|
105
|
-
version_requirements: *
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
|
-
|
108
|
-
requirement: &70130076404080 !ruby/object:Gem::Requirement
|
139
|
+
version_requirements: *id008
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
109
142
|
none: false
|
110
|
-
requirements:
|
143
|
+
requirements:
|
111
144
|
- - <
|
112
|
-
- !ruby/object:Gem::Version
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
hash: 11
|
147
|
+
segments:
|
148
|
+
- 1
|
149
|
+
- 7
|
150
|
+
- 0
|
113
151
|
version: 1.7.0
|
114
|
-
- -
|
115
|
-
- !ruby/object:Gem::Version
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 7
|
155
|
+
segments:
|
156
|
+
- 1
|
157
|
+
- 4
|
158
|
+
- 0
|
116
159
|
version: 1.4.0
|
117
160
|
type: :runtime
|
161
|
+
name: rest-client
|
118
162
|
prerelease: false
|
119
|
-
version_requirements: *
|
120
|
-
- !ruby/object:Gem::Dependency
|
121
|
-
|
122
|
-
requirement: &70130076399200 !ruby/object:Gem::Requirement
|
163
|
+
version_requirements: *id009
|
164
|
+
- !ruby/object:Gem::Dependency
|
165
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
123
166
|
none: false
|
124
|
-
requirements:
|
167
|
+
requirements:
|
125
168
|
- - ~>
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
hash: 15
|
171
|
+
segments:
|
172
|
+
- 1
|
173
|
+
- 0
|
174
|
+
version: "1.0"
|
128
175
|
type: :runtime
|
129
|
-
prerelease: false
|
130
|
-
version_requirements: *70130076399200
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
176
|
name: term-ansicolor
|
133
|
-
requirement: &70130076396960 !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
|
-
requirements:
|
136
|
-
- - ~>
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '1.0'
|
139
|
-
type: :runtime
|
140
177
|
prerelease: false
|
141
|
-
version_requirements: *
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
|
-
|
144
|
-
requirement: &70130076393800 !ruby/object:Gem::Requirement
|
178
|
+
version_requirements: *id010
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
145
181
|
none: false
|
146
|
-
requirements:
|
147
|
-
- -
|
148
|
-
- !ruby/object:Gem::Version
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
hash: 23
|
186
|
+
segments:
|
187
|
+
- 0
|
188
|
+
- 3
|
189
|
+
- 2
|
149
190
|
version: 0.3.2
|
150
191
|
type: :runtime
|
192
|
+
name: launchy
|
151
193
|
prerelease: false
|
152
|
-
version_requirements: *
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
|
155
|
-
requirement: &70130076392720 !ruby/object:Gem::Requirement
|
194
|
+
version_requirements: *id011
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
156
197
|
none: false
|
157
|
-
requirements:
|
198
|
+
requirements:
|
158
199
|
- - ~>
|
159
|
-
- !ruby/object:Gem::Version
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
hash: 23
|
202
|
+
segments:
|
203
|
+
- 1
|
204
|
+
- 0
|
205
|
+
- 0
|
160
206
|
version: 1.0.0
|
161
207
|
type: :runtime
|
208
|
+
name: mechanize
|
162
209
|
prerelease: false
|
163
|
-
version_requirements: *
|
164
|
-
description: Kensa is a command-line tool to help add-on providers integrating their
|
165
|
-
services with Heroku. It manages manifest files, and provides a TDD-like approach
|
166
|
-
for programmers to test and develop their APIs.
|
210
|
+
version_requirements: *id012
|
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.
|
167
212
|
email: pedro@heroku.com
|
168
|
-
executables:
|
213
|
+
executables:
|
169
214
|
- kensa
|
170
215
|
extensions: []
|
216
|
+
|
171
217
|
extra_rdoc_files: []
|
172
|
-
|
218
|
+
|
219
|
+
files:
|
173
220
|
- .gitignore
|
221
|
+
- .travis.yml
|
174
222
|
- Gemfile
|
175
223
|
- Gemfile.lock
|
176
224
|
- README.md
|
@@ -183,6 +231,7 @@ files:
|
|
183
231
|
- lib/heroku/kensa/git.rb
|
184
232
|
- lib/heroku/kensa/http.rb
|
185
233
|
- lib/heroku/kensa/manifest.rb
|
234
|
+
- lib/heroku/kensa/okjson.rb
|
186
235
|
- lib/heroku/kensa/post_proxy.rb
|
187
236
|
- lib/heroku/kensa/screen.rb
|
188
237
|
- lib/heroku/kensa/sso.rb
|
@@ -195,6 +244,7 @@ files:
|
|
195
244
|
- test/init_test.rb
|
196
245
|
- test/manifest_check_test.rb
|
197
246
|
- test/manifest_test.rb
|
247
|
+
- test/options_parsing_test.rb
|
198
248
|
- test/plan_change_check_test.rb
|
199
249
|
- test/provision_check_test.rb
|
200
250
|
- test/provision_response_check_test.rb
|
@@ -202,37 +252,41 @@ files:
|
|
202
252
|
- test/resources/server.rb
|
203
253
|
- test/sso_check_test.rb
|
204
254
|
- test/sso_test.rb
|
255
|
+
has_rdoc: true
|
205
256
|
homepage: http://provider.heroku.com/resources
|
206
257
|
licenses: []
|
258
|
+
|
207
259
|
post_install_message:
|
208
260
|
rdoc_options: []
|
209
|
-
|
261
|
+
|
262
|
+
require_paths:
|
210
263
|
- lib
|
211
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
264
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
212
265
|
none: false
|
213
|
-
requirements:
|
214
|
-
- -
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
|
217
|
-
segments:
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
hash: 3
|
270
|
+
segments:
|
218
271
|
- 0
|
219
|
-
|
220
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
|
+
version: "0"
|
273
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
274
|
none: false
|
222
|
-
requirements:
|
223
|
-
- -
|
224
|
-
- !ruby/object:Gem::Version
|
225
|
-
|
226
|
-
segments:
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
hash: 3
|
279
|
+
segments:
|
227
280
|
- 0
|
228
|
-
|
281
|
+
version: "0"
|
229
282
|
requirements: []
|
283
|
+
|
230
284
|
rubyforge_project: kensa
|
231
|
-
rubygems_version: 1.
|
285
|
+
rubygems_version: 1.6.2
|
232
286
|
signing_key:
|
233
287
|
specification_version: 3
|
234
288
|
summary: Tool to help Heroku add-on providers integrating their services
|
235
|
-
test_files:
|
289
|
+
test_files:
|
236
290
|
- test/all_check_test.rb
|
237
291
|
- test/create_test.rb
|
238
292
|
- test/deprovision_check_test.rb
|
@@ -240,6 +294,7 @@ test_files:
|
|
240
294
|
- test/init_test.rb
|
241
295
|
- test/manifest_check_test.rb
|
242
296
|
- test/manifest_test.rb
|
297
|
+
- test/options_parsing_test.rb
|
243
298
|
- test/plan_change_check_test.rb
|
244
299
|
- test/provision_check_test.rb
|
245
300
|
- test/provision_response_check_test.rb
|