heroku-api 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/changelog.txt +7 -0
- data/lib/heroku/api.rb +2 -5
- data/lib/heroku/api/mock/apps.rb +1 -0
- data/lib/heroku/api/mock/processes.rb +12 -6
- data/lib/heroku/api/version.rb +1 -1
- metadata +8 -8
data/changelog.txt
CHANGED
data/lib/heroku/api.rb
CHANGED
@@ -58,10 +58,6 @@ module Heroku
|
|
58
58
|
def request(params, &block)
|
59
59
|
begin
|
60
60
|
response = @connection.request(params, &block)
|
61
|
-
rescue Excon::Errors::NotFound => error
|
62
|
-
reerror = Heroku::API::Errors::NotFound.new(error.message, error.response)
|
63
|
-
reerror.set_backtrace(error.backtrace)
|
64
|
-
raise reerror
|
65
61
|
rescue Excon::Errors::SocketError => error
|
66
62
|
raise error
|
67
63
|
rescue Excon::Errors::Error => error
|
@@ -69,6 +65,7 @@ module Heroku
|
|
69
65
|
when 401 then Heroku::API::Errors::Unauthorized
|
70
66
|
when 402 then Heroku::API::Errors::VerificationRequired
|
71
67
|
when 403 then Heroku::API::Errors::Forbidden
|
68
|
+
when 404 then Heroku::API::Errors::NotFound
|
72
69
|
when 408 then Heroku::API::Errors::Timeout
|
73
70
|
when 422 then Heroku::API::Errors::RequestFailed
|
74
71
|
when 423 then Heroku::API::Errors::Locked
|
@@ -78,7 +75,7 @@ module Heroku
|
|
78
75
|
|
79
76
|
reerror = klass.new(error.message, error.response)
|
80
77
|
reerror.set_backtrace(error.backtrace)
|
81
|
-
raise
|
78
|
+
raise(reerror)
|
82
79
|
end
|
83
80
|
|
84
81
|
if response.body && !response.body.empty?
|
data/lib/heroku/api/mock/apps.rb
CHANGED
@@ -99,6 +99,7 @@ module Heroku
|
|
99
99
|
add_mock_app_addon(mock_data, app, 'logging:basic')
|
100
100
|
if stack == 'cedar'
|
101
101
|
add_mock_app_addon(mock_data, app, 'releases:basic')
|
102
|
+
mock_data[:ps][app].first['command'] = 'bundle exec thin start -p $PORT'
|
102
103
|
mock_data[:ps][app].first['type'] = 'Ps'
|
103
104
|
else
|
104
105
|
add_mock_app_addon(mock_data, app, 'shared-database:5mb')
|
@@ -79,15 +79,21 @@ module Heroku
|
|
79
79
|
request_params, mock_data = parse_stub_params(params)
|
80
80
|
app, _ = request_params[:captures][:path]
|
81
81
|
with_mock_app(mock_data, app) do |app_data|
|
82
|
-
request_params[:query]
|
83
82
|
type = request_params[:query].has_key?('type') && request_params[:query]['type']
|
84
83
|
qty = request_params[:query].has_key?('qty') && request_params[:query]['qty']
|
85
84
|
if app_data['stack'] == 'cedar'
|
86
85
|
if type == 'web'
|
87
86
|
current_qty = mock_data[:ps][app].count {|process| process['process'] =~ %r{^web\.\d+}}
|
88
87
|
|
89
|
-
|
90
|
-
|
88
|
+
new_qty = case qty
|
89
|
+
when /[+-]\d+/
|
90
|
+
current_qty + qty.to_i
|
91
|
+
else
|
92
|
+
qty.to_i
|
93
|
+
end
|
94
|
+
|
95
|
+
if new_qty >= current_qty
|
96
|
+
(new_qty - current_qty).times do
|
91
97
|
max_web_id = mock_data[:ps][app].map {|process| process['process'].split('web.').last.to_i}.max
|
92
98
|
data = mock_data[:ps][app].first.dup # copy of web.1
|
93
99
|
data.merge({
|
@@ -97,15 +103,15 @@ module Heroku
|
|
97
103
|
})
|
98
104
|
mock_data[:ps][app] << data
|
99
105
|
end
|
100
|
-
elsif
|
101
|
-
(current_qty -
|
106
|
+
elsif new_qty < current_qty
|
107
|
+
(current_qty - new_qty).times do
|
102
108
|
max_web_id = mock_data[:ps][app].map {|process| process['process'].split('web.').last.to_i}.max
|
103
109
|
process = mock_data[:ps][app].detect {|process| process['process'] == "web.#{max_web_id}"}
|
104
110
|
mock_data[:ps][app].delete(process)
|
105
111
|
end
|
106
112
|
end
|
107
113
|
{
|
108
|
-
:body =>
|
114
|
+
:body => new_qty.to_s,
|
109
115
|
:status => 200
|
110
116
|
}
|
111
117
|
else
|
data/lib/heroku/api/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: excon
|
16
|
-
requirement: &
|
16
|
+
requirement: &70282807340220 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.13.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70282807340220
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: minitest
|
27
|
-
requirement: &
|
27
|
+
requirement: &70282807339460 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70282807339460
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70282807338560 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70282807338560
|
47
47
|
description: Ruby Client for the Heroku API
|
48
48
|
email:
|
49
49
|
- wesley@heroku.com
|