scide 0.0.12 → 0.1.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.
Files changed (59) hide show
  1. data/.rspec +0 -1
  2. data/.ruby-version +1 -0
  3. data/.screenrc +8 -0
  4. data/.travis.yml +1 -1
  5. data/Gemfile +10 -11
  6. data/Gemfile.lock +46 -39
  7. data/LICENSE.txt +1 -1
  8. data/README.md +36 -144
  9. data/Rakefile +19 -26
  10. data/VERSION +1 -1
  11. data/bin/scide +1 -2
  12. data/lib/scide/auto.rb +33 -0
  13. data/lib/scide/list.rb +33 -0
  14. data/lib/scide/open.rb +57 -0
  15. data/lib/scide/program.rb +109 -0
  16. data/lib/scide/setup.rb +16 -0
  17. data/lib/scide.rb +25 -57
  18. data/scide.gemspec +51 -59
  19. data/spec/auto_spec.rb +72 -0
  20. data/spec/cli/list_spec.rb +81 -0
  21. data/spec/cli/open_spec.rb +131 -0
  22. data/spec/cli/setup_spec.rb +82 -0
  23. data/spec/helper.rb +12 -24
  24. data/spec/list_spec.rb +113 -0
  25. data/spec/open_spec.rb +228 -0
  26. data/spec/setup_spec.rb +106 -0
  27. data/spec/version_spec.rb +3 -5
  28. metadata +150 -72
  29. data/.document +0 -5
  30. data/.rvmrc +0 -41
  31. data/TODO.md +0 -21
  32. data/lib/scide/command.rb +0 -124
  33. data/lib/scide/commands/edit.rb +0 -37
  34. data/lib/scide/commands/run.rb +0 -25
  35. data/lib/scide/commands/show.rb +0 -29
  36. data/lib/scide/commands/tail.rb +0 -37
  37. data/lib/scide/config.rb +0 -105
  38. data/lib/scide/global.rb +0 -30
  39. data/lib/scide/opts.rb +0 -35
  40. data/lib/scide/overmind.rb +0 -70
  41. data/lib/scide/project.rb +0 -93
  42. data/lib/scide/screen.rb +0 -77
  43. data/lib/scide/window.rb +0 -88
  44. data/spec/command_spec.rb +0 -86
  45. data/spec/commands/edit_spec.rb +0 -19
  46. data/spec/commands/run_spec.rb +0 -9
  47. data/spec/commands/show_spec.rb +0 -15
  48. data/spec/commands/tail_spec.rb +0 -14
  49. data/spec/config_spec.rb +0 -113
  50. data/spec/global_spec.rb +0 -38
  51. data/spec/opts_spec.rb +0 -42
  52. data/spec/project_spec.rb +0 -171
  53. data/spec/results/config1.yml +0 -14
  54. data/spec/results/malformed_config.yml +0 -2
  55. data/spec/results/project1.screen +0 -10
  56. data/spec/results/screen1.screen +0 -14
  57. data/spec/scide_spec.rb +0 -38
  58. data/spec/screen_spec.rb +0 -90
  59. data/spec/window_spec.rb +0 -122
metadata CHANGED
@@ -1,30 +1,51 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - AlphaHydrae
8
+ - Simon Oulevay (AlphaHydrae)
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-09 00:00:00.000000000Z
12
+ date: 2013-05-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: upoj-rb
16
- requirement: &70204075390320 !ruby/object:Gem::Requirement
15
+ name: commander
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.0.4
21
+ version: 4.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70204075390320
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 4.1.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: paint
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.8.6
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.8.6
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: which_works
27
- requirement: &70204075386800 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ~>
@@ -32,10 +53,15 @@ dependencies:
32
53
  version: 0.1.0
33
54
  type: :runtime
34
55
  prerelease: false
35
- version_requirements: *70204075386800
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.0
36
62
  - !ruby/object:Gem::Dependency
37
- name: rspec
38
- requirement: &70204075386160 !ruby/object:Gem::Requirement
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
39
65
  none: false
40
66
  requirements:
41
67
  - - ! '>='
@@ -43,10 +69,15 @@ dependencies:
43
69
  version: '0'
44
70
  type: :development
45
71
  prerelease: false
46
- version_requirements: *70204075386160
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
47
78
  - !ruby/object:Gem::Dependency
48
- name: shoulda
49
- requirement: &70204075385540 !ruby/object:Gem::Requirement
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
50
81
  none: false
51
82
  requirements:
52
83
  - - ! '>='
@@ -54,10 +85,31 @@ dependencies:
54
85
  version: '0'
55
86
  type: :development
56
87
  prerelease: false
57
- version_requirements: *70204075385540
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
58
94
  - !ruby/object:Gem::Dependency
59
- name: bundler
60
- requirement: &70204075384820 !ruby/object:Gem::Requirement
95
+ name: rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: fakefs
112
+ requirement: !ruby/object:Gem::Requirement
61
113
  none: false
62
114
  requirements:
63
115
  - - ! '>='
@@ -65,21 +117,31 @@ dependencies:
65
117
  version: '0'
66
118
  type: :development
67
119
  prerelease: false
68
- version_requirements: *70204075384820
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
69
126
  - !ruby/object:Gem::Dependency
70
127
  name: jeweler
71
- requirement: &70204075384240 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
72
129
  none: false
73
130
  requirements:
74
- - - ~>
131
+ - - ! '>='
75
132
  - !ruby/object:Gem::Version
76
- version: 1.6.4
133
+ version: '0'
77
134
  type: :development
78
135
  prerelease: false
79
- version_requirements: *70204075384240
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
80
142
  - !ruby/object:Gem::Dependency
81
- name: simplecov
82
- requirement: &70204075383620 !ruby/object:Gem::Requirement
143
+ name: gemcutter
144
+ requirement: !ruby/object:Gem::Requirement
83
145
  none: false
84
146
  requirements:
85
147
  - - ! '>='
@@ -87,10 +149,15 @@ dependencies:
87
149
  version: '0'
88
150
  type: :development
89
151
  prerelease: false
90
- version_requirements: *70204075383620
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
91
158
  - !ruby/object:Gem::Dependency
92
- name: yard
93
- requirement: &70204075382980 !ruby/object:Gem::Requirement
159
+ name: gem-release
160
+ requirement: !ruby/object:Gem::Requirement
94
161
  none: false
95
162
  requirements:
96
163
  - - ! '>='
@@ -98,10 +165,15 @@ dependencies:
98
165
  version: '0'
99
166
  type: :development
100
167
  prerelease: false
101
- version_requirements: *70204075382980
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
102
174
  - !ruby/object:Gem::Dependency
103
- name: rdiscount
104
- requirement: &70204075382300 !ruby/object:Gem::Requirement
175
+ name: rake-version
176
+ requirement: !ruby/object:Gem::Requirement
105
177
  none: false
106
178
  requirements:
107
179
  - - ! '>='
@@ -109,19 +181,45 @@ dependencies:
109
181
  version: '0'
110
182
  type: :development
111
183
  prerelease: false
112
- version_requirements: *70204075382300
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: simplecov
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
113
206
  - !ruby/object:Gem::Dependency
114
207
  name: travis-lint
115
- requirement: &70204075381460 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
116
209
  none: false
117
210
  requirements:
118
- - - ~>
211
+ - - ! '>='
119
212
  - !ruby/object:Gem::Version
120
- version: 1.3.0
213
+ version: '0'
121
214
  type: :development
122
215
  prerelease: false
123
- version_requirements: *70204075381460
124
- description: Utility to generate GNU screen configuration files.
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ description: GNU screen wrapper to open projects with a .screenrc file.
125
223
  email: hydrae.alpha@gmail.com
126
224
  executables:
127
225
  - scide
@@ -130,50 +228,33 @@ extra_rdoc_files:
130
228
  - LICENSE.txt
131
229
  - README.md
132
230
  files:
133
- - .document
134
231
  - .rspec
135
- - .rvmrc
232
+ - .ruby-version
233
+ - .screenrc
136
234
  - .travis.yml
137
235
  - Gemfile
138
236
  - Gemfile.lock
139
237
  - LICENSE.txt
140
238
  - README.md
141
239
  - Rakefile
142
- - TODO.md
143
240
  - VERSION
144
241
  - bin/scide
145
242
  - lib/scide.rb
146
- - lib/scide/command.rb
147
- - lib/scide/commands/edit.rb
148
- - lib/scide/commands/run.rb
149
- - lib/scide/commands/show.rb
150
- - lib/scide/commands/tail.rb
151
- - lib/scide/config.rb
152
- - lib/scide/global.rb
153
- - lib/scide/opts.rb
154
- - lib/scide/overmind.rb
155
- - lib/scide/project.rb
156
- - lib/scide/screen.rb
157
- - lib/scide/window.rb
243
+ - lib/scide/auto.rb
244
+ - lib/scide/list.rb
245
+ - lib/scide/open.rb
246
+ - lib/scide/program.rb
247
+ - lib/scide/setup.rb
158
248
  - scide.gemspec
159
- - spec/command_spec.rb
160
- - spec/commands/edit_spec.rb
161
- - spec/commands/run_spec.rb
162
- - spec/commands/show_spec.rb
163
- - spec/commands/tail_spec.rb
164
- - spec/config_spec.rb
165
- - spec/global_spec.rb
249
+ - spec/auto_spec.rb
250
+ - spec/cli/list_spec.rb
251
+ - spec/cli/open_spec.rb
252
+ - spec/cli/setup_spec.rb
166
253
  - spec/helper.rb
167
- - spec/opts_spec.rb
168
- - spec/project_spec.rb
169
- - spec/results/config1.yml
170
- - spec/results/malformed_config.yml
171
- - spec/results/project1.screen
172
- - spec/results/screen1.screen
173
- - spec/scide_spec.rb
174
- - spec/screen_spec.rb
254
+ - spec/list_spec.rb
255
+ - spec/open_spec.rb
256
+ - spec/setup_spec.rb
175
257
  - spec/version_spec.rb
176
- - spec/window_spec.rb
177
258
  homepage: http://github.com/AlphaHydrae/scide
178
259
  licenses:
179
260
  - MIT
@@ -187,9 +268,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
268
  - - ! '>='
188
269
  - !ruby/object:Gem::Version
189
270
  version: '0'
190
- segments:
191
- - 0
192
- hash: -4477489654140745728
193
271
  required_rubygems_version: !ruby/object:Gem::Requirement
194
272
  none: false
195
273
  requirements:
@@ -198,8 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
276
  version: '0'
199
277
  requirements: []
200
278
  rubyforge_project:
201
- rubygems_version: 1.8.17
279
+ rubygems_version: 1.8.25
202
280
  signing_key:
203
281
  specification_version: 3
