taketo 0.1.3 → 0.2.0.alpha

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.
Files changed (60) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +8 -0
  3. data/README.md +16 -1
  4. data/Rakefile +1 -0
  5. data/VERSION +1 -1
  6. data/bin/taketo +17 -89
  7. data/lib/taketo/actions/base_action.rb +29 -0
  8. data/lib/taketo/actions/generate_ssh_config.rb +22 -0
  9. data/lib/taketo/actions/group_action.rb +15 -0
  10. data/lib/taketo/actions/list.rb +22 -0
  11. data/lib/taketo/actions/login.rb +40 -0
  12. data/lib/taketo/actions/matches.rb +28 -0
  13. data/lib/taketo/actions/node_action.rb +15 -0
  14. data/lib/taketo/actions/server_action.rb +14 -0
  15. data/lib/taketo/actions/view.rb +24 -0
  16. data/lib/taketo/actions.rb +21 -0
  17. data/lib/taketo/associated_nodes.rb +4 -0
  18. data/lib/taketo/commands.rb +2 -1
  19. data/lib/taketo/config_validator.rb +4 -0
  20. data/lib/taketo/config_visitor.rb +3 -1
  21. data/lib/taketo/constructs/config.rb +2 -1
  22. data/lib/taketo/constructs/environment.rb +9 -0
  23. data/lib/taketo/constructs/group.rb +20 -0
  24. data/lib/taketo/constructs/project.rb +2 -1
  25. data/lib/taketo/constructs/server.rb +1 -1
  26. data/lib/taketo/constructs.rb +1 -0
  27. data/lib/taketo/constructs_factory.rb +4 -0
  28. data/lib/taketo/destination_matcher.rb +4 -4
  29. data/lib/taketo/dsl.rb +18 -17
  30. data/lib/taketo/group_list_visitor.rb +11 -0
  31. data/lib/taketo/group_resolver.rb +12 -0
  32. data/lib/taketo/{destination_resolver.rb → node_resolver.rb} +5 -27
  33. data/lib/taketo/server_resolver.rb +29 -0
  34. data/spec/acceptance/command_spec.rb +2 -1
  35. data/spec/acceptance/completion_spec.rb +26 -9
  36. data/spec/acceptance/config_dsl_spec.rb +74 -13
  37. data/spec/acceptance/config_validation_spec.rb +20 -5
  38. data/spec/acceptance/connect_to_server_spec.rb +6 -3
  39. data/spec/acceptance/error_handling_spec.rb +2 -2
  40. data/spec/acceptance/generate_ssh_config_spec.rb +1 -1
  41. data/spec/acceptance/help_spec.rb +4 -2
  42. data/spec/acceptance/location_spec.rb +2 -1
  43. data/spec/acceptance_spec_helper.rb +1 -1
  44. data/spec/lib/taketo/actions_spec.rb +17 -0
  45. data/spec/lib/taketo/associated_nodes_spec.rb +34 -0
  46. data/spec/lib/taketo/config_validator_spec.rb +1 -1
  47. data/spec/lib/taketo/constructs/config_spec.rb +4 -1
  48. data/spec/lib/taketo/constructs/environment_spec.rb +6 -1
  49. data/spec/lib/taketo/constructs/group_spec.rb +30 -0
  50. data/spec/lib/taketo/constructs/project_spec.rb +2 -0
  51. data/spec/lib/taketo/constructs/server_spec.rb +6 -2
  52. data/spec/lib/taketo/constructs_factory_spec.rb +5 -0
  53. data/spec/lib/taketo/dsl_spec.rb +86 -74
  54. data/spec/lib/taketo/group_list_visitor_spec.rb +20 -0
  55. data/spec/lib/taketo/group_resolver_spec.rb +59 -0
  56. data/spec/lib/taketo/{destination_resolver_spec.rb → server_resolver_spec.rb} +3 -29
  57. data/spec/support/helpers/construct_spec_helper.rb +9 -0
  58. data/spec/support/helpers/dsl_spec_helper.rb +31 -9
  59. data/spec/support/matchers/enclose_scope_matcher.rb +15 -7
  60. metadata +41 -20
