heroku-api 0.1.6 → 0.1.7
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/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
|