platform-api 1.0.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d806580b80147a7a47d05838f1c2179c9854967
4
- data.tar.gz: f6ebb0950f44a755250a266b878cff127da2b6e4
3
+ metadata.gz: fbff6bff8a55c92ae1db28f25ced99f3e463f67c
4
+ data.tar.gz: c7d63a1522878e2961da7291f1e2e82ca3e5905c
5
5
  SHA512:
6
- metadata.gz: cd4f2e00abc5982cc557df6e8967bd837e5f371827f39d8fa8cc61b61d733cef2baf2d1fafa78649668b5d7ba7211988accc0ce439262ad0f8d4d456e4f33328
7
- data.tar.gz: 1265904dc69c2ebdb073c167c71d86da12804b76e01c78ba31395eef7a00de45c507a1d79c39becba0ab57509062e5e991361763b75c3c704a960d3c3afc5dfd
6
+ metadata.gz: 711ccc55ff40fdd4eaffb9841ef70a5ad38ef1b5dfec29ba204e7544f2bd833a2300d865fa33cec4a452a5ab94a023fc6a0f1d2df5123e87862d8fda334256f8
7
+ data.tar.gz: be18cf136fc794ea77b823a1f6b25e6770a9abcbd53d7c94078f27fbc8f59b74054920c4097fdfd95b824b2d624893368432ffaa9f0e15d4ea08874859ec9bd8
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .yardoc
2
2
  doc/
3
- pkg/
3
+ pkg/
4
+ spec/examples.txt
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -1,22 +1,44 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- platform-api (1.0.0)
5
- heroics (~> 0.0.20)
4
+ platform-api (1.0.1)
5
+ heroics (~> 0.0.21)
6
6
  moneta (~> 0.8.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ coderay (1.1.1)
12
+ diff-lcs (1.3)
11
13
  erubis (2.7.0)
12
14
  excon (0.55.0)
13
- heroics (0.0.20)
15
+ heroics (0.0.21)
14
16
  erubis (~> 2.0)
15
17
  excon
16
18
  multi_json (>= 1.9.2)
19
+ method_source (0.8.2)
17
20
  moneta (0.8.1)
18
21
  multi_json (1.12.1)
22
+ netrc (0.11.0)
23
+ pry (0.10.4)
24
+ coderay (~> 1.1.0)
25
+ method_source (~> 0.8.1)
26
+ slop (~> 3.4)
19
27
  rake (10.5.0)
28
+ rspec (3.5.0)
29
+ rspec-core (~> 3.5.0)
30
+ rspec-expectations (~> 3.5.0)
31
+ rspec-mocks (~> 3.5.0)
32
+ rspec-core (3.5.4)
33
+ rspec-support (~> 3.5.0)
34
+ rspec-expectations (3.5.0)
35
+ diff-lcs (>= 1.2.0, < 2.0)
36
+ rspec-support (~> 3.5.0)
37
+ rspec-mocks (3.5.0)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.5.0)
40
+ rspec-support (3.5.0)
41
+ slop (3.6.0)
20
42
  yard (0.8.7.6)
21
43
 
22
44
  PLATFORMS
@@ -24,8 +46,11 @@ PLATFORMS
24
46
 
25
47
  DEPENDENCIES
26
48
  bundler (~> 1.3)
49
+ netrc
27
50
  platform-api!
51
+ pry
28
52
  rake
53
+ rspec
29
54
  yard
30
55
 
31
56
  BUNDLED WITH
data/README.md CHANGED
@@ -312,6 +312,10 @@ Remember to commit and push the changes to Github.
312
312
 
