taketo 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -11,3 +11,5 @@ coverage/
11
11
  *.sublime-project
12
12
  *.sublime-workspace
13
13
  Gemfile.lock
14
+ .ruby-version
15
+ .ruby-gemset
data/CHANGELOG.md ADDED
@@ -0,0 +1,85 @@
1
+ The Changelog:
2
+ --------------
3
+
4
+ ### v0.2.0 (12.04.2013) ###
5
+ * Add --edit-config option to launch editor with taketo config
6
+
7
+ ### v0.2.0.alpha (11.02.2013) ###
8
+ * Add support for server groups. The list of servers in particular group can be obtained
9
+ with the following command:
10
+ ```taketo <group_name> --list```
11
+
12
+ This becomes especially useful with [tmuxall](https://github.com/v-yarotsky/tmuxall).
13
+
14
+ ### v0.1.2 (12.12.2012) ###
15
+ * Fix server aliases bug, bump version to 0.1.2 at 12.12.2012 :)
16
+
17
+ ### v0.1.1 (04.12.2012) ###
18
+ * Add basic autocompletion support for ZSH, see scripts/zsh/completion
19
+
20
+ ### v0.1.0 (04.12.2012) ###
21
+ * Servers can now be outside projects and environments (userful for standalone servers)
22
+ * SSH config is being generated both for hostnames and global aliases
23
+
24
+ ### v0.0.10 (17.11.2012) ###
25
+ * Add ability to generate ssh config
26
+
27
+ ### v0.0.9 (17.11.2012) ###
28
+ * Add default_command server config option
29
+
30
+ ### v0.0.8 (17.11.2012) ###
31
+ * Add per-config, per-project and per-environment default server config support, i.e.
32
+ ```ruby
33
+ default_server_config { env :TERM => 'xterm-256color' } # Global default server config
34
+
35
+ project :p1 do
36
+ default_server_config { env :FOO => 'bar' } # global default server config is merged
37
+ ...
38
+ end
39
+ ```
40
+
41
+ * Shared server configs can be included without redundant empty-array arguments, i.e.
42
+ ```ruby
43
+ include_shared_server_configs(:foo, :bar, :baz => [:arg1, :arg2], :qux => :arg3)
44
+ ```
45
+
46
+ ### v0.0.7 (08.10.2012) ###
47
+ * Add ability to include several shared server config at once
48
+ Use hash as include_shared_server_config parameter to include
49
+ multiple shared server configs with arguments, like:
50
+ ```ruby
51
+ include_shared_server_configs(:foo => :some_arg, :bar => [:arg1, :arg2])
52
+ ```
53
+ or just enumerate them if no arguments needed:
54
+ ```ruby
55
+ include_shared_server_configs(:baz, :quux)
56
+ ```
57
+
58
+ NOTE: This change will break your config if you've used parametrized
59
+ shared server configs before; rewrite them using hash-form
60
+
61
+ ### v0.0.6 (26.07.2012) ###
62
+ * Add identity_file server config option
63
+ * Add shared server config support
64
+
65
+ ### v0.0.5 (24.07.2012) ###
66
+ * Add --directory option, which enables specifying directory on remote server upon launch
67
+ * Add global_alias config option for servers
68
+
69
+ ### v0.0.4 (22.07.2012) ###
70
+ * Add --view option. Now you can view your config quickly: ```taketo my_project:environment:server --view``` or just ```taketo --view```
71
+ * Now commands can have description
72
+
73
+ ### v0.0.3 (22.07.2012) ###
74
+ * Add default_destination config option
75
+ * Add intelligent destination resolving
76
+
77
+ ### v0.0.2 (21.07.2012) ###
78
+ * Add ability to define environment variables
79
+ * Add support for server commands
80
+
81
+ ### v0.0.1 (13.06.2012) ###
82
+ * Initial release
83
+ * Support for simplest configs
84
+
85
+
data/README.md CHANGED
@@ -42,7 +42,7 @@ However, I recommend doing a few things for better user experience:
42
42
  Usage:
