ruroku 0.0.1 → 0.0.2

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.
Files changed (57) hide show
  1. data/.travis.yml +5 -0
  2. data/CHANGELOG.md +12 -0
  3. data/Gemfile +9 -0
  4. data/README.md +180 -48
  5. data/Rakefile +7 -1
  6. data/TODO.md +0 -4
  7. data/lib/ruroku.rb +9 -1
  8. data/lib/ruroku/addon.rb +8 -10
  9. data/lib/ruroku/addon_set.rb +4 -1
  10. data/lib/ruroku/api.rb +20 -1
  11. data/lib/ruroku/app.rb +29 -20
  12. data/lib/ruroku/app_set.rb +13 -0
  13. data/lib/ruroku/base.rb +20 -3
  14. data/lib/ruroku/collaborator.rb +5 -2
  15. data/lib/ruroku/collaborator_set.rb +4 -1
  16. data/lib/ruroku/config_var.rb +9 -2
  17. data/lib/ruroku/config_var_set.rb +5 -2
  18. data/lib/ruroku/domain.rb +8 -9
  19. data/lib/ruroku/domain_set.rb +4 -1
  20. data/lib/ruroku/key.rb +8 -0
  21. data/lib/ruroku/key_set.rb +17 -0
  22. data/lib/ruroku/nested_base.rb +3 -2
  23. data/lib/ruroku/nested_resource_set.rb +28 -0
  24. data/lib/ruroku/process.rb +14 -11
  25. data/lib/ruroku/process_set.rb +11 -28
  26. data/lib/ruroku/release.rb +9 -5
  27. data/lib/ruroku/release_set.rb +4 -1
  28. data/lib/ruroku/resource_set.rb +61 -6
  29. data/lib/ruroku/stack.rb +10 -0
  30. data/lib/ruroku/stack_set.rb +13 -0
  31. data/lib/ruroku/user.rb +15 -0
  32. data/lib/ruroku/version.rb +1 -1
  33. data/ruroku.gemspec +4 -5
  34. data/spec/helpers/addon.rb +12 -0
  35. data/spec/helpers/app.rb +18 -0
  36. data/spec/helpers/collaborator.rb +11 -0
  37. data/spec/helpers/config_var.rb +11 -0
  38. data/spec/helpers/domain.rb +13 -0
  39. data/spec/helpers/keys.rb +12 -0
  40. data/spec/helpers/process.rb +15 -0
  41. data/spec/helpers/release.rb +15 -0
  42. data/spec/helpers/stack.rb +11 -0
  43. data/spec/helpers/user.rb +15 -0
  44. data/spec/ruroku/addon_set_spec.rb +29 -0
  45. data/spec/ruroku/api_spec.rb +55 -0
  46. data/spec/ruroku/app_set_spec.rb +15 -0
  47. data/spec/ruroku/app_spec.rb +113 -0
  48. data/spec/ruroku/collaborator_set_spec.rb +22 -0
  49. data/spec/ruroku/domain_set_spec.rb +22 -0
  50. data/spec/ruroku/key_set_spec.rb +29 -0
  51. data/spec/ruroku/nested_resource_set_spec.rb +27 -0
  52. data/spec/ruroku/process_set_spec.rb +36 -0
  53. data/spec/ruroku/release_set_spec.rb +15 -0
  54. data/spec/ruroku/resource_set_spec.rb +26 -0
  55. data/spec/ruroku/stack_set_spec.rb +15 -0
  56. data/spec/spec_helper.rb +72 -0
  57. metadata +70 -15
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::DomainSet do
4
+ before do
5
+ @set = Ruroku::DomainSet.new stubbed_app
6
+ @set_api = @set.api
7
+ end
8
+
9
+ describe '#add' do
10
+ it 'maps to post_domain api method' do
11
+ @set_api.should_receive :post_domains
12
+ @set.add 'example.com'
13
+ end
14
+ end
15
+
16
+ describe '#delete' do
17
+ it 'maps to delete_domain api method' do
18
+ @set_api.should_receive :delete_domain
19
+ @set.delete 'example.com'
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::KeySet do
4
+ before do
5
+ @set = Ruroku::KeySet.new stubbed_api
6
+ @set_api = @set.api
7
+ end
8
+
9
+ describe '#add' do
10
+ it 'maps to post_key api method' do
11
+ @set_api.should_receive :post_key
12
+ @set.add 'key content'
13
+ end
14
+ end
15
+
16
+ describe '#delete' do
17
+ it 'maps to delete_key api method' do
18
+ @set_api.should_receive :delete_key
19
+ @set.delete 'example@me.com'
20
+ end
21
+ end
22
+
23
+ describe '#delete_all' do
24
+ it 'maps to delete_keys api method' do
25
+ @set_api.should_receive :delete_keys
26
+ @set.delete_all
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::NestedResourceSet do
4
+ describe '.map_api' do
5
+ before do
6
+ class MyResource < Ruroku::Base; end
7
+ class MyNestedResourceSet < Ruroku::NestedResourceSet
8
+ resource_class MyResource
9
+ collection_api_selector :query_collection
10
+
11
+ map_api my_method: :api_mapping
12
+ end
13
+ end
14
+
15
+ it 'defines the method' do
16
+ MyNestedResourceSet.new(stubbed_app).respond_to?(:my_method).should be_true
17
+ end
18
+
19
+ it 'calls api mapping' do
20
+ app = stubbed_app
21
+ app.api.should_receive(:api_mapping).with app.name, 'param'
22
+
23
+ my_nested_resource_set = MyNestedResourceSet.new app
24
+ my_nested_resource_set.my_method 'param'
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::ProcessSet do
4
+ before do
5
+ @set = Ruroku::ProcessSet.new stubbed_app
6
+ @set_api = @set.api
7
+ end
8
+
9
+ describe '#run' do
10
+ it 'maps to post_ps api method' do
11
+ @set_api.should_receive(:post_ps).with @set.app.name, 'rake task'
12
+ @set.run 'rake task'
13
+ end
14
+ end
15
+
16
+ describe '#restart' do
17
+ it 'maps to post_ps_restart api method' do
18
+ @set_api.should_receive :post_ps_restart
19
+ @set.restart
20
+ end
21
+ end
22
+
23
+ describe '#scale' do
24
+ it 'maps to ps_scale api method' do
25
+ @set_api.should_receive(:ps_scale).with @set.app.name, 'worker', 10
26
+ @set.scale 'worker', 10
27
+ end
28
+ end
29
+
30
+ describe '#stop' do
31
+ it 'maps to post_ps_stop api method' do
32
+ @set_api.should_receive(:post_ps_stop).with @set.app.name, 'ps' => 'web.1'
33
+ @set.stop 'ps' => 'web.1'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::ReleaseSet do
4
+ before do
5
+ @set = Ruroku::ReleaseSet.new stubbed_app
6
+ @set_api = @set.api
7
+ end
8
+
9
+ describe '#rollback' do
10
+ it 'maps to post_release api method' do
11
+ @set_api.should_receive :post_release
12
+ @set.rollback 'v1'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::ResourceSet do
4
+ describe '.map_api' do
5
+ before do
6
+ class MyResource < Ruroku::Base; end
7
+ class MyResourceSet < Ruroku::ResourceSet
8
+ resource_class MyResource
9
+ collection_api_selector :query_collection
10
+ map_api my_method: :api_mapping
11
+ end
12
+ end
13
+
14
+ it 'defines the method' do
15
+ MyResourceSet.new(stubbed_api).respond_to?(:my_method).should be_true
16
+ end
17
+
18
+ it 'calls api mapping' do
19
+ api_object = stubbed_api
20
+ api_object.should_receive(:api_mapping).with 'param'
21
+
22
+ my_resource_set = MyResourceSet.new api_object
23
+ my_resource_set.my_method 'param'
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ruroku::StackSet do
4
+ before do
5
+ @set = Ruroku::StackSet.new stubbed_app
6
+ @set_api = @set.api
7
+ end
8
+
9
+ describe '#migrate' do
10
+ it 'maps to put_stack api method' do
11
+ @set_api.should_receive :put_stack
12
+ @set.migrate 'cedar'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,72 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'ruroku'
4
+
5
+ require 'active_support/concern'
6
+ require 'helpers/app'
7
+ require 'helpers/keys'
8
+ require 'helpers/user'
9
+ require 'helpers/addon'
10
+ require 'helpers/collaborator'
11
+ require 'helpers/config_var'
12
+ require 'helpers/domain'
13
+ require 'helpers/process'
14
+ require 'helpers/release'
15
+ require 'helpers/stack'
16
+
17
+ module Helpers
18
+ extend ActiveSupport::Concern
19
+
20
+ included do
21
+ let(:api) { Ruroku::API.new api_key: 'test', mock: true }
22
+ let(:heroku) { api.heroku_api }
23
+
24
+ def stub_api(heroku)
25
+ heroku.stub(:get_apps).and_return apps_response
26
+ heroku.stub(:get_app).and_return app_response
27
+ heroku.stub(:get_keys).and_return keys_response
28
+ heroku.stub(:get_user).and_return user_response
29
+
30
+ heroku.stub(:get_addons).and_return addons_response
31
+ heroku.stub(:get_collaborators).and_return collaborators_response
32
+ heroku.stub(:get_config_vars).and_return config_vars_response
33
+ heroku.stub(:get_domains).and_return domains_response
34
+ heroku.stub(:get_ps).and_return processes_response
35
+ heroku.stub(:get_releases).and_return releases_response
36
+ heroku.stub(:get_stack).and_return stacks_response
37
+
38
+ heroku
39
+ end
40
+
41
+ before do
42
+ api.heroku_api = stubbed_api
43
+ end
44
+ end
45
+
46
+ def stubbed_response(body)
47
+ response = double 'response'
48
+ response.stub(:body).and_return body
49
+
50
+ response
51
+ end
52
+
53
+ def stubbed_api
54
+ api = stub_api double('api')
55
+ api.stub(:query_collection).and_return stubbed_response([])
56
+
57
+ api
58
+ end
59
+
60
+ def stubbed_app
61
+ app = double 'app'
62
+ app.stub(:api).and_return stubbed_api
63
+ app.stub(:name).and_return 'The App'
64
+ app.stub(:keys).and_return Ruroku::Key.new(app, {})
65
+
66
+ app
67
+ end
68
+ end
69
+
70
+ RSpec.configure do |config|
71
+ config.include Helpers
72
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruroku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-09 00:00:00.000000000 Z
12
+ date: 2012-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: heroku-api
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.2.4
21
+ version: '0.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 0.2.4
29
+ version: '0.2'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: activesupport
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -44,22 +44,22 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: 3.2.5
46
46
  - !ruby/object:Gem::Dependency
47
- name: rspec
47
+ name: virtus
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
53
+ version: '0.5'
54
+ type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
62
- description: Ruby client for the Heroku API
61
+ version: '0.5'
62
+ description: The better Ruby client for the Heroku API
63
63
  email:
64
64
  - me@goshakkk.name
65
65
  executables: []
@@ -68,6 +68,8 @@ extra_rdoc_files: []
68
68
  files:
69
69
  - .gitignore
70
70
  - .rspec
71
+ - .travis.yml
72
+ - CHANGELOG.md
71
73
  - Gemfile
72
74
  - LICENSE
73
75
  - README.md
@@ -78,6 +80,7 @@ files:
78
80
  - lib/ruroku/addon_set.rb
79
81
  - lib/ruroku/api.rb
80
82
  - lib/ruroku/app.rb
83
+ - lib/ruroku/app_set.rb
81
84
  - lib/ruroku/base.rb
82
85
  - lib/ruroku/collaborator.rb
83
86
  - lib/ruroku/collaborator_set.rb
@@ -85,14 +88,43 @@ files:
85
88
  - lib/ruroku/config_var_set.rb
86
89
  - lib/ruroku/domain.rb
87
90
  - lib/ruroku/domain_set.rb
91
+ - lib/ruroku/key.rb
92
+ - lib/ruroku/key_set.rb
88
93
  - lib/ruroku/nested_base.rb
94
+ - lib/ruroku/nested_resource_set.rb
89
95
  - lib/ruroku/process.rb
90
96
  - lib/ruroku/process_set.rb
91
97
  - lib/ruroku/release.rb
92
98
  - lib/ruroku/release_set.rb
93
99
  - lib/ruroku/resource_set.rb
100
+ - lib/ruroku/stack.rb
101
+ - lib/ruroku/stack_set.rb
102
+ - lib/ruroku/user.rb
94
103
  - lib/ruroku/version.rb
95
104
  - ruroku.gemspec
105
+ - spec/helpers/addon.rb
106
+ - spec/helpers/app.rb
107
+ - spec/helpers/collaborator.rb
108
+ - spec/helpers/config_var.rb
109
+ - spec/helpers/domain.rb
110
+ - spec/helpers/keys.rb
111
+ - spec/helpers/process.rb
112
+ - spec/helpers/release.rb
113
+ - spec/helpers/stack.rb
114
+ - spec/helpers/user.rb
115
+ - spec/ruroku/addon_set_spec.rb
116
+ - spec/ruroku/api_spec.rb
117
+ - spec/ruroku/app_set_spec.rb
118
+ - spec/ruroku/app_spec.rb
119
+ - spec/ruroku/collaborator_set_spec.rb
120
+ - spec/ruroku/domain_set_spec.rb
121
+ - spec/ruroku/key_set_spec.rb
122
+ - spec/ruroku/nested_resource_set_spec.rb
123
+ - spec/ruroku/process_set_spec.rb
124
+ - spec/ruroku/release_set_spec.rb
125
+ - spec/ruroku/resource_set_spec.rb
126
+ - spec/ruroku/stack_set_spec.rb
127
+ - spec/spec_helper.rb
96
128
  homepage: ''
