webbynode 1.0.5.beta2 → 1.0.5.beta3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of webbynode might be problematic. Click here for more details.
- data/Gemfile +1 -0
- data/Gemfile.lock +17 -0
- data/Manifest +7 -1
- data/Rakefile +2 -1
- data/lib/webbynode/action_command.rb +22 -0
- data/lib/webbynode/api_client.rb +1 -1
- data/lib/webbynode/application.rb +6 -0
- data/lib/webbynode/commands/accounts.rb +23 -6
- data/lib/webbynode/commands/add_backup.rb +1 -1
- data/lib/webbynode/commands/database.rb +93 -0
- data/lib/webbynode/commands/ssh.rb +11 -0
- data/lib/webbynode/git.rb +1 -1
- data/lib/webbynode/io.rb +24 -0
- data/lib/webbynode/push_and.rb +4 -0
- data/lib/webbynode/remote_executor.rb +5 -0
- data/lib/webbynode/server.rb +4 -0
- data/lib/webbynode/taps.rb +74 -0
- data/lib/webbynode.rb +5 -1
- data/spec/webbynode/api_client_spec.rb +6 -0
- data/spec/webbynode/commands/accounts_spec.rb +38 -15
- data/spec/webbynode/commands/database_spec.rb +106 -0
- data/spec/webbynode/commands/init_spec.rb +2 -0
- data/spec/webbynode/commands/remote_spec.rb +3 -1
- data/spec/webbynode/commands/ssh_spec.rb +16 -0
- data/spec/webbynode/commands/tasks_spec.rb +0 -5
- data/spec/webbynode/io_spec.rb +35 -0
- data/spec/webbynode/remote_executor_spec.rb +7 -0
- data/spec/webbynode/server_spec.rb +8 -0
- data/spec/webbynode/taps_spec.rb +95 -0
- data/webbynode.gemspec +8 -6
- metadata +44 -16
@@ -12,23 +12,17 @@ describe Webbynode::Commands::Accounts do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
describe '#default' do
|
16
|
-
subject { prepare nil }
|
17
|
-
|
18
|
-
it "shows current account" do
|
19
|
-
api.should_receive(:credentials).and_return({"email" => "fcoury@me.com", "token" => "apitoken"})
|
20
|
-
io.should_receive(:log).with("Current account: fcoury@me.com")
|
21
|
-
subject.execute
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
15
|
describe '#list' do
|
16
|
+
let(:dir) { Webbynode::Io.home_dir }
|
26
17
|
subject { prepare "list" }
|
27
18
|
|
28
19
|
it "shows all available accounts" do
|
29
|
-
|
30
|
-
io.should_receive(:
|
31
|
-
io.should_receive(:
|
20
|
+
api.should_receive(:credentials).and_return({"email" => "fcoury@me.com", "token" => "apitoken"})
|
21
|
+
io.should_receive(:list_files).with("#{dir}/.webbynode_*").and_return(["#{dir}/.webbynode_personal", "#{dir}/.webbynode_biz"])
|
22
|
+
io.should_receive(:file_matches).with("#{dir}/.webbynode_personal", /email=fcoury@me.com/).and_return(true)
|
23
|
+
io.should_receive(:file_matches).with("#{dir}/.webbynode_biz", /email=fcoury@me.com/).and_return(false)
|
24
|
+
io.should_receive(:log).with("* personal")
|
25
|
+
io.should_receive(:log).with(" biz")
|
32
26
|
subject.execute
|
33
27
|
end
|
34
28
|
|
@@ -78,13 +72,14 @@ describe Webbynode::Commands::Accounts do
|
|
78
72
|
it "renames the properties file" do
|
79
73
|
io.should_receive(:file_exists?).with("#{Webbynode::Io.home_dir}/.webbynode_name").and_return(true)
|
80
74
|
io.should_receive(:copy_file).with("#{Webbynode::Io.home_dir}/.webbynode_name", "#{Webbynode::Io.home_dir}/.webbynode")
|
75
|
+
io.should_receive(:log).with("Successfully switched to account alias name.")
|
81
76
|
subject.execute
|
82
77
|
end
|
83
78
|
|
84
79
|
context "when file doesn't exist" do
|
85
80
|
it "shows an error message" do
|
86
81
|
io.should_receive(:file_exists?).with("#{Webbynode::Io.home_dir}/.webbynode_name").and_return(false)
|
87
|
-
io.should_receive(:log).with("Account alias
|
82
|
+
io.should_receive(:log).with("Account alias name not found. Use wn account list for a full list.")
|
88
83
|
subject.execute
|
89
84
|
end
|
90
85
|
end
|
@@ -111,9 +106,37 @@ describe Webbynode::Commands::Accounts do
|
|
111
106
|
context "when account doesn't exist" do
|
112
107
|
it "shows an error" do
|
113
108
|
io.should_receive(:file_exists?).with("#{Webbynode::Io.home_dir}/.webbynode_name").and_return(false)
|
114
|
-
io.should_receive(:log).with("Account alias
|
109
|
+
io.should_receive(:log).with("Account alias name not found. Use wn account list for a full list.")
|
115
110
|
subject.execute
|
116
111
|
end
|
117
112
|
end
|
118
113
|
end
|
114
|
+
|
115
|
+
describe '#rename' do
|
116
|
+
let(:dir) { Webbynode::Io.home_dir }
|
117
|
+
subject { prepare "rename", "old_name", "new_name" }
|
118
|
+
|
119
|
+
it "renames the .webbynode_xxx file" do
|
120
|
+
io.should_receive(:file_exists?).with("#{dir}/.webbynode_old_name").and_return(true)
|
121
|
+
io.should_receive(:file_exists?).with("#{dir}/.webbynode_new_name").and_return(false)
|
122
|
+
io.should_receive(:rename_file).with("#{dir}/.webbynode_old_name", "#{dir}/.webbynode_new_name")
|
123
|
+
io.should_receive(:log).with("Account alias old_name successfully renamed to new_name.")
|
124
|
+
subject.execute
|
125
|
+
end
|
126
|
+
|
127
|
+
it "raises an error if file doesn't exist" do
|
128
|
+
io.should_receive(:file_exists?).with("#{dir}/.webbynode_old_name").and_return(false)
|
129
|
+
io.should_receive(:rename_file).never
|
130
|
+
io.should_receive(:log).with(/not found/)
|
131
|
+
subject.execute
|
132
|
+
end
|
133
|
+
|
134
|
+
it "raises an error if target file already exist" do
|
135
|
+
io.should_receive(:file_exists?).with("#{dir}/.webbynode_old_name").and_return(true)
|
136
|
+
io.should_receive(:file_exists?).with("#{dir}/.webbynode_new_name").and_return(true)
|
137
|
+
io.should_receive(:rename_file).never
|
138
|
+
io.should_receive(:log).with("Account alias new_name already exists, use wn account delete to remove it first.")
|
139
|
+
subject.execute
|
140
|
+
end
|
141
|
+
end
|
119
142
|
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
# Load Spec Helper
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
|
3
|
+
|
4
|
+
describe Webbynode::Commands::Database do
|
5
|
+
let(:io) { double("io").as_null_object }
|
6
|
+
let(:re) { double("re").as_null_object }
|
7
|
+
let(:git) { double("git").as_null_object }
|
8
|
+
let(:pa) { double("pushand").as_null_object }
|
9
|
+
|
10
|
+
def prepare(*params)
|
11
|
+
Webbynode::Commands::Database.new(*params).tap do |a|
|
12
|
+
a.stub(:io).and_return(io)
|
13
|
+
a.stub(:remote_executor).and_return(re)
|
14
|
+
a.stub(:git).and_return(git)
|
15
|
+
a.stub(:pushand).and_return(pa)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#pull' do
|
20
|
+
subject { prepare "pull" }
|
21
|
+
|
22
|
+
it "asks the local database credentials and name" do
|
23
|
+
io.should_receive(:load_setting).with("database_name").and_return(nil)
|
24
|
+
io.should_receive(:load_setting).with("database_password").and_return(nil)
|
25
|
+
|
26
|
+
io.should_receive(:db_name).any_number_of_times.and_return("myapp")
|
27
|
+
|
28
|
+
subject.should_receive(:ask).with("Database name [myapp]: ").and_return("")
|
29
|
+
subject.should_receive(:ask).with(" User name [myapp]: ").and_return("")
|
30
|
+
subject.should_receive(:ask).with(" Password []: ").and_return("")
|
31
|
+
subject.should_receive(:ask).with("Save password (y/n)? ").and_return("y")
|
32
|
+
|
33
|
+
subject.ask_db_credentials
|
34
|
+
end
|
35
|
+
|
36
|
+
context "when user doesn't authorize" do
|
37
|
+
it "stores all data but password" do
|
38
|
+
io.should_receive(:load_setting).with("database_name").and_return(nil)
|
39
|
+
io.should_receive(:load_setting).with("database_password").and_return(nil)
|
40
|
+
|
41
|
+
io.should_receive(:db_name).any_number_of_times.and_return("myapp")
|
42
|
+
|
43
|
+
subject.should_receive(:ask).with("Database name [myapp]: ").and_return("")
|
44
|
+
subject.should_receive(:ask).with(" User name [myapp]: ").and_return("user")
|
45
|
+
subject.should_receive(:ask).with(" Password []: ").and_return("password")
|
46
|
+
|
47
|
+
io.should_receive(:add_setting).with("database_name", "myapp")
|
48
|
+
io.should_receive(:add_setting).with("database_user", "user")
|
49
|
+
io.should_receive(:add_setting).with("database_password", "password").never
|
50
|
+
subject.should_receive(:ask).with("Save password (y/n)? ").and_return("n")
|
51
|
+
|
52
|
+
subject.ask_db_credentials
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context "when user authorizes" do
|
57
|
+
it "stores the password" do
|
58
|
+
io.should_receive(:load_setting).with("database_name").and_return(nil)
|
59
|
+
io.should_receive(:load_setting).with("database_password").and_return(nil)
|
60
|
+
|
61
|
+
io.should_receive(:db_name).any_number_of_times.and_return("myapp")
|
62
|
+
|
63
|
+
subject.should_receive(:ask).with("Database name [myapp]: ").and_return("")
|
64
|
+
subject.should_receive(:ask).with(" User name [myapp]: ").and_return("user")
|
65
|
+
subject.should_receive(:ask).with(" Password []: ").and_return("password")
|
66
|
+
subject.should_receive(:ask).with("Save password (y/n)? ").and_return("y")
|
67
|
+
|
68
|
+
io.should_receive(:add_setting).with("database_password", "password")
|
69
|
+
|
70
|
+
subject.ask_db_credentials
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context "when password not stored" do
|
75
|
+
it "prompts for the password again" do
|
76
|
+
io.should_receive(:load_setting).with("database_password").and_return(nil)
|
77
|
+
|
78
|
+
io.should_receive(:load_setting).with("database_name").and_return("dbname")
|
79
|
+
io.should_receive(:load_setting).with("database_user").and_return("user")
|
80
|
+
|
81
|
+
subject.should_receive(:ask).with(" Password []: ").and_return("password")
|
82
|
+
subject.should_receive(:ask).with("Save password (y/n)? ").and_return("n")
|
83
|
+
subject.ask_db_credentials
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when password is stored" do
|
88
|
+
it "doesn't prompt for password again" do
|
89
|
+
io.should_receive(:load_setting).with("database_password").and_return("password")
|
90
|
+
|
91
|
+
io.should_receive(:load_setting).with("database_name").and_return("dbname")
|
92
|
+
io.should_receive(:load_setting).with("database_user").and_return("user")
|
93
|
+
|
94
|
+
subject.should_receive(:ask).with(" Password []: ").never
|
95
|
+
subject.should_receive(:ask).with("Save password (y/n)? ").never
|
96
|
+
subject.ask_db_credentials
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "#pull" do
|
101
|
+
it "executes taps" do
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -158,6 +158,7 @@ describe Webbynode::Commands::Init do
|
|
158
158
|
io_handler.stub!(:add_to_git_ignore)
|
159
159
|
|
160
160
|
Webbynode::Git.stub(:new).and_return(git_handler)
|
161
|
+
Webbynode::Io.stub(:new).and_return(mock("io").as_null_object)
|
161
162
|
|
162
163
|
subject.stub!(:option).with(:engine).and_return('rails')
|
163
164
|
subject.send(:detect_engine)
|
@@ -513,6 +514,7 @@ describe Webbynode::Commands::Init do
|
|
513
514
|
@command.api.should_receive(:ask).with("API token: ").and_return("234def")
|
514
515
|
@command.api.should_receive(:ask).with("Login email: ").and_return("abc123")
|
515
516
|
@command.api.should_receive(:properties).any_number_of_times.and_return(props)
|
517
|
+
api.stub(:puts)
|
516
518
|
@command.run
|
517
519
|
|
518
520
|
stdout.should =~ /Couldn't find Webby 'my_webby_name' on your account. Your Webbies are/
|
@@ -25,6 +25,7 @@ describe Webbynode::Commands::Remote do
|
|
25
25
|
|
26
26
|
it "should notify the user" do
|
27
27
|
io.should_receive(:log).with("Executing remote command...")
|
28
|
+
remote.stub(:puts)
|
28
29
|
remote.run
|
29
30
|
end
|
30
31
|
|
@@ -54,7 +55,7 @@ describe Webbynode::Commands::Remote do
|
|
54
55
|
load_all_mocks(remote)
|
55
56
|
remote.stub(:validate_initialization)
|
56
57
|
remote.stub(:validate_remote_application_availability)
|
57
|
-
|
58
|
+
|
58
59
|
re.should_receive(:exec).with("cd webbynode; these are the params", false).and_return("something")
|
59
60
|
remote.run
|
60
61
|
end
|
@@ -62,6 +63,7 @@ describe Webbynode::Commands::Remote do
|
|
62
63
|
it "should parse the pushand file for the application folder name on the remote server" do
|
63
64
|
remote.stub(:validate_initialization)
|
64
65
|
pushand.should_receive(:parse_remote_app_name).and_return("dummy_app")
|
66
|
+
remote.stub(:puts)
|
65
67
|
remote.run
|
66
68
|
end
|
67
69
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Load Spec Helper
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
|
3
|
+
|
4
|
+
describe Webbynode::Commands::Ssh do
|
5
|
+
let(:server) { double("server") }
|
6
|
+
|
7
|
+
subject do
|
8
|
+
Webbynode::Commands::Ssh.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "runs ssh using the git user" do
|
12
|
+
subject.should_receive(:server).and_return(server)
|
13
|
+
server.should_receive(:ssh)
|
14
|
+
subject.execute
|
15
|
+
end
|
16
|
+
end
|
@@ -150,11 +150,6 @@ describe Webbynode::Commands::Tasks do
|
|
150
150
|
end
|
151
151
|
|
152
152
|
context "should initialize the [add] or [remove] action, depending on user input" do
|
153
|
-
it "should have a [add] and [remove] method availble" do
|
154
|
-
task.private_methods.should include('add')
|
155
|
-
task.private_methods.should include('remove')
|
156
|
-
end
|
157
|
-
|
158
153
|
it "should initialize the [add] method" do
|
159
154
|
task.should_receive(:send).with('add')
|
160
155
|
task.execute
|
data/spec/webbynode/io_spec.rb
CHANGED
@@ -11,6 +11,7 @@ describe Webbynode::Io do
|
|
11
11
|
|
12
12
|
describe '#sed' do
|
13
13
|
it 'replaces a regexp' do
|
14
|
+
pending "Missing fixture settings.py"
|
14
15
|
text = read_fixture('settings.py')
|
15
16
|
File.should_receive(:read).with('settings.template.py').and_return(text)
|
16
17
|
File.should_receive(:open).with('settings.template.py', 'w').and_yield(file = double('File'))
|
@@ -44,6 +45,22 @@ describe Webbynode::Io do
|
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
48
|
+
describe '#db_name' do
|
49
|
+
context "when successful" do
|
50
|
+
it "should return the current folder" do
|
51
|
+
Dir.should_receive(:pwd).and_return("/some/deep/folder/where/you/find/app_name")
|
52
|
+
Webbynode::Io.new.db_name.should == "appname"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should transform dots and spaces into underscores" do
|
56
|
+
Dir.should_receive(:pwd).and_return("/some/deep/folder/where/you/find/my.app here")
|
57
|
+
Webbynode::Io.new.db_name.should == "myapphere"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
|
47
64
|
describe '#add_setting' do
|
48
65
|
let(:io) { Webbynode::Io.new }
|
49
66
|
|
@@ -337,4 +354,22 @@ describe Webbynode::Io do
|
|
337
354
|
cfg[:other].should == "rest"
|
338
355
|
end
|
339
356
|
end
|
357
|
+
|
358
|
+
describe '#rename_file' do
|
359
|
+
it "renames the file" do
|
360
|
+
File.should_receive(:rename).with("old", "new")
|
361
|
+
subject.rename_file "old", "new"
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
describe '#file_matches' do
|
366
|
+
before(:each) do
|
367
|
+
File.stub(:read).with('file').and_return("name = felipe\nage = 12")
|
368
|
+
end
|
369
|
+
|
370
|
+
it 'compares file contents against a regexp' do
|
371
|
+
subject.file_matches("file", /name = felipe/).should be_true
|
372
|
+
subject.file_matches("file", /name = paulo/).should be_false
|
373
|
+
end
|
374
|
+
end
|
340
375
|
end
|
@@ -9,6 +9,13 @@ describe Webbynode::RemoteExecutor do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
describe '#retrieve_db_password' do
|
13
|
+
it "retrieves the remote db password" do
|
14
|
+
subject.should_receive(:exec).with(%q(echo `cat /var/webbynode/templates/rails/database.yml | grep password: | tail -1 | cut -d ":" -f 2`)).and_return("password\n")
|
15
|
+
subject.retrieve_db_password.should == "password"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
12
19
|
describe "#new" do
|
13
20
|
subject { Webbynode::RemoteExecutor.new("2.1.2.2", 'user', 2020) }
|
14
21
|
|
@@ -10,6 +10,14 @@ describe Webbynode::Server do
|
|
10
10
|
Webbynode::Server.new("1.2.3.4", "git", 22).remote_executor.class.should == Webbynode::RemoteExecutor
|
11
11
|
end
|
12
12
|
|
13
|
+
describe '#ssh' do
|
14
|
+
it "connects to the server" do
|
15
|
+
server = Webbynode::Server.new("1.2.3.4", "git", 22)
|
16
|
+
Kernel.should_receive(:exec).with("ssh -p 22 git@1.2.3.4")
|
17
|
+
server.ssh
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
13
21
|
describe '#new' do
|
14
22
|
it "creates an SSH connection with proper settings" do
|
15
23
|
Webbynode::Ssh.should_receive(:new).with("1.2.3.4", "git", 22)
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# Load Spec Helper
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '..', 'spec_helper')
|
3
|
+
|
4
|
+
describe Webbynode::Taps do
|
5
|
+
let(:io) { double("io").as_null_object }
|
6
|
+
let(:re) { double("re").as_null_object }
|
7
|
+
|
8
|
+
subject do
|
9
|
+
Webbynode::Taps.new("dbname", "password", io, re)
|
10
|
+
end
|
11
|
+
|
12
|
+
its(:database) { should == "dbname" }
|
13
|
+
its(:database_password) { should == "password" }
|
14
|
+
its(:io) { should == io }
|
15
|
+
its(:remote_executor) { should == re }
|
16
|
+
|
17
|
+
it "installs taps gem remotely, if missing"
|
18
|
+
it "detects taps already running"
|
19
|
+
|
20
|
+
describe '#start' do
|
21
|
+
it "starts a tap server" do
|
22
|
+
io.should_receive(:random_password).and_return("some_username")
|
23
|
+
io.should_receive(:random_password).and_return("some_password")
|
24
|
+
|
25
|
+
re.should_receive(:exec).with("bash -c 'nohup taps server mysql://dbname:password@localhost/dbname some_username some_password > /dev/null 2>&1 &\necho $!'").and_return("12145\n")
|
26
|
+
|
27
|
+
subject.start
|
28
|
+
subject.pid.should == "12145"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "reports a failure in case the result is not a PID" do
|
32
|
+
re.should_receive(:exec).and_return("Bad credentials given for http://UIK7MgBLx3:[hidden]@174.122.137.2:5000")
|
33
|
+
|
34
|
+
lambda { subject.start }.should raise_error
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '#pull' do
|
39
|
+
context "when started" do
|
40
|
+
before(:each) do
|
41
|
+
subject.stub(:user).and_return("user")
|
42
|
+
subject.stub(:password).and_return("password")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "executes the pull command locally" do
|
46
|
+
taps_cli = double('taps')
|
47
|
+
::Taps::Cli.stub(:new).and_return(taps_cli)
|
48
|
+
|
49
|
+
taps_cli.should_receive(:clientxfer).with(:pull,
|
50
|
+
:database_url => "mysql://local_user:local_password@localhost/local_db",
|
51
|
+
:remote_url => "http://user:password@1.1.2.2:5000")
|
52
|
+
|
53
|
+
subject.pull :user => "local_user",
|
54
|
+
:password => "local_password",
|
55
|
+
:database => "local_db",
|
56
|
+
:remote_ip => "1.1.2.2"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "raises an error if pull fails" do
|
60
|
+
pending "find a better way to detect errors"
|
61
|
+
io.should_receive(:execute).and_return(1)
|
62
|
+
|
63
|
+
lambda { subject.pull({}) }.should raise_error
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when not started" do
|
68
|
+
it "raises an error" do
|
69
|
+
lambda { subject.pull }.should raise_error
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '#finish' do
|
75
|
+
before(:each) do
|
76
|
+
re.should_receive(:exec).with(/taps server/).and_return("1234\n")
|
77
|
+
subject.start
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when successful" do
|
81
|
+
it "kills taps remotely" do
|
82
|
+
re.should_receive(:exec).with("kill -9 1234").and_return(0)
|
83
|
+
subject.finish
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when unsuccessful" do
|
88
|
+
it "raises an error" do
|
89
|
+
pending "find a better way to detect errors"
|
90
|
+
re.should_receive(:exec).with("kill -9 1234").and_return(1)
|
91
|
+
lambda { subject.finish }.should raise_error
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/webbynode.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{webbynode}
|
5
|
-
s.version = "1.0.5.
|
5
|
+
s.version = "1.0.5.beta3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Felipe Coury"]
|
9
|
-
s.date = %q{2011-
|
9
|
+
s.date = %q{2011-04-12}
|
10
10
|
s.description = %q{Webbynode Deployment Gem}
|
11
11
|
s.email = %q{felipe@webbynode.com}
|
12
12
|
s.executables = ["webbynode", "wn"]
|
13
|
-
s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/accounts.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/guides.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
|
14
|
-
s.files = ["Gemfile", "Gemfile.lock", "Guardfile", "Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "autotest/discover.rb", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/accounts.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/guides.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/accounts_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/authorize_root_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/guides_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/html_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
|
13
|
+
s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/action_command.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/accounts.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/database.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/guides.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/ssh.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/taps.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
|
14
|
+
s.files = ["Gemfile", "Gemfile.lock", "Guardfile", "Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "autotest/discover.rb", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/action_command.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/accounts.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/database.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/guides.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/ssh.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/taps.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/accounts_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/authorize_root_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/database_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/guides_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/ssh_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/html_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/taps_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
|
15
15
|
s.homepage = %q{http://webbynode.com}
|
16
16
|
s.post_install_message = %q{
|
17
17
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
@@ -33,16 +33,16 @@ wn guides
|
|
33
33
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Webbynode", "--main", "README.rdoc"]
|
34
34
|
s.require_paths = ["lib"]
|
35
35
|
s.rubyforge_project = %q{webbynode}
|
36
|
-
s.rubygems_version = %q{1.
|
36
|
+
s.rubygems_version = %q{1.6.2}
|
37
37
|
s.summary = %q{Webbynode Deployment Gem}
|
38
38
|
|
39
39
|
if s.respond_to? :specification_version then
|
40
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
41
40
|
s.specification_version = 3
|
42
41
|
|
43
42
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
43
|
s.add_runtime_dependency(%q<bundler>, [">= 0.9.26"])
|
45
44
|
s.add_runtime_dependency(%q<net-ssh>, ["= 2.1.0"])
|
45
|
+
s.add_runtime_dependency(%q<taps>, ["~> 0.3.19"])
|
46
46
|
s.add_runtime_dependency(%q<highline>, [">= 1.5.2"])
|
47
47
|
s.add_runtime_dependency(%q<httparty>, [">= 0.4.5"])
|
48
48
|
s.add_runtime_dependency(%q<launchy>, [">= 0.3.7"])
|
@@ -51,6 +51,7 @@ wn guides
|
|
51
51
|
else
|
52
52
|
s.add_dependency(%q<bundler>, [">= 0.9.26"])
|
53
53
|
s.add_dependency(%q<net-ssh>, ["= 2.1.0"])
|
54
|
+
s.add_dependency(%q<taps>, ["~> 0.3.19"])
|
54
55
|
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
55
56
|
s.add_dependency(%q<httparty>, [">= 0.4.5"])
|
56
57
|
s.add_dependency(%q<launchy>, [">= 0.3.7"])
|
@@ -60,6 +61,7 @@ wn guides
|
|
60
61
|
else
|
61
62
|
s.add_dependency(%q<bundler>, [">= 0.9.26"])
|
62
63
|
s.add_dependency(%q<net-ssh>, ["= 2.1.0"])
|
64
|
+
s.add_dependency(%q<taps>, ["~> 0.3.19"])
|
63
65
|
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
64
66
|
s.add_dependency(%q<httparty>, [">= 0.4.5"])
|
65
67
|
s.add_dependency(%q<launchy>, [">= 0.3.7"])
|