aptible-cli 0.3.4 → 0.3.5

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: 893705266c3c0a61f332a5272d8be9edc6f9d85d
4
- data.tar.gz: 2caa6f0a15c7cf284164dbc1a15811b3b4c1deca
3
+ metadata.gz: 5dea42a2a13d3ce84d25347c1e4cd45a3aff8d3a
4
+ data.tar.gz: 6a67a250c973dffcc7614ff5b54306d3d42eefa7
5
5
  SHA512:
6
- metadata.gz: 2e47cca08a9234fdb7471b351c4bf1599885e1ddb2cc1c035ef95a0959f9113a90c9676e2c913b99edabbc483e4716a3a1ba2f441da12806c8af34e50281357a
7
- data.tar.gz: 331156dc9fbe99a8dfc9b4cd4707afcfbcb294c6400c4cbc6759125446e4a8f9d043c5dc488e1edd14a034170716ab7595ee6400dad9bcd3009e9bfa2aafac7b
6
+ metadata.gz: 66826da8eaee8848ee8134dffad3f651ce8448698e93d184da1c3d6f35574c6da0c25459f978ecb8c5689f93b1f56d93df1f8bcc901e5a558578b67192b8969f
7
+ data.tar.gz: dd903d736c9158fe9fbdf11b8219c0b5f71621bab3200220ed66d60143fe5a5bde8fd999d544d648375ddde1de4393f823959bdfc7ba43fb276716c58e53369c
@@ -4,8 +4,10 @@ require 'json'
4
4
 
5
5
  require_relative 'helpers/token'
6
6
  require_relative 'helpers/operation'
7
+ require_relative 'helpers/account'
7
8
  require_relative 'helpers/app'
8
9
 
10
+ require_relative 'subcommands/apps'
9
11
  require_relative 'subcommands/config'
10
12
  require_relative 'subcommands/ssh'
11
13
  require_relative 'subcommands/tunnel'
@@ -16,6 +18,7 @@ module Aptible
16
18
  include Thor::Actions
17
19
 
18
20
  include Helpers::Token
21
+ include Subcommands::Apps
19
22
  include Subcommands::Config
20
23
  include Subcommands::SSH
21
24
  include Subcommands::Tunnel
@@ -0,0 +1,37 @@
1
+ require 'aptible/api'
2
+ require 'git'
3
+
4
+ module Aptible
5
+ module CLI
6
+ module Helpers
7
+ module Account
8
+ include Helpers::Token
9
+
10
+ def ensure_account(options = {})
11
+ if (handle = options[:account])
12
+ account = account_from_handle(handle)
13
+ return account if account
14
+ fail "Could not find account #{handle}"
15
+ else
16
+ ensure_default_account
17
+ end
18
+ end
19
+
20
+ def account_from_handle(handle)
21
+ Aptible::Api::Account.all(token: fetch_token).find do |a|
22
+ a.handle == handle
23
+ end
24
+ end
25
+
26
+ def ensure_default_account
27
+ accounts = Aptible::Api::Account.all(token: fetch_token)
28
+ return accounts.first if accounts.count == 1
29
+
30
+ fail Thor::Error, <<-ERR.gsub(/\s+/, ' ').strip
31
+ Multiple accounts available, please specify with --account
32
+ ERR
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ module Aptible
2
+ module CLI
3
+ module Subcommands
4
+ module Apps
5
+ # rubocop:disable MethodLength
6
+ def self.included(thor)
7
+ thor.class_eval do
8
+ include Helpers::Account
9
+
10
+ desc 'apps:create HANDLE', 'Create a new application'
11
+ option :account
12
+ define_method 'apps:create' do |handle|
13
+ account = ensure_account(options)
14
+ app = account.create_app(handle: handle)
15
+
16
+ if app.errors.any?
17
+ fail app.errors.full_messages.first
18
+ else
19
+ say "App #{handle} created!"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ # rubocop:enable MethodLength
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,5 +1,5 @@
1
1
  module Aptible
2
2
  module CLI
3
- VERSION = '0.3.4'
3
+ VERSION = '0.3.5'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aptible-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Macreery
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-12 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aptible-api
@@ -141,9 +141,11 @@ files:
141
141
  - bin/aptible
142
142
  - lib/aptible/cli.rb
143
143
  - lib/aptible/cli/agent.rb
144
+ - lib/aptible/cli/helpers/account.rb
144
145
  - lib/aptible/cli/helpers/app.rb
145
146
  - lib/aptible/cli/helpers/operation.rb
146
147
  - lib/aptible/cli/helpers/token.rb
148
+ - lib/aptible/cli/subcommands/apps.rb
147
149
  - lib/aptible/cli/subcommands/config.rb
148
150
  - lib/aptible/cli/subcommands/ssh.rb
149
151
  - lib/aptible/cli/subcommands/tunnel.rb