yads 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/bin/yads CHANGED
@@ -11,6 +11,7 @@ opts.parse do |action|
11
11
  deployer.send(action)
12
12
  else
13
13
  puts "Unknow command \"#{action}\""
14
- puts "Usage: yads [setup|deploy]"
14
+ commands = ["setup", "deploy"].concat(deployer.command_names).join("|")
15
+ puts "Usage: yads [#{commands}]"
15
16
  end
16
17
  end
data/lib/yads/deployer.rb CHANGED
@@ -24,6 +24,31 @@ module Yads
24
24
  end
25
25
  end
26
26
 
27
+ def method_missing(name, *args)
28
+ if command_names.include?(name.to_s)
29
+ commands = ["cd #{config["path"]}", config["commands"][name.to_s]]
30
+ commands = commands.join(" && ")
31
+ @logger.puts("> #{commands}")
32
+ connection.execute(commands) do |output|
33
+ @logger.print(output)
34
+ end
35
+ else
36
+ super
37
+ end
38
+ end
39
+
40
+ def respond_to?(name)
41
+ if command_names.include?(name.to_s)
42
+ true
43
+ else
44
+ super
45
+ end
46
+ end
47
+
48
+ def command_names
49
+ config["commands"].keys
50
+ end
51
+
27
52
  private
28
53
 
29
54
  def config
data/lib/yads/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yads
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -70,6 +70,31 @@ class TestYads < MiniTest::Unit::TestCase
70
70
  end
71
71
  end
72
72
 
73
+ def test_command_names
74
+ inside_project_root do
75
+ deployer = Yads::Deployer.new(@log_file)
76
+ assert_equal ["migrate", "touch"], deployer.command_names
77
+ end
78
+ end
79
+
80
+ def test_respond_to_command
81
+ inside_project_root do
82
+ deployer = Yads::Deployer.new(@log_file)
83
+ assert deployer.respond_to?(:migrate), "Deployer does not respond to :migrate"
84
+ end
85
+ end
86
+
87
+ def test_execute_the_command
88
+ inside_project_root do
89
+ ssh = mock
90
+ ssh.expects(:execute).with("cd /tmp/yads && rake db:migrate")
91
+ Yads::SSH.expects(:new).with(:host => "rafaelss.com", :user => "deploy", :forward_agent => true).returns(ssh)
92
+
93
+ deployer = Yads::Deployer.new(@log_file)
94
+ deployer.migrate
95
+ end
96
+ end
97
+
73
98
  private
74
99
 
75
100
  def inside_project_root(&block)
data/yads.gemspec CHANGED
@@ -17,10 +17,10 @@ Gem::Specification.new do |s|
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
19
 
20
- s.add_runtime_dependency "net-ssh", "~> 2.1.0"
21
- s.add_runtime_dependency "slop", "~> 1.5.2"
20
+ s.add_runtime_dependency "net-ssh", "~> 2.3.0"
21
+ s.add_runtime_dependency "slop", "~> 3.1.1"
22
22
 
23
23
  s.add_development_dependency "rake", ">= 0.8.7"
24
- s.add_development_dependency "minitest", "~> 2.0.2"
25
- s.add_development_dependency "mocha", "~> 0.9.10"
24
+ s.add_development_dependency "minitest", "~> 2.12.1"
25
+ s.add_development_dependency "mocha", "~> 0.11.4"
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yads
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,33 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-09 00:00:00.000000000 Z
12
+ date: 2012-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-ssh
16
- requirement: &70191598240660 !ruby/object:Gem::Requirement
16
+ requirement: &70142999344600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 2.1.0
21
+ version: 2.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70191598240660
24
+ version_requirements: *70142999344600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: slop
27
- requirement: &70191598239280 !ruby/object:Gem::Requirement
27
+ requirement: &70142999353880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 1.5.2
32
+ version: 3.1.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70191598239280
35
+ version_requirements: *70142999353880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70191598237440 !ruby/object:Gem::Requirement
38
+ requirement: &70142999352620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,29 +43,29 @@ dependencies:
43
43
  version: 0.8.7
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70191598237440
46
+ version_requirements: *70142999352620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &70191598236560 !ruby/object:Gem::Requirement
49
+ requirement: &70142999351400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.2
54
+ version: 2.12.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70191598236560
57
+ version_requirements: *70142999351400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mocha
60
- requirement: &70191598251880 !ruby/object:Gem::Requirement
60
+ requirement: &70142999364060 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
64
64
  - !ruby/object:Gem::Version
65
- version: 0.9.10
65
+ version: 0.11.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70191598251880
68
+ version_requirements: *70142999364060
69
69
  description: Simple deployment tool that uses a single YAML file to put your code
70
70
  live
71
71
  email:
@@ -121,3 +121,4 @@ test_files:
121
121
  - test/test_helper.rb
122
122
  - test/yads/test_deployer.rb
123
123
  - test/yads/test_ssh.rb
124
+ has_rdoc: