tddium-preview 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/tddium.rb +3 -2
- data/lib/tddium/constant.rb +2 -0
- data/lib/tddium/heroku.rb +6 -2
- data/lib/tddium/version.rb +1 -1
- data/spec/heroku_spec.rb +26 -0
- data/spec/tddium_spec.rb +1 -1
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/lib/tddium.rb
CHANGED
@@ -33,12 +33,13 @@ class Tddium < Thor
|
|
33
33
|
method_option :email, :type => :string, :default => nil
|
34
34
|
method_option :password, :type => :string, :default => nil
|
35
35
|
method_option :ssh_key_file, :type => :string, :default => nil
|
36
|
+
method_option :app, :type => :string, :default => nil
|
36
37
|
def account
|
37
38
|
set_default_environment(options[:environment])
|
38
39
|
if user_details = user_logged_in?
|
39
40
|
# User is already logged in, so just display the info
|
40
41
|
show_user_details(user_details)
|
41
|
-
elsif heroku_config = HerokuConfig.read_config
|
42
|
+
elsif heroku_config = HerokuConfig.read_config(options[:app])
|
42
43
|
# User has logged in to heroku, and TDDIUM environment variables are
|
43
44
|
# present
|
44
45
|
handle_heroku_user(options, heroku_config)
|
@@ -429,7 +430,7 @@ class Tddium < Thor
|
|
429
430
|
if user && user["user"]["heroku_needs_activation"] != true
|
430
431
|
say Text::Status::HEROKU_CONFIG
|
431
432
|
elsif user
|
432
|
-
say Text::Process::HEROKU_WELCOME
|
433
|
+
say Text::Process::HEROKU_WELCOME % heroku_config['TDDIUM_USER_NAME']
|
433
434
|
params = get_user_credentials(:email => heroku_config['TDDIUM_USER_NAME'])
|
434
435
|
params.delete(:email)
|
435
436
|
params[:password_confirmation] = HighLine.ask(Text::Prompt::PASSWORD_CONFIRMATION) { |q| q.echo = "*" }
|
data/lib/tddium/constant.rb
CHANGED
data/lib/tddium/heroku.rb
CHANGED
@@ -3,11 +3,14 @@ Copyright (c) 2011 Solano Labs All Rights Reserved
|
|
3
3
|
=end
|
4
4
|
|
5
5
|
class HerokuConfig
|
6
|
-
|
6
|
+
REQUIRED_KEYS = %w{TDDIUM_API_KEY TDDIUM_USER_NAME}
|
7
|
+
def self.read_config(app=nil)
|
7
8
|
result = nil
|
8
9
|
begin
|
9
10
|
config = {}
|
10
|
-
|
11
|
+
command = "heroku config -s"
|
12
|
+
command += " --app #{app}" if app
|
13
|
+
output = `#{command}`
|
11
14
|
output.lines.each do |line|
|
12
15
|
line.chomp!
|
13
16
|
k, v = line.split('=')
|
@@ -15,6 +18,7 @@ class HerokuConfig
|
|
15
18
|
config[k] = v
|
16
19
|
end
|
17
20
|
end
|
21
|
+
return nil if REQUIRED_KEYS.inject(false) {|missing, x| !config[x]}
|
18
22
|
result = config if config.keys.length > 0
|
19
23
|
rescue Errno::ENOENT
|
20
24
|
rescue Errno::EPERM
|
data/lib/tddium/version.rb
CHANGED
data/spec/heroku_spec.rb
CHANGED
@@ -7,9 +7,13 @@ require "rspec"
|
|
7
7
|
require "tddium/heroku"
|
8
8
|
|
9
9
|
describe HerokuConfig do
|
10
|
+
SAMPLE_APP = "testapp"
|
10
11
|
SAMPLE_HEROKU_CONFIG_TDDIUM = "
|
11
12
|
TDDIUM_API_KEY=abcdefg
|
12
13
|
TDDIUM_USER_NAME=app1234@heroku.com
|
14
|
+
"
|
15
|
+
SAMPLE_HEROKU_CONFIG_PARTIAL = "
|
16
|
+
TDDIUM_API_KEY=abcdefg
|
13
17
|
"
|
14
18
|
SAMPLE_HEROKU_CONFIG_NO_TDDIUM = "
|
15
19
|
DB_URL=postgres://foo/bar
|
@@ -32,6 +36,28 @@ DB_URL=postgres://foo/bar
|
|
32
36
|
end
|
33
37
|
end
|
34
38
|
|
39
|
+
context "with app specified" do
|
40
|
+
before do
|
41
|
+
HerokuConfig.stub(:`).with("heroku config -s --app #{SAMPLE_APP}").and_return(SAMPLE_HEROKU_CONFIG_TDDIUM)
|
42
|
+
HerokuConfig.should_receive(:`).with("heroku config -s --app #{SAMPLE_APP}")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should pass the app to heroku config" do
|
46
|
+
result = HerokuConfig.read_config(SAMPLE_APP)
|
47
|
+
result.should_not be_nil
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "missing config" do
|
52
|
+
before do
|
53
|
+
HerokuConfig.stub(:`).with("heroku config -s").and_return(SAMPLE_HEROKU_CONFIG_PARTIAL)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should return nil" do
|
57
|
+
HerokuConfig.read_config.should be_nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
35
61
|
context "addon not installed" do
|
36
62
|
before do
|
37
63
|
HerokuConfig.stub(:`).with("heroku config -s").and_return(SAMPLE_HEROKU_CONFIG_NO_TDDIUM)
|
data/spec/tddium_spec.rb
CHANGED
@@ -536,7 +536,7 @@ describe Tddium do
|
|
536
536
|
it_behaves_like "prompt for ssh key"
|
537
537
|
|
538
538
|
it "should display the heroku welcome" do
|
539
|
-
tddium.should_receive(:say).with(Tddium::Text::Process::HEROKU_WELCOME)
|
539
|
+
tddium.should_receive(:say).with(Tddium::Text::Process::HEROKU_WELCOME % SAMPLE_EMAIL)
|
540
540
|
run_account(tddium)
|
541
541
|
end
|
542
542
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tddium-preview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Solano Labs
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-28 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|