@@ -1,18 +1,26 @@
1
1
  RSpec::Matchers.define :enclose_scope do |expected_scope|
2
- chain(:under) do |scope|
3
- @external_scope = scope
2
+ chain(:under) do |scope_variants|
3
+ @external_scope_variants = scope_variants
4
4
  end
5
5
 
6
6
  match do |actual|
7
7
  @result = true
8
- dsl(@external_scope || [:config]) do |c|
9
- @result &= !c.send(:current_scope?, expected_scope)
10
- c.send(expected_scope, :foo) do
11
- @result &= c.send(:current_scope?, expected_scope)
8
+ @external_scope_variants.each do |external_scope_variant|
9
+ dsl(external_scope_variant || scopes[:config]) do |c|
10
+ @result &= !c.send(:current_scope?, expected_scope)
11
+ c.send(expected_scope, :foo) do
12
+ @result &= c.send(:current_scope?, expected_scope)
13
+ end
14
+ @result &= !c.send(:current_scope?, expected_scope)
12
15
  end
13
- @result &= !c.send(:current_scope?, expected_scope)
14
16
  end
15
17
  @result
16
18
  end
19
+
20
+ description do
21
+ msg = "enclose scope #{expected_scope}"
22
+ msg += " under #{@external_scope_variants.inspect}" if @external_scope_variants
23
+ msg
24
+ end
17
25
  end
18
26
 
metadata CHANGED
@@ -1,80 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taketo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
5
- prerelease:
4
+ prerelease: 6
5
+ version: 0.2.0.alpha
6
6
  platform: ruby
7
7
  authors:
8
8
  - Vladimir Yarotsky
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-19 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- prerelease: false
17
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.11'
22
- none: false
23
22
  type: :development
24
23
  version_requirements: !ruby/object:Gem::Requirement
24
+ none: false
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
28
  version: '2.11'
29
- none: false
29
+ prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
- prerelease: false
33
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0.9'
38
- none: false
39
38
  type: :development
40
39
  version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
41
41
  requirements:
42
42
  - - ~>
43
43
  - !ruby/object:Gem::Version
44
44
  version: '0.9'
45
- none: false
45
+ prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: simplecov
48
- prerelease: false
49
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0.6'
54
- none: false
55
54
  type: :development
56
55
  version_requirements: !ruby/object:Gem::Requirement
56
+ none: false
57
57
  requirements:
58
58
  - - ~>
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.6'
61
- none: false
61
+ prerelease: false
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: open4
64
- prerelease: false
65
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
69
  version: '1.3'
70
- none: false
71
70
  type: :development
72
71
  version_requirements: !ruby/object:Gem::Requirement
72
+ none: false
73
73
  requirements:
74
74
  - - ~>
75
75
  - !ruby/object:Gem::Version
76
76
  version: '1.3'
77
- none: false
77
+ prerelease: false
78
78
  description: ! " Taketo is an utility to aid quick access to often used servers
79
79
  for web-developers.\n Taketo uses a config written in ruby using light DSL.\n
80
80
  \ See http://github.com/v-yarotsky/taketo for additional instructions\n"
@@ -85,6 +85,16 @@ extensions: []
85
85
  extra_rdoc_files: []
86
86
  files:
87
87
  - bin/taketo
88
+ - lib/taketo/actions/base_action.rb
89
+ - lib/taketo/actions/generate_ssh_config.rb
90
+ - lib/taketo/actions/group_action.rb
91
+ - lib/taketo/actions/list.rb
92
+ - lib/taketo/actions/login.rb
93
+ - lib/taketo/actions/matches.rb
94
+ - lib/taketo/actions/node_action.rb
95
+ - lib/taketo/actions/server_action.rb
96
+ - lib/taketo/actions/view.rb
97
+ - lib/taketo/actions.rb
88
98
  - lib/taketo/associated_nodes.rb