204
- summary: GNU Screen IDE.
282
+ summary: GNU Screen IDE
205
283
  test_files: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.rvmrc DELETED
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
- # development environment upon cd'ing into the directory
5
-
6
- # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
- environment_id="ruby-1.9.2@scide"
8
-
9
- #
10
- # First we attempt to load the desired environment directly from the environment
11
- # file. This is very fast and efficicent compared to running through the entire
12
- # CLI and selector. If you want feedback on which environment was used then
13
- # insert the word 'use' after --create as this triggers verbose mode.
14
- #
15
- if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
16
- && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
17
- then
18
- \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
19
-
20
- if [[ -s ".rvm/hooks/after_use" ]]
21
- then
22
- . ".rvm/hooks/after_use"
23
- fi
24
- else
25
- # If the environment file has not yet been created, use the RVM CLI to select.
26
- if ! rvm --create "$environment_id"
27
- then
28
- echo "Failed to create RVM environment ''."
29
- fi
30
- fi
31
-
32
- #
33
- # If you use an RVM gemset file to install a list of gems (*.gems), you can have
34
- # it be automatically loaded. Uncomment the following and adjust the filename if
35
- # necessary.
36
- #
37
- # filename=".gems"
38
- # if [[ -s "$filename" ]] ; then
39
- # rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
40
- # fi
41
-
data/TODO.md DELETED
@@ -1,21 +0,0 @@
1
- # TODO
2
-
3
- ## Improvements/Maintenance
4
-
5
- * check format of keys, names, etc.
6
- * ensure that all data from configuration is duplicated
7
- * replace default hashes by HashWithIndifferentAccess
8
- * make all options/contents parameters optional
9
- * extract tempfile management into separate runner class
10
- * find a way to check whether a path is absolute (cross-platform)
11
-
12
- ## New Features
13
-
14
- * allow to load configuration from hash
15
- * interactive configuration generation
16
- * save generated configurations
17
-
18
- ## Specifications
19
-
20
- * find a way to stub puts (opts version & banner)
21
- * use rspec 2 shared examples
data/lib/scide/command.rb DELETED
@@ -1,124 +0,0 @@
1
- module Scide
2
-
3
- # A command to be used in a GNU Screen window. There are several
4
- # command implementations (show command, run command, tail file, etc).
5
- # See under {Scide::Commands}.
6
- class Command
7
-
8
- # The options given to this command. These are built by merging
9
- # global options, project options and window options.
10
- attr_reader :options
11
-
12
- # Returns a new command for the given window.
13
- #
14
- # == Arguments
15
- # * <tt>window</tt> - The window in which the command will be used.
16
- # Command options are retrieved from {Scide::Window#options}. See
17
- # {#initialize}.
18
- # * <tt>contents</tt> - The command configuration (String or Hash).
19
- #
20
- # == String Initialization
21
- # The string must be in the format <tt>COMMAND [CONTENTS]</tt>.
22
- #
23
- # <tt>TYPE</tt> is the name of the command class under
24
- # {Scide::Commands}, in uppercase camelcase. For example, <tt>TAIL</tt>
25
- # corresponds to {Scide::Commands::Tail}, <tt>MY_COMMAND</tt> would
26
- # correspond to <tt>Scide::Commands::MyCommand</tt>.
27
- #
28
- # <tt>CONTENTS</tt> is the contents of the command.
29
- #
30
- # == Hash Initialization
31
- # The following options can be given:
32
- # * <tt>:command => string</tt> is the same <tt>COMMAND</tt> as
33
- # for string initialization above.
34
- # * <tt>:contents => string or other</tt> is the same <tt>CONTENTS</tt>
35
- # as for string initialization above. Typically this is only a
36
- # string, but more advanced commands might be initialized with
37
- # arrays or hashes.
38
- def self.resolve window, contents
39
- if contents.kind_of? Hash
40
- resolve_from_hash window, contents
41
- elsif contents.kind_of? String
42
- resolve_from_string window, contents
43
- else
44
- raise ArgumentError, 'command must be a string or a hash'
45
- end
46
- end
47
-
48
- # Returns a new command with the given options.
49
- #
50
- # == Arguments
51
- # * <tt>contents</tt> - The contents of the command. Typically this
52
- # is only a string, but more advanced commands might be initialized
53
- # with arrays or hashes. By default, the contents can be retrieved
54
- # as a string with {#text_with_options}.
55
- # * <tt>options</tt> - Options that can be used in the string contents
56
- # of the command. See #text_with_options.
57
- def initialize contents, options = {}
58
-
59
- # fill text only if it's not already there, in case a subclass does
60
- # some initialization work before calling super
61
- @text ||= contents.to_s
62
-
63
- # merge given options to the already initialized ones, if any
64
- @options = (@options || {}).merge options
65
- end
66
-
67
- # Returns a representation of this command as a GNU Screen
68
- # configuration fragment.
69
- #
70
- # This default implementation raises an error and must be
71
- # overriden by subclasses.
72
- def to_screen
73
- raise 'Use a subclass'
74
- end
75
-
76
- # Returns the text of this command with filtered option placeholders.
77
- #
78
- # == Examples
79
- # com_text = 'tail %{tail} -f file.txt -c %{foo}'
80
- # com = Scide::Command.new com_text, :tail => '-n 1000', :foo => 400
81
- #
82
- # com.text_with_options #=> 'tail -n 1000 -f file.txt -c 400'
83
- def text_with_options
84
- @text.dup.tap do |s|
85
- @options.each_pair do |key, value|
86
- s.gsub! /\%\{#{Regexp.escape key.to_s}\}/, value.to_s
87
- end
88
- end
89
- end
90
-
91
- private
92
-
93
- # Returns a new command for the given window. The given
94
- # contents are a hash. See {Scide::Command.resolve}.
95
- def self.resolve_from_hash window, contents
96
- begin
97
- klass = Scide::Commands.const_get contents[:command].downcase.camelize
98
- klass.new contents[:contents], window.options.dup
99
- rescue NameError => err
100
- raise ArgumentError, "unknown '#{contents[:command]}' command type"
101
- end
102
- end
103
-
104
- # Returns a new command for the given window. The given
105
- # contents are a string. See {Scide::Command.resolve}.
106
- def self.resolve_from_string window, contents
107
- klass_name, text = contents.split /\s+/, 2
108
- begin
109
- klass = Scide::Commands.const_get klass_name.downcase.camelize
110
- klass.new text, window.options.dup
111
- rescue NameError => err
112
- raise ArgumentError, "unknown '#{klass_name}' command type"
113
- end
114
- end
115
- end
116
-
117
- # Module containing scide command classes.
118
- module Commands
119
- end
120
- end
121
-
122
- # load pre-defined commands
123
- deps_dir = File.join File.dirname(__FILE__), 'commands'
124
- %w( show run tail edit ).each{ |dep| require File.join(deps_dir, dep) }
@@ -1,37 +0,0 @@
1
- module Scide
2
-
3
- module Commands
4
-
5
- # Edits a file with the default editor (<tt>$EDITOR</tt>).
6
- #
7
- # == Configuration Example
8
- # # this YAML configuration,
9
- # projects:
10
- # project1:
11
- # options:
12
- # edit: '-c MyVimCommand'
13
- # windows:
14
- # - "window1 EDIT $HOME/fubar.txt"
15
- #
16
- # # will produce the following command in window1:
17
- # $EDITOR -c MyVimCommand $HOME/fubar.txt
18
- class Edit < Scide::Commands::Run
19
-
20
- # Returns a new edit command.
21
- #
22
- # See class definition for examples.
23
- #
24
- # == Arguments
25
- # * <tt>contents</tt> - The file to edit.
26
- # * <tt>options</tt> - Options that can be used in the contents
27
- # of the command.
28
- #
29
- # == Options
30
- # * <tt>:edit => string</tt> - Arguments to the editor.
31
- def initialize contents, options = {}
32
- super contents, options
33
- @text = [ '$EDITOR', options[:edit].to_s, @text.to_s ].select(&:present?).join(' ')
34
- end
35
- end
36
- end
37
- end
@@ -1,25 +0,0 @@
1
- module Scide
2
-
3
- module Commands
4
-
5
- # Runs a command.
6
- #
7
- # == Configuration Example
8
- # # this YAML configuration,
9
- # projects:
10
- # project1:
11
- # windows:
12
- # - "window1 RUN rails server"
13
- #
14
- # # will produce the following command in window1:
15
- # rails server
16
- class Run < Scide::Commands::Show
17
-
18
- # Appends a carriage return to the command so that
19
- # it will not only be shown but also executed.
20
- def text_with_options
21
- "#{super}\\012"
22
- end
23
- end
24
- end
25
- end
@@ -1,29 +0,0 @@
1
- module Scide
2
-
3
- module Commands
4
-
5
- # Prepares and shows a command but do not run it.
6
- #
7
- # == Configuration Example
8
- # # this YAML configuration,
9
- # projects:
10
- # project1:
11
- # options:
12
- # host: 127.0.0.1
13
- # windows:
14
- # - "window1 SHOW ssh %{host}"
15
- #
16
- # # will produce the following command in window1:
17
- # ssh 127.0.0.1
18
- class Show < Scide::Command
19
-
20
- # Returns a configuration fragment that will show
21
- # this command in a GNU Screen window without running it.
22
- # This will use screen's <tt>stuff</tt> command to
23
- # put the text in the window.
24
- def to_screen
25
- %|stuff "#{text_with_options}"|
26
- end
27
- end
28
- end
29
- end
@@ -1,37 +0,0 @@
1
- module Scide
2
-
3
- module Commands
4
-
5
- # Tails a file.
6
- #
7
- # == Configuration Example
8
- # # this YAML configuration,
9
- # projects:
10
- # project1:
11
- # options:
12
- # tail: '-n 1000'
13
- # windows:
14
- # - "window1 TAIL $HOME/fubar.txt"
15
- #
16
- # # will produce the following command in window1:
17
- # tail -n 1000 -f $HOME/fubar.txt
18
- class Tail < Scide::Commands::Run
19
-
20
- # Returns a new tail command.
21
- #
22
- # See class definition for examples.
23
- #
24
- # == Arguments
25
- # * <tt>contents</tt> - The file to tail.
26
- # * <tt>options</tt> - Options that can be used in the
27
- # contents of the command.
28
- #
29
- # == Options
30
- # * <tt>tail => string</tt> - Arguments to tail.
31
- def initialize contents, options = {}
32
- super contents, options
33
- @text = [ 'tail', options[:tail].to_s, '-f', @text.to_s ].select(&:present?).join(' ')
34
- end
35
- end
36
- end
37
- end