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.
@@ -1,3 +1,10 @@
1
+ 0.1.7 05/15/2012
2
+ ================
3
+
4
+ # consolidate NotFound error handling to work more like other errors
5
+ # fixes for ps:scale mock accuracy
6
+ # fix default command for cedar web process mocks
7
+
1
8
  0.1.6 05/09/2012
2
9
  ================
3
10
 
@@ -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 reerror
78
+ raise(reerror)
82
79
  end
83
80
 
84
81
  if response.body && !response.body.empty?
@@ -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
- if qty >= current_qty
90
- (qty - current_qty).times do
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 qty < current_qty
101
- (current_qty - qty).times do
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 => qty.to_s,
114
+ :body => new_qty.to_s,
109
115
  :status => 200
110
116
  }
111
117
  else
@@ -1,5 +1,5 @@
1
1
  module Heroku
2
2
  class API
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.7"
4
4
  end
5
5
  end
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.6
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-09 00:00:00.000000000 Z
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: &70187660259100 !ruby/object:Gem::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: *70187660259100
24
+ version_requirements: *70282807340220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70187660258680 !ruby/object:Gem::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: *70187660258680
35
+ version_requirements: *70282807339460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70187660258220 !ruby/object:Gem::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: *70187660258220
46
+ version_requirements: *70282807338560
47
47
  description: Ruby Client for the Heroku API
48
48
  email:
49
49
  - wesley@heroku.com