yads 0.1.2 → 0.2.0

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/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: