shacho 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.
data/README.md CHANGED
@@ -29,7 +29,8 @@
29
29
  A command-line utility that helps manage all your accounts and associated keys for heroku.
30
30
 
31
31
  # why
32
- A collection of bash scripts and heroku_plus wasn't cutting it for me. I like my utilities to be RESTy.
32
+ [heroku_plus](https://github.com/bkuhlmann/heroku_plus) is pretty cool
33
+ but I wanted something a little different.
33
34
 
34
35
  # installation
35
36
 
@@ -43,8 +44,9 @@ shacho action resource params
43
44
  ```
44
45
 
45
46
  Where `action` is one of the standard CRUDy actions:
46
- - create
47
- - use
47
+ * create
48
+ * use
49
+ * list
48
50
 
49
51
  And `resource` is account (for now).
50
52
 
@@ -60,4 +62,9 @@ shacho create account default
60
62
  ```
61
63
  # Use:
62
64
  shacho use account default
65
+ ```
66
+
67
+ ```
68
+ #List:
69
+ shacho list account
63
70
  ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -19,7 +19,15 @@ module Shacho
19
19
  name = options.first
20
20
  credential_file = "#{HEROKU_PREFIX}/accounts/#{name}/credentials"
21
21
  heroku_credentials = "#{HEROKU_PREFIX}/credentials"
22
- FileUtils.ln_s credential_file, heroku_credentials, :force => true
22
+ FileUtils.ln_sf credential_file, heroku_credentials
23
+ end
24
+
25
+ def self.list(options)
26
+ # TODO Throw error for incorrect usage
27
+ Dir.glob("#{HEROKU_PREFIX}/accounts/*").each do |f|
28
+ account_name = File.basename(f)
29
+ puts account_name if !(["..", "."].include?(f))
30
+ end
23
31
  end
24
32
  end
25
33
  end
data/lib/shacho.rb CHANGED
@@ -7,6 +7,6 @@ module Shacho
7
7
 
8
8
  # TODO only need to use actions
9
9
  # method_missing willl help with error handling
10
- COMMANDS = {"action" => ["create", "use", "help"],
10
+ COMMANDS = {"action" => ["create", "use", "list", "help"],
11
11
  "resource" => ["account"]}
12
12
  end
data/shacho.gemspec ADDED
@@ -0,0 +1,80 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "shacho"
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Kelly"]
12
+ s.date = "2011-10-22"
13
+ s.description = "manages keysets for multiple heroku accounts"
14
+ s.email = "defaultstring@gmail.com"
15
+ s.executables = ["shacho"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE.txt",
18
+ "README.md"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".rspec",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "bin/shacho",
30
+ "lib/shacho.rb",
31
+ "lib/shacho/account.rb",
32
+ "lib/shacho/credential.rb",
33
+ "lib/shacho/key.rb",
34
+ "lib/shacho/runner.rb",
35
+ "lib/shacho/util.rb",
36
+ "shacho.gemspec",
37
+ "spec/accounts/list_account_spec.rb",
38
+ "spec/accounts/new_account_spec.rb",
39
+ "spec/accounts/use_account_spec.rb",
40
+ "spec/helpers/core.rb",
41
+ "spec/shacho_spec.rb",
42
+ "spec/spec_helper.rb"
43
+ ]
44
+ s.homepage = "http://github.com/kellydunn/shacho"
45
+ s.licenses = ["MIT"]
46
+ s.require_paths = ["lib"]
47
+ s.rubygems_version = "1.8.10"
48
+ s.summary = "manages keysets for multiple heroku accounts"
49
+
50
+ if s.respond_to? :specification_version then
51
+ s.specification_version = 3
52
+
53
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
+ s.add_runtime_dependency(%q<heroku>, [">= 0"])
55
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
56
+ s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
57
+ s.add_development_dependency(%q<mocha>, [">= 0"])
58
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
60
+ s.add_development_dependency(%q<rcov>, [">= 0"])
61
+ else
62
+ s.add_dependency(%q<heroku>, [">= 0"])
63
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
64
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
65
+ s.add_dependency(%q<mocha>, [">= 0"])
66
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
68
+ s.add_dependency(%q<rcov>, [">= 0"])
69
+ end
70
+ else
71
+ s.add_dependency(%q<heroku>, [">= 0"])
72
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
73
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
74
+ s.add_dependency(%q<mocha>, [">= 0"])
75
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
76
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
77
+ s.add_dependency(%q<rcov>, [">= 0"])
78
+ end
79
+ end
80
+
@@ -0,0 +1,14 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Listing accounts" do
4
+ include CoreHelper
5
+
6
+ before :each do
7
+ create_account
8
+ end
9
+
10
+ it "should list all accounts created" do
11
+ results = capture_stdout { Shacho::Account.list([]) }
12
+ results.should == "test\n"
13
+ end
14
+ end
data/spec/helpers/core.rb CHANGED
@@ -9,4 +9,15 @@ module CoreHelper
9
9
  contents = file.read.split("\n")
10
10
  contents
11
11
  end
12
+
13
+ def capture_stdout(&block)
14
+ origin = $stdout
15
+ $stdout = fake = StringIO.new
16
+ begin
17
+ yield
18
+ ensure
19
+ $stdout = origin
20
+ end
21
+ fake.string
22
+ end
12
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shacho
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:
@@ -13,7 +13,7 @@ date: 2011-10-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: heroku
16
- requirement: &13481600 !ruby/object:Gem::Requirement
16
+ requirement: &11335820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13481600
24
+ version_requirements: *11335820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &13480420 !ruby/object:Gem::Requirement
27
+ requirement: &11335300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.3.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *13480420
35
+ version_requirements: *11335300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: ruby-debug19
38
- requirement: &13478220 !ruby/object:Gem::Requirement
38
+ requirement: &11334580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *13478220
46
+ version_requirements: *11334580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
- requirement: &13477020 !ruby/object:Gem::Requirement
49
+ requirement: &11333840 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *13477020
57
+ version_requirements: *11333840
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &13475480 !ruby/object:Gem::Requirement
60
+ requirement: &11333120 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *13475480
68
+ version_requirements: *11333120
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &13474540 !ruby/object:Gem::Requirement
71
+ requirement: &11332380 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.6.4
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *13474540
79
+ version_requirements: *11332380
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rcov
82
- requirement: &13458700 !ruby/object:Gem::Requirement
82
+ requirement: &11331680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *13458700
90
+ version_requirements: *11331680
91
91
  description: manages keysets for multiple heroku accounts
92
92
  email: defaultstring@gmail.com
93
93
  executables:
@@ -112,6 +112,8 @@ files:
112
112
  - lib/shacho/key.rb
113
113
  - lib/shacho/runner.rb
114
114
  - lib/shacho/util.rb
115
+ - shacho.gemspec
116
+ - spec/accounts/list_account_spec.rb
115
117
  - spec/accounts/new_account_spec.rb
116
118
  - spec/accounts/use_account_spec.rb
117
119
  - spec/helpers/core.rb
@@ -132,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
134
  version: '0'
133
135
  segments:
134
136
  - 0
135
- hash: -8561316424044421
137
+ hash: 721094679413870515
136
138
  required_rubygems_version: !ruby/object:Gem::Requirement
137
139
  none: false
138
140
  requirements: