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.
@@ -27,7 +27,7 @@ class Heroku::Kensa::PostProxy < WEBrick::HTTPServer
27
27
  </body>
28
28
  </html>
29
29
  HTML
30
- res["Content-Lengh"] = res.body.size
30
+ res["Content-Length"] = res.body.size
31
31
  @status = :Shutdown
32
32
  end
33
33
  end
@@ -16,6 +16,9 @@ module Heroku
16
16
 
17
17
  def message(msg)
18
18
  end
19
+
20
+ def finish
21
+ end
19
22
  end
20
23
 
21
24
  class IOScreen
@@ -79,7 +79,7 @@ module Heroku
79
79
  end
80
80
 
81
81
  def sample_nav_data
82
- json = Yajl::Encoder.encode({
82
+ json = OkJson.encode({
83
83
  :addon => 'Your Addon',
84
84
  :appname => 'myapp',
85
85
  :addons => [
@@ -1,5 +1,5 @@
1
1
  module Heroku
2
2
  module Kensa
3
- VERSION = '1.2.0'
3
+ VERSION = '1.2.1'
4
4
  end
5
5
  end
@@ -2,6 +2,7 @@ require 'test/helper'
2
2
 
3
3
  class AllCheckTest < Test::Unit::TestCase
4
4
  include Heroku::Kensa
5
+ include ProviderMock
5
6
 
6
7
  setup do
7
8
  @data = Manifest.new(:method => :get).skeleton
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 'yajl'
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
- Yajl::Parser.parse(File.open(filename).read)
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 = Yajl::Encoder.encode(data)
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 test_init_with_env_flag
45
- kensa "init --foreman"
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
- assert env.include?("SSO_SALT=#{manifest['api']['sso_salt']}\n")
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
@@ -59,30 +59,37 @@ class ManifestCheckTest < Test::Unit::TestCase
59
59
  end
60
60
  end
61
61
 
62
- test "api contains config_vars array" do
63
- @data["api"]["config_vars"] = "test"
64
- assert_invalid
62
+ test "api does not require config_vars" do
63
+ @data["api"].delete "config_vars"
64
+ assert_valid
65
65
  end
66
66
 
67
- test "api contains at least one config var" do
68
- @data["api"]["config_vars"].clear
69
- assert_invalid
70
- end
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
- test "all config vars are in upper case" do
73
- @data["api"]["config_vars"] << 'MYADDON_invalid_var'
74
- assert_invalid
75
- end
73
+ test "contains at least one config var" do
74
+ @data["api"]["config_vars"].clear
75
+ assert_invalid
76
+ end
76
77
 
77
- test "assert config var prefixes match addon id" do
78
- @data["api"]["config_vars"] << 'MONGO_URL'
79
- assert_invalid
80
- end
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
- test "replaces dashes for underscores on the config var check" do
83
- @data["id"] = "MY-ADDON"
84
- @data["api"]["config_vars"] = ["MY_ADDON_URL"]
85
- assert_valid
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 PlanChangeCheckTest < Test::Unit::TestCase
4
4
  include Heroku::Kensa
5
+ include ProviderMock
5
6
 
6
7
  %w{get post}.each do |method|
7
8
  context "with sso #{method}" do
@@ -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
@@ -1,9 +1,14 @@
1
1
  require 'rubygems'
2
- require 'sinatra'
3
- require 'json'
2
+ require 'sinatra/base'
3
+ require File.expand_path('../../../lib/heroku/kensa/okjson', __FILE__)
4
4
 
5
- enable :sessions
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 = JSON.parse(request.body.read)
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
- session.clear
37
- session[:logged_in] = true
38
- session[:heroku] = heroku_user
39
- redirect '/'
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
- nil.to_json
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
- __END__
220
-
221
- @@ index
222
- %html
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
@@ -2,7 +2,7 @@ require 'test/helper'
2
2
 
3
3
  class SsoCheckTest < Test::Unit::TestCase
4
4
  include Heroku::Kensa
5
-
5
+ include ProviderMock
6
6
 
7
7
  def check ; SsoCheck ; end
8
8
  %w{get post}.each do |method|
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
- version: 1.2.0
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
- date: 2011-11-18 00:00:00.000000000Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
19
- name: contest
20
- requirement: &70130076419400 !ruby/object:Gem::Requirement
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
- version: '0'
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: *70130076419400
29
- - !ruby/object:Gem::Dependency
30
- name: timecop
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: *70130076416540
40
- - !ruby/object:Gem::Dependency
41
- name: sinatra
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
- version: '0.9'
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: *70130076414660
51
- - !ruby/object:Gem::Dependency
52
- name: json
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
- version: '0'
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
- requirement: &70130076411500 !ruby/object:Gem::Requirement
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
- version: '0'
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
- requirement: &70130076410000 !ruby/object:Gem::Requirement
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
- version: '0'
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
- requirement: &70130076408820 !ruby/object:Gem::Requirement
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
- version: '0'
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
- requirement: &70130076407080 !ruby/object:Gem::Requirement
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
- version: '0'
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: *70130076407080
106
- - !ruby/object:Gem::Dependency
107
- name: rest-client
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: *70130076404080
120
- - !ruby/object:Gem::Dependency
121
- name: yajl-ruby
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
- version: '0.6'
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: *70130076396960
142
- - !ruby/object:Gem::Dependency
143
- name: launchy
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: *70130076393800
153
- - !ruby/object:Gem::Dependency
154
- name: mechanize
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: *70130076392720
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
- files:
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
- require_paths:
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
- version: '0'
217
- segments:
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ hash: 3
270
+ segments:
218
271
  - 0
219
- hash: 3834118791582110421
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
- version: '0'
226
- segments:
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ hash: 3
279
+ segments:
227
280
  - 0
228
- hash: 3834118791582110421
281
+ version: "0"
229
282
  requirements: []
283
+
230
284
  rubyforge_project: kensa
231
- rubygems_version: 1.8.10
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