89
99
  - lib/taketo/commands/ssh_command.rb
90
100
  - lib/taketo/commands.rb
@@ -96,14 +106,18 @@ files:
96
106
  - lib/taketo/constructs/command.rb
97
107
  - lib/taketo/constructs/config.rb
98
108
  - lib/taketo/constructs/environment.rb
109
+ - lib/taketo/constructs/group.rb
99
110
  - lib/taketo/constructs/project.rb
100
111
  - lib/taketo/constructs/server.rb
101
112
  - lib/taketo/constructs.rb
102
113
  - lib/taketo/constructs_factory.rb
103
114
  - lib/taketo/destination_matcher.rb
104
- - lib/taketo/destination_resolver.rb
105
115
  - lib/taketo/dsl.rb
116
+ - lib/taketo/group_list_visitor.rb
117
+ - lib/taketo/group_resolver.rb
118
+ - lib/taketo/node_resolver.rb
106
119
  - lib/taketo/printer.rb
120
+ - lib/taketo/server_resolver.rb
107
121
  - lib/taketo/ssh_config_generator_visitor.rb
108
122
  - lib/taketo/support/key_error.rb
109
123
  - lib/taketo/support/named_nodes_collection.rb
@@ -120,6 +134,7 @@ files:
120
134
  - spec/acceptance/location_spec.rb
121
135
  - spec/acceptance_spec_helper.rb
122
136
  - spec/integration/dsl_integration_spec.rb
137
+ - spec/lib/taketo/actions_spec.rb
123
138
  - spec/lib/taketo/associated_nodes_spec.rb
124
139
  - spec/lib/taketo/commands/ssh_command_spec.rb
125
140
  - spec/lib/taketo/config_printer_visitor_spec.rb
@@ -130,12 +145,15 @@ files:
130
145
  - spec/lib/taketo/constructs/command_spec.rb
131
146
  - spec/lib/taketo/constructs/config_spec.rb
132
147
  - spec/lib/taketo/constructs/environment_spec.rb
148
+ - spec/lib/taketo/constructs/group_spec.rb
133
149
  - spec/lib/taketo/constructs/project_spec.rb
134
150
  - spec/lib/taketo/constructs/server_spec.rb
135
151
  - spec/lib/taketo/constructs_factory_spec.rb
136
152
  - spec/lib/taketo/destination_matcher_spec.rb
137
- - spec/lib/taketo/destination_resolver_spec.rb
138
153
  - spec/lib/taketo/dsl_spec.rb
154
+ - spec/lib/taketo/group_list_visitor_spec.rb
155
+ - spec/lib/taketo/group_resolver_spec.rb
156
+ - spec/lib/taketo/server_resolver_spec.rb
139
157
  - spec/lib/taketo/ssh_config_generator_visitor_spec.rb
140
158
  - spec/lib/taketo/support/named_nodes_collection_spec.rb
141
159
  - spec/spec_helper.rb
@@ -158,20 +176,23 @@ rdoc_options: []
158
176
  require_paths:
159
177
  - lib
160
178
  required_ruby_version: !ruby/object:Gem::Requirement
179
+ none: false
161
180
  requirements:
162
181
  - - ! '>='
163
182
  - !ruby/object:Gem::Version
183
+ segments:
184
+ - 0
185
+ hash: -2702655235104001250
164
186
  version: '0'
165
- none: false
166
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
+ none: false
167
189
  requirements:
168
190
  - - ! '>='
169
191
  - !ruby/object:Gem::Version
170
192
  version: 1.3.6
171
- none: false
172
193
  requirements: []
173
194
  rubyforge_project:
174
- rubygems_version: 1.8.24
195
+ rubygems_version: 1.8.25
175
196
  signing_key:
176
197
  specification_version: 3
177
198
  summary: A tiny helper utility to make access to servers eaiser for different projects