43
43
  ------
44
44
 
45
- puts a config into ```~/.taketo.rc.rb```:
45
+ put a config into ```~/.taketo.rc.rb```:
46
46
 
47
47
  ```ruby
48
48
  project :my_project do
@@ -157,101 +157,41 @@ Also it's possible to specify default server configuration for any scope (whole
157
157
 
158
158
  Default configs are merged appropriately.
159
159
 
160
+ Servers can be scoped by groups, i.e.:
160
161
 
161
- An SSH config file can be generated from taketo config. To do so, run ```taketo --generate-ssh-config```.
162
-
163
- Tips:
164
- -----
165
-
166
- Taketo is especially useful in conjunction with [tmuxall](https://github.com/v-yarotsky/tmuxall) gem:
167
-
168
- $ taketo my_project:frontends --list | sed 's/^/taketo /' | tmuxall -n MY_PROJECT_FRONTENDS
169
-
170
- This will work since taketo v0.2.0, so stay tuned
171
-
172
- The Changelog:
173
- --------------
174
-
175
- ### v0.2.0.alpha (11.02.2013) ###
176
- * Add support for server groups. The list of servers in particular group can be obtained
177
- with the following command:
178
- ```taketo <group_name> --list```
162
+ ```ruby
163
+ project :my_project do
164
+ group :frontends do
165
+ server do
166
+ ...
167
+ end
168
+ end
179
169
 