313
313
  * This project follows [semver](http://semver.org) from version 1.0.0. Please
314
314
  be sure to keep this in mind if you're the project maintainer.
315
+ * Be sure to run the very basic acceptance rspecs. The rspecs will attempt
316
+ to parse your oauth token for `api.heroku.com` from your `.netrc`. You can
317
+ optionally use the `OAUTH_TOKEN` and `ACCOUNT_EMAIL` environment variables.
318
+ They don't mutate anything but they might in the future.
315
319
  * Bump the version in `lib/platform-api/version.rb`
316
320
  * `bundle install` to update Gemfile.lock
317
321
  * `git commit -m 'vX.Y.Z' to stage the version and Gemfile.lock changes
data/Rakefile CHANGED
@@ -22,3 +22,10 @@ task :publish do
22
22
  sh 'git push origin gh-pages'
23
23
  sh 'git checkout master'
24
24
  end
25
+
26
+ begin
27
+ require "rspec/core/rake_task"
28
+ RSpec::Core::RakeTask.new(:spec)
29
+ task default: [:spec]
30
+ rescue LoadError
31
+ end
@@ -4,12 +4,14 @@ require 'heroics'
4
4
  Heroics.default_configuration do |config|
5
5
  config.base_url = 'https://api.heroku.com'
6
6
  config.module_name = 'PlatformAPI'
7
- config.schema_filepath = 'schema.json'
7
+ config.schema_filepath = File.join(File.expand_path('../..', __FILE__), 'schema.json')
8
8
 
9
9
  config.headers = { 'Accept' => 'application/vnd.heroku+json; version=3' }
10
10
  config.ruby_name_replacement_patterns = {
11
11
  /add[^a-z]+on/i => 'addon',
12
12
  /[\s-]+/ => '_',
13
13
  }
14
+ # This needs to be in single quotes to avoid interpolation during the client
15
+ # build
14
16
  config.cache_path = '#{Dir.home}/.heroics/platform-api'
15
17
  end
@@ -1,6 +1,7 @@
1
1
  require 'heroics'
2
2
  require 'moneta'
3
3
 
4
+ require_relative '../config/client-config'
4
5
  # Ruby HTTP client for the Heroku API.
5
6
  module PlatformAPI
6
7
  end
@@ -1,3 +1,3 @@
1
1
  module PlatformAPI
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -22,7 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'bundler', '~> 1.3'
23
23
  spec.add_development_dependency 'rake'
24
24
  spec.add_development_dependency 'yard'
25
+ spec.add_development_dependency 'pry'
26
+ spec.add_development_dependency 'netrc'
27
+ spec.add_development_dependency 'rspec'
25
28
 
26
- spec.add_dependency 'heroics', '~> 0.0.20'
29
+ spec.add_dependency 'heroics', '~> 0.0.21'
27
30
  spec.add_dependency 'moneta', '~> 0.8.1'
28
31
  end
@@ -0,0 +1,70 @@
1
+ require 'netrc'
2
+ require 'platform-api'
3
+
4
+ describe 'The generated platform api client' do
5
+ it "can get account info" do
6
+ expect(client.account.info(email)).not_to be_empty
7
+ end
8
+
9
+ it "can get addon info for an app" do
10
+ expect(client.addon.list_by_app(an_app['name'])).not_to be_empty
11
+ end
12
+
13
+ it "can list apps" do
14
+ expect(client.app.list).not_to be_empty
15
+ end
16
+
17
+ it "can get app info" do
18
+ expect(client.app.info(an_app['name'])).to eq an_app
19
+ end
20
+
21
+ it "can get build info" do
22
+ expect(client.build.list(an_app['name'])).not_to be_empty
23
+ end
24
+
25
+ it "can get config vars" do
26
+ expect(client.config_var.info_for_app(an_app['name'])).not_to be_empty
27
+ end
28
+
29
+ it "can get domain list and info" do
30
+ domains = client.domain.list(an_app['name'])
31
+ expect(domains).not_to be_empty
32
+
33
+ expect(client.domain.info(an_app['name'], domains.first['hostname'])).not_to be_empty
34
+ end
35
+
36
+ it "can get dyno sizes" do
37
+ expect(client.dyno_size.list).not_to be_empty
38
+ end
39
+
40
+ it "can get add-on plan info" do
41
+ expect(client.plan.list('heroku-postgresql')).not_to be_empty
42
+ end
43
+
44
+ it "can get release info" do
45
+ expect(client.release.list(an_app['name'])).not_to be_empty
46
+ end
47
+
48
+ def an_app
49
+ @app ||= client.app.list.first
50
+ end
51
+
52
+ def email
53
+ @email
54
+ end
55
+
56
+ def client
57
+ @client ||=
58
+ begin
59
+ entry = Netrc.read['api.heroku.com']
60
+ if entry
61
+ oauth_token = entry.password
62
+ @email = entry.login
63
+ else
64
+ oauth_token = ENV['OAUTH_TOKEN']
65
+ @email = ENV['ACCOUNT_EMAIL']
66
+ end
67
+ PlatformAPI.connect_oauth(oauth_token)
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,20 @@
1
+ require 'pry'
2
+ RSpec.configure do |config|
3
+ config.expect_with :rspec do |expectations|
4
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
5
+ end
6
+
7
+ config.mock_with :rspec do |mocks|
8
+ mocks.verify_partial_doubles = true
9
+ end
10
+
11
+ config.shared_context_metadata_behavior = :apply_to_host_groups
12
+ config.filter_run_when_matching :focus
13
+ config.example_status_persistence_file_path = "spec/examples.txt"
14
+ config.warnings = true
15
+ if config.files_to_run.one?
16
+ config.default_formatter = 'doc'
17
+ end
18
+ config.order = :random
19
+ Kernel.srand config.seed
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: platform-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jkakar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-23 00:00:00.000000000 Z
11
+ date: 2017-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,62 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: netrc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: heroics
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - "~>"
60
102
  - !ruby/object:Gem::Version
61
- version: 0.0.20
103
+ version: 0.0.21
62
104
  type: :runtime
63
105
  prerelease: false
64
106
  version_requirements: !ruby/object:Gem::Requirement
65
107
  requirements:
66
108
  - - "~>"
67
109
  - !ruby/object:Gem::Version
68
- version: 0.0.20
110
+ version: 0.0.21
69
111
  - !ruby/object:Gem::Dependency
70
112
  name: moneta
71
113
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +130,7 @@ extensions: []
88
130
  extra_rdoc_files: []
89
131
  files:
90
132
  - ".gitignore"
133
+ - ".rspec"
91
134
  - ".yardopts"
92
135
  - CONTRIBUTING.md
93
136
  - CONTRIBUTORS.md
@@ -103,6 +146,8 @@ files:
103
146
  - lib/platform-api/version.rb
104
147
  - platform-api.gemspec
105
148
  - schema.json
149
+ - spec/acceptance/generated_client_spec.rb
150
+ - spec/spec_helper.rb
106
151
  homepage: https://github.com/heroku/platform-api
107
152
  licenses:
108
153
  - MIT