97
129
  licenses: []
98
130
  post_install_message:
@@ -107,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
139
  version: '0'
108
140
  segments:
109
141
  - 0
110
- hash: 2659213015072619677
142
+ hash: -1851789232377884994
111
143
  required_rubygems_version: !ruby/object:Gem::Requirement
112
144
  none: false
113
145
  requirements:
@@ -116,11 +148,34 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
148
  version: '0'
117
149
  segments:
118
150
  - 0
119
- hash: 2659213015072619677
151
+ hash: -1851789232377884994
120
152
  requirements: []
121
153
  rubyforge_project:
122
154
  rubygems_version: 1.8.23
123
155
  signing_key:
124
156
  specification_version: 3
125
- summary: Ruby client for the Heroku API
126
- test_files: []
157
+ summary: The better Ruby client for the Heroku API
158
+ test_files:
159
+ - spec/helpers/addon.rb
160
+ - spec/helpers/app.rb
161
+ - spec/helpers/collaborator.rb
162
+ - spec/helpers/config_var.rb
163
+ - spec/helpers/domain.rb
164
+ - spec/helpers/keys.rb
165
+ - spec/helpers/process.rb
166
+ - spec/helpers/release.rb
167
+ - spec/helpers/stack.rb
168
+ - spec/helpers/user.rb
169
+ - spec/ruroku/addon_set_spec.rb
170
+ - spec/ruroku/api_spec.rb
171
+ - spec/ruroku/app_set_spec.rb
172
+ - spec/ruroku/app_spec.rb
173
+ - spec/ruroku/collaborator_set_spec.rb
174
+ - spec/ruroku/domain_set_spec.rb
175
+ - spec/ruroku/key_set_spec.rb
176
+ - spec/ruroku/nested_resource_set_spec.rb
177
+ - spec/ruroku/process_set_spec.rb
178
+ - spec/ruroku/release_set_spec.rb
179
+ - spec/ruroku/resource_set_spec.rb
180
+ - spec/ruroku/stack_set_spec.rb
181
+ - spec/spec_helper.rb