180
- This becomes especially useful with [tmuxall](https://github.com/v-yarotsky/tmuxall).
170
+ group :db do
171
+ ...
172
+ end
173
+ end
174
+ ```
181
175
 
182
- ### v0.1.2 (12.12.2012) ###
183
- * Fix server aliases bug, bump version to 0.1.2 at 12.12.2012 :)
176
+ List of servers included in given group can be obtained this way ```taketo --list <project or environment or group>```
177
+ (useful in conjunction with [tmuxall](https://github.com/v-yarotsky/tmuxall) gem)
184
178
 
185
- ### v0.1.1 (04.12.2012) ###
186
- * Add basic autocompletion support for ZSH, see scripts/zsh/completion
179
+ An SSH config file can be generated from taketo config. To do so, run ```taketo --generate-ssh-config```.
187
180
 
188
- ### v0.1.0 (04.12.2012) ###
189
- * Servers can now be outside projects and environments (userful for standalone servers)
190
- * SSH config is being generated both for hostnames and global aliases
181
+ Taketo provides support for SSH and [Mobile Shell](http://mosh.mit.edu/). Example:
191
182
 
192
- ### v0.0.10 (17.11.2012) ###
193
- * Add ability to generate ssh config
183
+ ```ruby
184
+ project :my_project do
185
+ server do
186
+ ssh_command :mosh
187
+ end
188
+ end
189
+ ```
194
190
 
195
- ### v0.0.9 (17.11.2012) ###
196
- * Add default_command server config option
191
+ Tips:
192
+ -----
197
193
 
198
- ### v0.0.8 (17.11.2012) ###
199
- * Add per-config, per-project and per-environment default server config support, i.e.
200
- ```ruby
201
- default_server_config { env :TERM => 'xterm-256color' } # Global default server config
194
+ Taketo is especially useful in conjunction with [tmuxall](https://github.com/v-yarotsky/tmuxall) gem:
202
195
 
203
- project :p1 do
204
- default_server_config { env :FOO => 'bar' } # global default server config is merged
205
- ...
206
- end
207
- ```
208
-
209
- * Shared server configs can be included without redundant empty-array arguments, i.e.
210
- ```ruby
211
- include_shared_server_configs(:foo, :bar, :baz => [:arg1, :arg2], :qux => :arg3)
212
- ```
213
-
214
- ### v0.0.7 (08.10.2012) ###
215
- * Add ability to include several shared server config at once
216
- Use hash as include_shared_server_config parameter to include
217
- multiple shared server configs with arguments, like:
218
- ```ruby
219
- include_shared_server_configs(:foo => :some_arg, :bar => [:arg1, :arg2])
220
- ```
221
- or just enumerate them if no arguments needed:
222
- ```ruby
223
- include_shared_server_configs(:baz, :quux)
224
- ```
225
-
226
- NOTE: This change will break your config if you've used parametrized
227
- shared server configs before; rewrite them using hash-form
228
-
229
- ### v0.0.6 (26.07.2012) ###
230
- * Add identity_file server config option
231
- * Add shared server config support
232
-
233
- ### v0.0.5 (24.07.2012) ###
234
- * Add --directory option, which enables specifying directory on remote server upon launch
235
- * Add global_alias config option for servers
236
-
237
- ### v0.0.4 (22.07.2012) ###
238
- * Add --view option. Now you can view your config quickly: ```taketo my_project:environment:server --view``` or just ```taketo --view```
239
- * Now commands can have description
240
-
241
- ### v0.0.3 (22.07.2012) ###
242
- * Add default_destination config option
243
- * Add intelligent destination resolving
244
-
245
- ### v0.0.2 (21.07.2012) ###
246
- * Add ability to define environment variables
247
- * Add support for server commands
248
-
249
- ### v0.0.1 (13.06.2012) ###
250
- * Initial release
251
- * Support for simplest configs
252
-
253
-
254
- TO-DO:
255
- ------
196
+ $ taketo my_project:frontends --list | sed 's/^/taketo /' | tmuxall -n MY_PROJECT_FRONTENDS
256
197
 
257
- * Command completion
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -1,4 +1,4 @@
1
- require 'taketo/commands/ssh_command'
1
+ require 'taketo/commands'
2
2
  require 'taketo/actions/base_action'
3
3
  require 'taketo/server_resolver'
4
4
 
@@ -9,7 +9,7 @@ module Taketo
9
9
  def run
10
10
  server = ServerResolver.new(config, destination_path).resolve
11
11
  server_command = remote_command(server)
12
- command_to_execute = Commands::SSHCommand.new(server).render(server_command.render(server, options))
12
+ command_to_execute = Commands[server.ssh_command].new(server).render(server_command.render(server, options))
13
13
  execute(command_to_execute)
14
14
  end
15
15
 
@@ -0,0 +1,30 @@
1
+ module Taketo
2
+ module Commands
3
+
4
+ class MoshCommand
5
+ include SSHOptions
6
+
7
+ def initialize(server, options = {})
8
+ @server = server
9
+ end
10
+
11
+ def render(rendered_command)
12
+ %Q[#{program} #{ssh_program} -- #{username}#{host} #{remote_shell_program} "#{rendered_command}"].squeeze(" ")
13
+ end
14
+
15
+ def program
16
+ "mosh"
17
+ end
18
+
19
+ def ssh_program
20
+ %Q[--ssh="ssh #{port} #{identity_file}"].squeeze(" ") if @server.port || @server.identity_file
21
+ end
22
+
23
+ def remote_shell_program
24
+ "/bin/sh -c"
25
+ end
26
+ end
27
+
28
+ end
29
+ end
30
+
@@ -1,35 +1,19 @@
1
- require 'forwardable'
2
- require 'shellwords'
3
-
4
1
  module Taketo
5
2
  module Commands
6
3
 
7
4
  class SSHCommand
8
- extend Forwardable
9
- include Shellwords
5
+ include SSHOptions
10
6
 
11
7
  def initialize(server, options = {})
12
8
  @server = server
13
9
  end
14
10
 
15
11
  def render(rendered_command)
16
- %Q[ssh -t #{port} #{identity_file} #{username}#{host} "#{rendered_command}"].squeeze(" ")
17
- end
18
-
19
- def host
20
- shellescape @server.host
21
- end
22
-
23
- def port
24
- %Q[-p #{@server.port}] if @server.port
25
- end
26
-
27
- def username
28
- %Q[#{shellescape @server.username}@] if @server.username
12
+ %Q[#{program} #{port} #{identity_file} #{username}#{host} "#{rendered_command}"].squeeze(" ")
29
13
  end
30
14
 
31
- def identity_file
32
- %Q[-i #{shellescape @server.identity_file}] if @server.identity_file
15
+ def program
16
+ "ssh -t"
33
17
  end
34
18
  end
35
19
 
@@ -0,0 +1,32 @@
1
+ require 'shellwords'
2
+
3
+ module Taketo
4
+ module Commands
5
+
6
+ module SSHOptions
7
+
8
+ include Shellwords
9
+ def initialize(server)
10
+ @server = server
11
+ end
12
+
13
+ def host
14
+ shellescape @server.host
15
+ end
16
+
17
+ def port
18
+ %Q[-p #{@server.port}] if @server.port
19
+ end
20
+
21
+ def username
22
+ %Q[#{shellescape @server.username}@] if @server.username
23
+ end
24
+
25
+ def identity_file
26
+ %Q[-i #{shellescape @server.identity_file}] if @server.identity_file
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+
@@ -1,7 +1,23 @@
1
1
  module Taketo
2
+
2
3
  module Commands
4
+ autoload :SSHOptions, 'taketo/commands/ssh_options'
5
+ autoload :SSHCommand, 'taketo/commands/ssh_command'
6
+ autoload :MoshCommand, 'taketo/commands/mosh_command'
7
+
8
+ class CommandNotFoundError < StandardError; end
9
+
10
+ def self.[](name)
11
+ commands_map = {
12
+ :ssh => SSHCommand,
13
+ :mosh => MoshCommand,
14
+ }
15
+ commands_map.fetch(name) do
16
+ raise CommandNotFoundError,
17
+ "Command #{name.inspect} not found. Available commands are: #{commands_map.keys.join(", ")}"
18
+ end
19
+ end
3
20
  end
4
- end
5
21
 
6
- require 'taketo/commands/ssh_command'
22
+ end
7
23
 
@@ -1,4 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
1
  require 'shellwords'
3
2
 
4
3
  module Taketo
@@ -1,4 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
1
  require 'taketo/support'
3
2
 
4
3
  module Taketo
@@ -1,5 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
- require 'taketo/constructs/project'
3
1
  require 'taketo/support'
4
2
 
5
3
  module Taketo
@@ -1,4 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
1
  require 'taketo/support'
3
2
 
4
3
  module Taketo
@@ -1,4 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
1
  require 'taketo/support'
3
2
 
4
3
  module Taketo
@@ -1,5 +1,3 @@
1
- require 'taketo/constructs/base_construct'
2
- require 'taketo/constructs/command'
3
1
  require 'taketo/support'
4
2
 
5
3
  module Taketo
@@ -7,13 +5,14 @@ module Taketo
7
5
 
8
6
  class Server < BaseConstruct
9
7
  attr_reader :environment_variables
10
- attr_accessor :host, :port, :username, :default_location, :default_command, :global_alias, :identity_file
8
+ attr_accessor :ssh_command, :host, :port, :username, :default_location, :default_command, :global_alias, :identity_file
11
9
 
12
10
  has_nodes :commands, :command
13
11
 
14
12
  def initialize(name)
15
13
  super
16
14
  @environment_variables = {}
15
+ @ssh_command = :ssh
17
16
  end
18
17
 
19
18
  def env(env_variables)
@@ -25,6 +24,10 @@ module Taketo
25
24
  env(:RAILS_ENV => parent.rails_env) if parent.respond_to?(:rails_env)
26
25
  end
27
26
 
27
+ def ssh_command=(ssh_command)
28
+ @ssh_command = ssh_command.to_sym
29
+ end
30
+
28
31
  def global_alias=(alias_name)
29
32
  @global_alias = alias_name.to_s
30
33
  end
@@ -1,12 +1,14 @@
1
1
  module Taketo
2
+
2
3
  module Constructs
4
+ autoload :BaseConstruct, 'taketo/constructs/base_construct'
5
+ autoload :Config, 'taketo/constructs/config'
6
+ autoload :Project, 'taketo/constructs/project'
7
+ autoload :Environment, 'taketo/constructs/environment'
8
+ autoload :Server, 'taketo/constructs/server'
9
+ autoload :Group, 'taketo/constructs/group'
10
+ autoload :Command, 'taketo/constructs/command'
3
11
  end
12
+
4
13
  end
5
14
 
6
- require 'taketo/constructs/base_construct'
7
- require 'taketo/constructs/config'
8
- require 'taketo/constructs/project'
9
- require 'taketo/constructs/environment'
10
- require 'taketo/constructs/server'
11
- require 'taketo/constructs/group'
12
- require 'taketo/constructs/command'
data/lib/taketo/dsl.rb CHANGED
@@ -70,6 +70,7 @@ module Taketo
70
70
  define_scope :command, :server
71
71
 
72
72
  define_method_in_scope(:default_destination, :config) { |destination| current_scope_object.default_destination = destination }
73
+ define_method_in_scope(:ssh_command, :server) { |ssh_command| current_scope_object.ssh_command = ssh_command }
73
74
  define_method_in_scope(:host, :server) { |hostname| current_scope_object.host = hostname }
74
75
  define_method_in_scope(:port, :server) { |port_number| current_scope_object.port = port_number }
75
76
  define_method_in_scope(:user, :server) { |username| current_scope_object.username = username }
@@ -13,6 +13,7 @@ _taketo() {
13
13
  '(--view)--view[Show config contents in a tree form]' \
14
14
  '(--list)--list[List scopes]' \
15
15
  '(--dry-run)--dry-run[Print out what would be run]' \
16
+ '(--edit-config)--edit-config[Open taketo config in EDITOR]' \
16
17
  '(--generate-ssh-config)--generate-ssh-config[Generate SSH config from taketo config]' \
17
18
  '(--version)--version[Display taketo version and exit]' \
18
19
  '1: :->dest' && ret=0
@@ -59,5 +59,24 @@ feature "connect to server" do
59
59
  stderr.should be_empty
60
60
  exit_status.should be_success
61
61
  end
62
+
63
+ scenario "mosh instead of good ol' ssh" do
64
+ create_config <<-CONFIG
65
+ project :slots do
66
+ environment :staging do
67
+ server do
68
+ ssh_command :mosh
69
+ identity_file "/home/gor/.ssh/foo bar"
70
+ host "2.3.4.5"
71
+ end
72
+ end
73
+ end
74
+ CONFIG
75
+
76
+ run "taketo --dry-run"
77
+ stdout.should == %q{mosh --ssh="ssh -i /home/gor/.ssh/foo\ bar" -- 2.3.4.5 /bin/sh -c "RAILS_ENV=staging bash"}
78
+ stderr.should be_empty
79
+ exit_status.should be_success
80
+ end
62
81
  end
63
82
 
@@ -4,7 +4,7 @@ require 'taketo/actions'
4
4
  include Taketo
5
5
 
6
6
  describe "Actions" do
7
- describe ".action_by_name" do
7
+ describe ".[]" do
8
8
  it "returns class by name" do
9
9
  Actions[:matches].should == Actions::Matches
10
10
  end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+ require 'taketo/commands'
3
+
4
+ include Taketo::Commands
5
+
6
+ describe "Mosh Command" do
7
+ let(:server) do
8
+ stub(:Server, :host => "1.2.3.4",
9
+ :port => 22,
10
+ :username => "deployer",
11
+ :identity_file => "/home/gor/.ssh/qqq")
12
+ end
13
+
14
+ subject(:mosh_command) { MoshCommand.new(server) }
15
+
16
+ it "composes command based on provided server object" do
17
+ mosh_command.render("foobar").should == %q[mosh --ssh="ssh -p 22 -i /home/gor/.ssh/qqq" -- deployer@1.2.3.4 /bin/sh -c "foobar"]
18
+ end
19
+
20
+ it "ignores absent parts if they are not required" do
21
+ server.stub(:port => nil, :username => nil, :identity_file => nil)
22
+ mosh_command.render("foobar").should == %q[mosh -- 1.2.3.4 /bin/sh -c "foobar"]
23
+ end
24
+ end
25
+
@@ -1,17 +1,14 @@
1
1
  require 'spec_helper'
2
- require 'taketo/commands/ssh_command'
2
+ require 'taketo/commands'
3
3
 
4
4
  include Taketo::Commands
5
5
 
6
6
  describe "SSH Command" do
7
7
  let(:server) do
8
- stub(:Server, :name => :s1,
9
- :host => "1.2.3.4",
8
+ stub(:Server, :host => "1.2.3.4",
10
9
  :port => 22,
11
- :username => "deployer",
12
- :default_location => "/var/app",
13
- :identity_file => "/home/gor/.ssh/qqq",
14
- :environment_variables => {})
10
+ :username => "deployer",
11
+ :identity_file => "/home/gor/.ssh/qqq")
15
12
  end
16
13
 
17
14
  subject(:ssh_command) { SSHCommand.new(server) }
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'taketo/commands'
3
+
4
+ include Taketo
5
+
6
+ describe "Commands" do
7
+ describe ".[]" do
8
+ it "returns class by name" do
9
+ Commands[:mosh].should == Commands::MoshCommand
10
+ end
11
+
12
+ it "raises ArgumentError if command not found" do
13
+ expect do
14
+ Commands[:never_existed_here]
15
+ end.to raise_error(Commands::CommandNotFoundError, /not found/i)
16
+ end
17
+ end
18
+ end
19
+
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
- require 'taketo/constructs/base_construct'
2
+ require 'taketo/constructs'
3
3
 
4
4
  include Taketo
5
5
 
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
- require 'taketo/constructs/command'
2
+ require 'taketo/constructs'
3
3
 
4
4
  include Taketo
5
5
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'support/helpers/construct_spec_helper'
3
- require 'taketo/constructs/config'
3
+ require 'taketo/constructs'
4
4
 
5
5
  include Taketo
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'support/helpers/construct_spec_helper'
3
- require 'taketo/constructs/environment'
3
+ require 'taketo/constructs'
4
4
 
5
5
  include Taketo
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'support/helpers/construct_spec_helper'
3
- require 'taketo/constructs/group'
3
+ require 'taketo/constructs'
4
4
 
5
5
  include Taketo
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'support/helpers/construct_spec_helper'
3
- require 'taketo/constructs/project'
3
+ require 'taketo/constructs'
4
4
 
5
5
  include Taketo
6
6
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'support/helpers/construct_spec_helper'
3
- require 'taketo/constructs/server'
3
+ require 'taketo/constructs'
4
4
 
5
5
  include Taketo
6
6
 
@@ -61,6 +61,17 @@ describe "Server" do
61
61
  end
62
62
  end
63
63
 
64
+ describe "#ssh_command" do
65
+ it "stores symbol" do
66
+ server.ssh_command = "ohai"
67
+ expect(server.ssh_command).to eq(:ohai)
68
+ end
69
+
70
+ it "has #ssh_command = :ssh by default" do
71
+ expect(server.ssh_command).to eq(:ssh)
72
+ end
73
+ end
74
+
64
75
  specify "#global_alias= stores string" do
65
76
  server.global_alias = :foo
66
77
  expect(server.global_alias).to eq("foo")
@@ -197,6 +197,10 @@ describe "DSL" do
197
197
  end
198
198
  end
199
199
 
200
+ describe "#ssh_command" do
201
+ it_behaves_like "a scoped method", :ssh_command, :server, :ssh_command=, "mosh"
202
+ end
203
+
200
204
  describe "#host" do
201
205
  it_behaves_like "a scoped method", :host, :server, :host=, "127.0.0.2"
202
206
  end
@@ -225,6 +229,7 @@ describe "DSL" do
225
229
  it_behaves_like "a scoped method", :identity_file, :server, :identity_file=, "/home/gor/.ssh/qqq"
226
230
  end
227
231
 
232
+
228
233
  describe "#default_command" do
229
234
  it_behaves_like "a scoped method", :default_command, :server, :default_command=, :tmux
230
235
  end
metadata CHANGED
@@ -1,75 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taketo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ prerelease:
5
+ version: 0.3.0
5
6
  platform: ruby
6
7
  authors:
7
8
  - Vladimir Yarotsky
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-04-12 00:00:00.000000000 Z
12
+ date: 2013-07-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.11'
15
22
  requirement: !ruby/object:Gem::Requirement
23
+ none: false
16
24
  requirements:
17
25
  - - ~>
18
26
  - !ruby/object:Gem::Version
19
27
  version: '2.11'
20
28
  type: :development
21
29
  prerelease: false
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
22
32
  version_requirements: !ruby/object:Gem::Requirement
33
+ none: false
23
34
  requirements:
24
35
  - - ~>
25
36
  - !ruby/object:Gem::Version
26
- version: '2.11'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
37
+ version: '0.9'
29
38
  requirement: !ruby/object:Gem::Requirement
39
+ none: false
30
40
  requirements:
31
41
  - - ~>
32
42
  - !ruby/object:Gem::Version
33
43
  version: '0.9'
34
44
  type: :development
35
45
  prerelease: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: simplecov
36
48
  version_requirements: !ruby/object:Gem::Requirement
49
+ none: false
37
50
  requirements:
38
51
  - - ~>
39
52
  - !ruby/object:Gem::Version
40
- version: '0.9'
41
- - !ruby/object:Gem::Dependency
42
- name: simplecov
53
+ version: '0.6'
43
54
  requirement: !ruby/object:Gem::Requirement
55
+ none: false
44
56
  requirements:
45
57
  - - ~>
46
58
  - !ruby/object:Gem::Version
47
59
  version: '0.6'
48
60
  type: :development
49
61
  prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ name: open4
50
64
  version_requirements: !ruby/object:Gem::Requirement
65
+ none: false
51
66
  requirements:
52
67
  - - ~>
53
68
  - !ruby/object:Gem::Version
54
- version: '0.6'
55
- - !ruby/object:Gem::Dependency
56
- name: open4
69
+ version: '1.3'
57
70
  requirement: !ruby/object:Gem::Requirement
71
+ none: false
58
72
  requirements:
59
73
  - - ~>
60
74
  - !ruby/object:Gem::Version
61
75
  version: '1.3'
62
76
  type: :development
63
77
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '1.3'
69
- description: |2
70
- Taketo is an utility to aid quick access to often used servers for web-developers.
71
- Taketo uses a config written in ruby using light DSL.
72
- See http://github.com/v-yarotsky/taketo for additional instructions
78
+ description: ! " Taketo is an utility to aid quick access to often used servers
79
+ for web-developers.\n Taketo uses a config written in ruby using light DSL.\n
80
+ \ See http://github.com/v-yarotsky/taketo for additional instructions\n"
73
81
  email: vladimir.yarotksy@gmail.com
74
82
  executables:
75
83
  - taketo
@@ -81,6 +89,7 @@ files:
81
89
  - .gitignore
82
90
  - .travis.yml
83
91
  - .yardopts
92
+ - CHANGELOG.md
84
93
  - Gemfile
85
94
  - Gemfile.lock
86
95
  - LICENSE.txt
@@ -99,7 +108,9 @@ files:
99
108
  - lib/taketo/actions/view.rb
100
109
  - lib/taketo/associated_nodes.rb
101
110
  - lib/taketo/commands.rb
111
+ - lib/taketo/commands/mosh_command.rb
102
112
  - lib/taketo/commands/ssh_command.rb
113
+ - lib/taketo/commands/ssh_options.rb
103
114
  - lib/taketo/config_printer_visitor.rb
104
115
  - lib/taketo/config_traverser.rb
105
116
  - lib/taketo/config_validator.rb
@@ -140,7 +151,9 @@ files:
140
151
  - spec/integration/dsl_integration_spec.rb
141
152
  - spec/lib/taketo/actions_spec.rb
142
153
  - spec/lib/taketo/associated_nodes_spec.rb
154
+ - spec/lib/taketo/commands/mosh_command_spec.rb
143
155
  - spec/lib/taketo/commands/ssh_command_spec.rb
156
+ - spec/lib/taketo/commands_spec.rb
144
157
  - spec/lib/taketo/config_printer_visitor_spec.rb
145
158
  - spec/lib/taketo/config_traverser_spec.rb
146
159
  - spec/lib/taketo/config_validator_spec.rb
@@ -171,24 +184,25 @@ files:
171
184
  homepage: http://github.com/v-yarotsky/taketo
172
185
  licenses:
173
186
  - MIT
174
- metadata: {}
175
187
  post_install_message:
176
188
  rdoc_options: []
177
189
  require_paths:
178
190
  - lib
179
191
  required_ruby_version: !ruby/object:Gem::Requirement
192
+ none: false
180
193
  requirements:
181
- - - '>='
194
+ - - ! '>='
182
195
  - !ruby/object:Gem::Version
183
196
  version: '0'
184
197
  required_rubygems_version: !ruby/object:Gem::Requirement
198
+ none: false
185
199
  requirements:
186
- - - '>='
200
+ - - ! '>='
187
201
  - !ruby/object:Gem::Version
188
202
  version: 1.3.6
189
203
  requirements: []
190
204
  rubyforge_project:
191
- rubygems_version: 2.0.3
205
+ rubygems_version: 1.8.25
192
206
  signing_key:
193
207
  specification_version: 3
194
208
  summary: A tiny helper utility to make access to servers eaiser for different projects
@@ -208,7 +222,9 @@ test_files:
208
222
  - spec/integration/dsl_integration_spec.rb
209
223
  - spec/lib/taketo/actions_spec.rb
210
224
  - spec/lib/taketo/associated_nodes_spec.rb
225
+ - spec/lib/taketo/commands/mosh_command_spec.rb
211
226
  - spec/lib/taketo/commands/ssh_command_spec.rb
227
+ - spec/lib/taketo/commands_spec.rb
212
228
  - spec/lib/taketo/config_printer_visitor_spec.rb
213
229
  - spec/lib/taketo/config_traverser_spec.rb
214
230
  - spec/lib/taketo/config_validator_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 029c1faa2c6ca7f98624297fb06f91d808fcb0f7
4
- data.tar.gz: b271faf2011fcc1df7c02a8a4faaf5f058539579
5
- SHA512:
6
- metadata.gz: 6c3e8368d01c29ca74ab7bd0162fdd37bed1c56cf2258f2b621e992e116ed709c4667b01e0cdcf1011b262004765d35b163c017e692a838c0f190722f72e98c3
7
- data.tar.gz: b3117151aded8ce18fb21961aea05ae3745fa9523393b1379d05bc332a657dc02421fcc3742cb67066d5a1cb4cb185e7239fe79c1a5825643028e8af1331caf6