scide 0.0.7 → 0.0.8

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/Gemfile CHANGED
@@ -13,7 +13,8 @@ group :development do
13
13
  gem 'bundler', '~> 1.0.0'
14
14
  gem 'jeweler', '~> 1.6.4'
15
15
  gem 'simplecov'
16
- gem 'rdoc'
16
+ gem 'yard'
17
+ gem 'rdiscount'
17
18
  end
18
19
 
19
20
  group :test do
data/Gemfile.lock CHANGED
@@ -13,7 +13,7 @@ GEM
13
13
  multi_json (1.0.3)
14
14
  paint (0.8.3)
15
15
  rake (0.9.2)
16
- rdoc (3.9.4)
16
+ rdiscount (1.6.8)
17
17
  rspec (2.6.0)
18
18
  rspec-core (~> 2.6.0)
19
19
  rspec-expectations (~> 2.6.0)
@@ -30,6 +30,7 @@ GEM
30
30
  upoj-rb (0.0.5)
31
31
  active_support (>= 2)
32
32
  paint
33
+ yard (0.7.2)
33
34
 
34
35
  PLATFORMS
35
36
  ruby
@@ -38,8 +39,9 @@ DEPENDENCIES
38
39
  active_support (>= 2)
39
40
  bundler (~> 1.0.0)
40
41
  jeweler (~> 1.6.4)
41
- rdoc
42
+ rdiscount
42
43
  rspec
43
44
  shoulda
44
45
  simplecov
45
46
  upoj-rb (~> 0.0.4)
47
+ yard
data/README.md CHANGED
@@ -2,7 +2,148 @@
2
2
 
3
3
  GNU Screen IDE.
4
4
 
5
- Documentation will be coming soon.
5
+ The purpose of this tool is to generate several GNU screen configurations from a single YAML configuration file.
6
+ This can be used to easily setup a multi-windows development environment with screen.
7
+
8
+ ## Using
9
+
10
+ You can install scide with:
11
+
12
+ gem install scide
13
+
14
+ Then use it on the command line:
15
+
16
+ scide --version
17
+ scide my_project
18
+
19
+ __Interactive configuration will be introduced in v0.2.*.__
20
+ __Until then, the configuration file must be prepared manually before using scide.__
21
+
22
+ ## Configuration File
23
+
24
+ The configuration file is expected to be at the following location by default:
25
+
26
+ $HOME/.scide/config.yml
27
+
28
+ You can load another file by running scide with the `-c` flag:
29
+
30
+ scide -c my_config.yml
31
+
32
+ ### Basics
33
+
34
+ This is a simple scide configuration file:
35
+
36
+ projects:
37
+ mywebsite:
38
+ path: /home/jdoe/projects/mywebsite
39
+ windows:
40
+ - 'project EDIT'
41
+ - 'db-log TAIL log/db.log'
42
+ - 'server RUN rails server'
43
+ - 'shell'
44
+
45
+ By running `scide mywebsite`, screen would open with four windows:
46
+
47
+ * a __project__ window with your favorite `$EDITOR` launched;
48
+ * a __db-log__ window with a tail of the project's database log;
49
+ * a __server__ window with your Ruby on Rails server launched;
50
+ * a __shell__ window with your shell running.
51
+
52
+ The format for a window is `NAME [COMMAND] [CONTENTS]`.
53
+ This opens a window with the given name. An optional command
54
+ can be run in the window, which can receive arguments/contents.
55
+
56
+ ### Options
57
+
58
+ Projects can have a hash of options that commands can use:
59
+
60
+ projects:
61
+ mywebsite:
62
+ path: /home/jdoe/projects/mywebsite
63
+ options:
64
+ log_dir: /var/log
65
+ server: thin
66
+ windows:
67
+ - 'project EDIT'
68
+ - 'db-log TAIL %{log_dir}/db.log'
69
+ - 'app-log TAIL %{log_dir}/development.log'
70
+ - 'server RUN %{server} start'
71
+ - 'shell'
72
+
73
+ ### Globals
74
+
75
+ You can configure a base path and options for all projects.
76
+
77
+ global:
78
+ path: /home/jdoe/projects
79
+ options:
80
+ log_dir: /var/log
81
+ projects:
82
+ mywebsite:
83
+ path: mywebsite # this is now relative to the global path
84
+ options:
85
+ server: thin
86
+ windows:
87
+ - 'project EDIT'
88
+ - 'db-log TAIL %{log_dir}/db.log'
89
+ - 'app-log TAIL %{log_dir}/development.log'
90
+ - 'server RUN %{server} start'
91
+ - 'shell'
92
+
93
+ Options at the project level override global options if they have the same name.
94
+
95
+ ### Commands
96
+
97
+ Scide currently provides four commands.
98
+
99
+ #### RUN
100
+
101
+ Runs the given contents in the window.
102
+
103
+ For example, `RUN rails server` launches a Ruby on Rails server in the project folder.
104
+
105
+ #### EDIT
106
+
107
+ Simply runs `$EDITOR`, your preferred editor.
108
+
109
+ If the `edit` option is present, it will be used as arguments to the editor.
110
+
111
+ # project configuration:
112
+ mywebsite:
113
+ options:
114
+ edit: '-c MyVimCommand'
115
+ windows:
116
+ - 'project EDIT app/controllers/application_controller.erb'
117
+
118
+ # resulting command in "project" window:
119
+ $EDITOR -c MyVimCommand app/controllers/application_controller.erb
120
+
121
+ #### TAIL
122
+
123
+ Runs the `tail` command with the given file as the `-f` argument.
124
+
125
+ For example, `TAIL log/db.log` would generate the following command:
126
+
127
+ tail -f log/db.log
128
+
129
+ If the `tail` option is present, it will be used as arguments to tail.
130
+
131
+ # project configuration:
132
+ mywebsite:
133
+ options:
134
+ tail: '-n 1000'
135
+ windows:
136
+ - 'db.log TAIL log/db.log'
137
+
138
+ # resulting command in "project" window:
139
+ tail -n 1000 -f log/db.log
140
+
141
+ #### SHOW
142
+
143
+ Shows the given contents in the window, without running them.
144
+
145
+ For example, `SHOW ssh example.com` would pre-type this ssh command in the window, but not run it.
146
+ That way, you can have special commands ready to run in a separate window.
6
147
 
7
148
  ## Contributing to scide
8
149
 
data/Rakefile CHANGED
@@ -34,12 +34,25 @@ end
34
34
 
35
35
  task :default => :test
36
36
 
37
- require 'rdoc/task'
38
- RDoc::Task.new do |rdoc|
39
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
37
+ desc "Generate documentation"
38
+ task :doc => ['doc:generate']
39
+ namespace :doc do
40
+ project_root = File.dirname __FILE__
41
+ doc_destination = File.join project_root, 'doc'
40
42
 
41
- rdoc.rdoc_dir = 'rdoc'
42
- rdoc.title = "scide #{version}"
43
- rdoc.rdoc_files.include('README*')
44
- rdoc.rdoc_files.include('lib/**/*.rb')
43
+ begin
44
+ require 'yard'
45
+ require 'yard/rake/yardoc_task'
46
+
47
+ YARD::Rake::YardocTask.new(:generate) do |yt|
48
+ yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) +
49
+ [ File.join(project_root, 'README.md') ]
50
+ yt.options = ['--output-dir', doc_destination, '--readme', 'README.md', '--private', '--protected']
51
+ end
52
+ rescue LoadError
53
+ desc "Generate YARD Documentation"
54
+ task :generate do
55
+ abort "Please install the YARD gem to generate rdoc."
56
+ end
57
+ end
45
58
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
data/lib/scide/command.rb CHANGED
@@ -2,7 +2,7 @@ module Scide
2
2
 
3
3
  # A command to be used in a GNU Screen window. There are several
4
4
  # command implementations (show command, run command, tail file, etc).
5
- # See under Scide::Commands.
5
+ # See under {Scide::Commands}.
6
6
  class Command
7
7
 
8
8
  # The options given to this command. These are built by merging
@@ -11,23 +11,23 @@ module Scide
11
11
 
12
12
  # Returns a new command for the given window.
13
13
  #
14
- # ==== Arguments
14
+ # == Arguments
15
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.
16
+ # Command options are retrieved from {Scide::Window#options}. See
17
+ # {#initialize}.
18
18
  # * <tt>contents</tt> - The command configuration (String or Hash).
19
19
  #
20
- # ==== String Initialization
20
+ # == String Initialization
21
21
  # The string must be in the format <tt>COMMAND [CONTENTS]</tt>.
22
22
  #
23
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 Scide::Commands::MyCommand.
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
27
  #
28
28
  # <tt>CONTENTS</tt> is the contents of the command.
29
29
  #
30
- # ==== Hash Initialization
30
+ # == Hash Initialization
31
31
  # The following options can be given:
32
32
  # * <tt>:command => string</tt> is the same <tt>COMMAND</tt> as
33
33
  # for string initialization above.
@@ -47,11 +47,11 @@ module Scide
47
47
 
48
48
  # Returns a new command with the given options.
49
49
  #
50
- # ==== Arguments
50
+ # == Arguments
51
51
  # * <tt>contents</tt> - The contents of the command. Typically this
52
52
  # is only a string, but more advanced commands might be initialized
53
53
  # with arrays or hashes. By default, the contents can be retrieved
54
- # as a string with #text_with_options.
54
+ # as a string with {#text_with_options}.
55
55
  # * <tt>options</tt> - Options that can be used in the string contents
56
56
  # of the command. See #text_with_options.
57
57
  def initialize contents, options = {}
@@ -75,7 +75,7 @@ module Scide
75
75
 
76
76
  # Returns the text of this command with filtered option placeholders.
77
77
  #
78
- # ==== Examples
78
+ # == Examples
79
79
  # com_text = 'tail %{tail} -f file.txt -c %{foo}'
80
80
  # com = Scide::Command.new com_text, :tail => '-n 1000', :foo => 400
81
81
  #
@@ -91,7 +91,7 @@ module Scide
91
91
  private
92
92
 
93
93
  # Returns a new command for the given window. The given
94
- # contents are a hash. See Scide::Command.resolve.
94
+ # contents are a hash. See {Scide::Command.resolve}.
95
95
  def self.resolve_from_hash window, contents
96
96
  begin
97
97
  klass = Scide::Commands.const_get contents[:command].downcase.camelize
@@ -102,7 +102,7 @@ module Scide
102
102
  end
103
103
 
104
104
  # Returns a new command for the given window. The given
105
- # contents are a string. See Scide::Command.resolve.
105
+ # contents are a string. See {Scide::Command.resolve}.
106
106
  def self.resolve_from_string window, contents
107
107
  klass_name, text = contents.split /\s+/, 2
108
108
  begin
@@ -4,7 +4,7 @@ module Scide
4
4
 
5
5
  # Edits a file with the default editor (<tt>$EDITOR</tt>).
6
6
  #
7
- # ==== Configuration Example
7
+ # == Configuration Example
8
8
  # # this YAML configuration,
9
9
  # projects:
10
10
  # project1:
@@ -21,12 +21,12 @@ module Scide
21
21
  #
22
22
  # See class definition for examples.
23
23
  #
24
- # ==== Arguments
24
+ # == Arguments
25
25
  # * <tt>contents</tt> - The file to edit.
26
26
  # * <tt>options</tt> - Options that can be used in the contents
27
27
  # of the command.
28
28
  #
29
- # ==== Options
29
+ # == Options
30
30
  # * <tt>:edit => string</tt> - Arguments to the editor.
31
31
  def initialize contents, options = {}
32
32
  super contents, options
@@ -4,7 +4,7 @@ module Scide
4
4
 
5
5
  # Runs a command.
6
6
  #
7
- # ==== Configuration Example
7
+ # == Configuration Example
8
8
  # # this YAML configuration,
9
9
  # projects:
10
10
  # project1:
@@ -4,7 +4,7 @@ module Scide
4
4
 
5
5
  # Prepares and shows a command but do not run it.
6
6
  #
7
- # ==== Configuration Example
7
+ # == Configuration Example
8
8
  # # this YAML configuration,
9
9
  # projects:
10
10
  # project1:
@@ -18,7 +18,7 @@ module Scide
18
18
  class Show < Scide::Command
19
19
 
20
20
  # Returns a configuration fragment that will show
21
- # this command in a GNU \Screen window without running it.
21
+ # this command in a GNU Screen window without running it.
22
22
  # This will use screen's <tt>stuff</tt> command to
23
23
  # put the text in the window.
24
24
  def to_screen
@@ -4,7 +4,7 @@ module Scide
4
4
 
5
5
  # Tails a file.
6
6
  #
7
- # ==== Configuration Example
7
+ # == Configuration Example
8
8
  # # this YAML configuration,
9
9
  # projects:
10
10
  # project1:
@@ -21,12 +21,12 @@ module Scide
21
21
  #
22
22
  # See class definition for examples.
23
23
  #
24
- # ==== Arguments
24
+ # == Arguments
25
25
  # * <tt>contents</tt> - The file to tail.
26
26
  # * <tt>options</tt> - Options that can be used in the
27
27
  # contents of the command.
28
28
  #
29
- # ==== Options
29
+ # == Options
30
30
  # * <tt>tail => string</tt> - Arguments to tail.
31
31
  def initialize contents, options = {}
32
32
  super contents, options
data/lib/scide/config.rb CHANGED
@@ -12,35 +12,35 @@ module Scide
12
12
  # The file from which this configuration will be loaded.
13
13
  attr_accessor :file
14
14
 
15
- # GNU Screen options. Accessible after calling #load!.
15
+ # GNU Screen options. Accessible after calling {#load!}.
16
16
  attr_reader :screen
17
17
 
18
- # The global configuration. Accessible after calling #load!.
18
+ # The global configuration. Accessible after calling {#load!}.
19
19
  attr_reader :global
20
20
 
21
21
  # The project definitions (windows, option overrides, etc). Accessible
22
- # after calling #load!.
22
+ # after calling {#load!}.
23
23
  attr_reader :projects
24
24
 
25
25
  # Returns an empty configuration.
26
26
  #
27
- # ==== Arguments
27
+ # == Arguments
28
28
  # * <tt>file</tt> - The file from which to load the configuration. If not
29
- # given, this defaults to DEFAULT_CONFIG_FILE.
29
+ # given, this defaults to {DEFAULT_CONFIG_FILE}.
30
30
  def initialize file = nil
31
31
  @file = file.try(:to_s) || DEFAULT_CONFIG_FILE
32
32
  end
33
33
 
34
- # Loads this configuration. This will read from #file and parse the contents
34
+ # Loads this configuration. This will read from {#file} and parse the contents
35
35
  # as YAML. Configuration elements can then be retrieved with #global,
36
36
  # #projects and #screen.
37
37
  #
38
- # ==== Errors
39
- # * <tt>config_not_found</tt> - #file does not exist.
40
- # * <tt>config_not_readable</tt> - #file cannot be read by the user running scide.
41
- # * <tt>malformed_config</tt> - #file contains malformed YAML.
42
- # * <tt>invalid_config</tt> - #file contains invalid configuration (see README).
43
- # * <tt>unexpected</tt> - #file could not be read.
38
+ # == Errors
39
+ # * <tt>config_not_found</tt> - {#file} does not exist.
40
+ # * <tt>config_not_readable</tt> - {#file} cannot be read by the user running scide.
41
+ # * <tt>malformed_config</tt> - {#file} contains malformed YAML.
42
+ # * <tt>invalid_config</tt> - {#file} contains invalid configuration (see README).
43
+ # * <tt>unexpected</tt> - {#file} could not be read.
44
44
  def load!
45
45
 
46
46
  Scide.fail :config_not_found, "ERROR: expected to find configuration at #{@file}" unless File.exists? @file
@@ -79,7 +79,7 @@ module Scide
79
79
 
80
80
  private
81
81
 
82
- # Returns the contents of #file.
82
+ # Returns the contents of {#file}.
83
83
  def load_config
84
84
  File.open(@file, 'r').read
85
85
  end
@@ -89,7 +89,7 @@ module Scide
89
89
  YAML::load raw
90
90
  end
91
91
 
92
- # Causes scide to fail with an <tt>invalid_config</tt> error (see Scide#fail).
92
+ # Causes scide to fail with an <tt>invalid_config</tt> error (see {Scide.fail}).
93
93
  # Builds a complete error message containing the full path to the
94
94
  # configuration file and the given message.
95
95
  def invalid_config msg
data/lib/scide/global.rb CHANGED
@@ -13,7 +13,7 @@ module Scide
13
13
 
14
14
  # Builds global options.
15
15
  #
16
- # ==== Arguments
16
+ # == Arguments
17
17
  # * <tt>contents</tt> - The global options hash.
18
18
  def initialize contents
19
19
  raise ArgumentError, 'global configuration must be a hash' unless contents.kind_of? Hash
data/lib/scide/opts.rb CHANGED
@@ -22,7 +22,7 @@ module Scide
22
22
 
23
23
  # Parses the given arguments.
24
24
  #
25
- # Causes scide to fail with an <tt>invalid_argument</tt> error (see Scide#fail)
25
+ # Causes scide to fail with an <tt>invalid_argument</tt> error (see {Scide.fail})
26
26
  # if an argument is invalid.
27
27
  def parse! args
28
28
  begin
@@ -5,14 +5,14 @@ module Scide
5
5
  # Utility class to run scide in a script.
6
6
  class Overmind
7
7
 
8
- # Awakens the overmind.
8
+ # Awakens the overmind. Use at your own risk.
9
9
  def initialize
10
10
  @cli = Scide::Opts.new
11
11
  @config = Scide::Config.new
12
12
  end
13
13
 
14
14
  # Parses command-line arguments and loads the configuration file.
15
- # Any error will be run through Scide.fail.
15
+ # Any error will be run through {Scide.fail}.
16
16
  def brood
17
17
  @cli.parse! ARGV
18
18
  @config.file = @cli.funnel[:config] if @cli.funnel.key? :config
@@ -21,15 +21,15 @@ module Scide
21
21
  self
22
22
  end
23
23
 
24
- # Runs GNU \Screen with the project given as argument.
24
+ # Runs GNU Screen with the project given as argument.
25
25
  # The <tt>--dry-run</tt> option will cause scide to print the
26
26
  # resulting configuration instead of running it.
27
27
  #
28
- # ==== Errors
29
- # * <tt>not_initialized</tt> - If #brood was not called.
28
+ # == Errors
29
+ # * <tt>not_initialized</tt> - If {#brood} was not called.
30
30
  # * <tt>unknown_project</tt> - If the given project is not found
31
31
  # in the configuration file.
32
- # * <tt>screen_not_found</tt> - If the GNU \Screen binary is not
32
+ # * <tt>screen_not_found</tt> - If the GNU Screen binary is not
33
33
  # found with <tt>which</tt>.
34
34
  def dominate
35
35
 
data/lib/scide/project.rb CHANGED
@@ -6,10 +6,10 @@ module Scide
6
6
  # The project key in the projects configuration hash.
7
7
  attr_reader :key
8
8
 
9
- # The path where the project is located. See #initialize.
9
+ # The path where the project is located. See {#initialize}.
10
10
  attr_reader :path
11
11
 
12
- # Project-specific options. Can be used by commands. See #initialize.
12
+ # Project-specific options. Can be used by commands. See {#initialize}.
13
13
  attr_reader :options
14
14
 
15
15
  # The GNU Screen windows of this project.
@@ -17,18 +17,18 @@ module Scide
17
17
 
18
18
  # Returns a project configuration.
19
19
  #
20
- # If not given in the project hash, #path is built by joining
20
+ # If not given in the project hash, {#path} is built by joining
21
21
  # the global path and <tt>key</tt>.
22
22
  #
23
- # ==== Arguments
23
+ # == Arguments
24
24
  # * <tt>global</tt> - The global configuration.
25
25
  # * <tt>key</tt> - The key identifying the project. This is the
26
26
  # key in the projects hash.
27
27
  # * <tt>contents</tt> - The project hash.
28
28
  #
29
- # ==== Project Options
29
+ # == Project Options
30
30
  #
31
- # #options is built by merging the options given in the project
31
+ # {#options} is built by merging the options given in the project
32
32
  # hash with the global options.
33
33
  #
34
34
  # The following default options are added if not given:
data/lib/scide/screen.rb CHANGED
@@ -14,14 +14,14 @@ module Scide
14
14
 
15
15
  # Returns a screen configuration for the given project.
16
16
  #
17
- # ==== Arguments
17
+ # == Arguments
18
18
  # * <tt>project</tt> - The project.
19
19
  # * <tt>options</tt> - Screen-specific options (see below).
20
20
  #
21
- # ==== Options
21
+ # == Options
22
22
  # * <tt>binary</tt> - Screen binary (defaults to <tt>screen</tt>).
23
23
  # * <tt>args</tt> - Command-line arguments that will be given to screen (e.g. <tt>-U</tt> for unicode).
24
- # * <tt>hardstatus</tt> - Hardstatus line configuration (defaults to #DEFAULT_HARDSTATUS).
24
+ # * <tt>hardstatus</tt> - Hardstatus line configuration (defaults to {DEFAULT_HARDSTATUS}).
25
25
  def initialize project, options
26
26
  raise ArgumentError, 'screen configuration must be a hash' unless options.nil? or options.kind_of?(Hash)
27
27
 
@@ -31,7 +31,7 @@ module Scide
31
31
 
32
32
  # Returns the command that will be used to run screen with this configuration.
33
33
  #
34
- # ==== Arguments
34
+ # == Arguments
35
35
  # * <tt>tmp_file</tt> - The temporary file in which the configuration will be stored.
36
36
  # (Optional for dry-run.)
37
37
  def to_command tmp_file = 'TEMPORARY_FILE'
@@ -39,9 +39,9 @@ module Scide
39
39
  end
40
40
 
41
41
  # Verifies that the screen binary is there. If not, causes scide
42
- # to fail with a <tt>screen_not_found</tt> error (see Scide#fail}.
42
+ # to fail with a <tt>screen_not_found</tt> error (see {Scide.fail}).
43
43
  def check_binary
44
- Scide.fail :screen_not_found, "ERROR: #{binary} not found" unless system("which #{binary}", { [ :out, :err ] => :close })
44
+ Scide.fail :screen_not_found, "ERROR: #{binary} not found" unless system("which #{binary} &>/dev/null")
45
45
  end
46
46
 
47
47
  # Returns a representation of this configuration as a string.
@@ -56,7 +56,7 @@ module Scide
56
56
  end
57
57
 
58
58
  # Returns the screen hardstatus line given as option, or
59
- # the default #DEFAULT_HARDSTATUS.
59
+ # the default {DEFAULT_HARDSTATUS}.
60
60
  def hardstatus
61
61
  @options[:hardstatus].try(:to_s) || DEFAULT_HARDSTATUS
62
62
  end
data/lib/scide/window.rb CHANGED
@@ -4,33 +4,33 @@ module Scide
4
4
  class Window
5
5
 
6
6
  # The name of the window as it will shown in GNU Screen.
7
- # See #initialize.
7
+ # See {#initialize}.
8
8
  attr_reader :name
9
9
 
10
10
  # The optional command that will be shown in this window.
11
11
  attr_reader :command
12
12
 
13
- # Window-specific options. Can be used by commands. See #initialize.
13
+ # Window-specific options. Can be used by commands. See {#initialize}.
14
14
  attr_reader :options
15
15
 
16
16
  # Returns a window for the given project.
17
17
  #
18
- # ==== Arguments
18
+ # == Arguments
19
19
  # * <tt>project</tt> - The project owning this window.
20
20
  # * <tt>contents</tt> - The window configuration (String or Hash).
21
21
  #
22
- # ==== String Initialization
22
+ # == String Initialization
23
23
  # The string must be in the format <tt>NAME [COMMAND]</tt> where
24
24
  # <tt>NAME</tt> is the window name and <tt>COMMAND</tt> (optional)
25
- # is the command configuration (see Scide::Command).
25
+ # is the command configuration (see {Scide::Command}).
26
26
  #
27
- # ==== Hash Initialization
27
+ # == Hash Initialization
28
28
  # The following options can be given:
29
29
  # * <tt>:name => string</tt> - The window name.
30
30
  # * <tt>:options => hash</tt> - Window-specific options (will be
31
31
  # merged to the project options).
32
32
  # * <tt>:command => string</tt> - The command to use for this window
33
- # (will be built using Scide::Command#resolve).
33
+ # (will be built using {Scide::Command.resolve}).
34
34
  # * <tt>:string => string</tt> - If given, <tt>:name</tt> and <tt>:command</tt>
35
35
  # are ignored and string initialization will be performed with <tt>string</tt>.
36
36
  # <tt>:options</tt> can still be used to override project options.
@@ -49,7 +49,7 @@ module Scide
49
49
  # Returns a representation of this window as a GNU Screen
50
50
  # configuration frament.
51
51
  #
52
- # ==== Arguments
52
+ # == Arguments
53
53
  # * <tt>index</tt> - The position of the window (zero-based).
54
54
  def to_screen index
55
55
  String.new.tap do |s|
@@ -60,7 +60,7 @@ module Scide
60
60
 
61
61
  private
62
62
 
63
- # Initializes this window from a hash. See #initialize for options.
63
+ # Initializes this window from a hash. See {#initialize} for options.
64
64
  def init_from_hash! contents
65
65
  raise ArgumentError, "options of window '#{@name}' must be a hash" unless contents[:options].nil? or contents[:options].kind_of?(Hash)
66
66
  @options = @project.options.dup.merge(contents[:options] || {})
@@ -74,7 +74,7 @@ module Scide
74
74
  end
75
75
  end
76
76
 
77
- # Initializes this window from a string. See #initialize for format.
77
+ # Initializes this window from a string. See {#initialize} for format.
78
78
  def init_from_string! contents
79
79
  raise ArgumentError, "window '#{contents}' must not be an empty string" unless contents.present?
80
80
  content_parts = contents.split /\s+/, 2
data/lib/scide.rb CHANGED
@@ -8,17 +8,6 @@ module Scide
8
8
  VERSION = File.open(File.join(File.dirname(__FILE__), '..', 'VERSION'), 'r').read
9
9
 
10
10
  # Exit status codes.
11
- #
12
- # ==== Codes
13
- # * <tt>unexpected</tt> - 1.
14
- # * <tt>invalid_argument</tt> - 2.
15
- # * <tt>not_initialized</tt> - 3.
16
- # * <tt>screen_not_found</tt> - 4.
17
- # * <tt>config_not_found</tt> - 10.
18
- # * <tt>config_not_readable</tt> - 11.
19
- # * <tt>malformed_config</tt> - 12.
20
- # * <tt>invalid_config</tt> - 13.
21
- # * <tt>unknown_project</tt> - 14.
22
11
  EXIT = {
23
12
  :unexpected => 1,
24
13
  :invalid_argument => 2,
@@ -32,7 +21,7 @@ module Scide
32
21
  }
33
22
 
34
23
  # Prints a message on <tt>stderr</tt> and exits.
35
- # If #condition is a key from #EXIT, the corresponding value
24
+ # If <tt>condition</tt> is a key from {EXIT}, the corresponding value
36
25
  # will be used as the exit code. Otherwise, scide exits with
37
26
  # status 1.
38
27
  def self.fail condition, msg
@@ -48,20 +37,22 @@ module Scide
48
37
 
49
38
  # By default, scide is meant to be used as a standalone script
50
39
  # and exits if an error occurs. If <tt>exit_on_fail</tt> is
51
- # false, a Scide::Error will be raised instead. Scide can then
40
+ # false, a {Scide::Error} will be raised instead. Scide can then
52
41
  # be used by another script.
53
42
  def self.exit_on_fail= exit_on_fail
54
43
  @@exit_on_fail = exit_on_fail
55
44
  end
56
45
 
57
46
  # Indicates whether scide is configured to exit on failure.
58
- # See Scide.exit_on_fail=.
47
+ # See {Scide.exit_on_fail=}.
59
48
  def self.exit_on_fail
60
49
  @@exit_on_fail
61
50
  end
62
51
 
63
- # Scide error. Can be raised if #exit_on_fail is set to false.
52
+ # Scide error. Can be raised if {exit_on_fail} is set to false.
64
53
  class Error < StandardError
54
+
55
+ # A symbol indicating the error type. See {EXIT}.
65
56
  attr_reader :condition
66
57
 
67
58
  # Returns a new error.
data/scide.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "scide"
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["AlphaHydrae"]
12
- s.date = "2011-10-02"
12
+ s.date = "2011-10-20"
13
13
  s.description = "Utility to generate GNU screen configuration files."
14
14
  s.email = "hydrae.alpha@gmail.com"
15
15
  s.executables = ["scide"]
@@ -78,7 +78,8 @@ Gem::Specification.new do |s|
78
78
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
79
79
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
80
80
  s.add_development_dependency(%q<simplecov>, [">= 0"])
81
- s.add_development_dependency(%q<rdoc>, [">= 0"])
81
+ s.add_development_dependency(%q<yard>, [">= 0"])
82
+ s.add_development_dependency(%q<rdiscount>, [">= 0"])
82
83
  else
83
84
  s.add_dependency(%q<upoj-rb>, ["~> 0.0.4"])
84
85
  s.add_dependency(%q<rspec>, [">= 0"])
@@ -86,7 +87,8 @@ Gem::Specification.new do |s|
86
87
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
87
88
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
88
89
  s.add_dependency(%q<simplecov>, [">= 0"])
89
- s.add_dependency(%q<rdoc>, [">= 0"])
90
+ s.add_dependency(%q<yard>, [">= 0"])
91
+ s.add_dependency(%q<rdiscount>, [">= 0"])
90
92
  end
91
93
  else
92
94
  s.add_dependency(%q<upoj-rb>, ["~> 0.0.4"])
@@ -95,7 +97,8 @@ Gem::Specification.new do |s|
95
97
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
96
98
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
97
99
  s.add_dependency(%q<simplecov>, [">= 0"])
98
- s.add_dependency(%q<rdoc>, [">= 0"])
100
+ s.add_dependency(%q<yard>, [">= 0"])
101
+ s.add_dependency(%q<rdiscount>, [">= 0"])
99
102
  end
100
103
  end
101
104
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-02 00:00:00.000000000Z
12
+ date: 2011-10-20 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: upoj-rb
16
- requirement: &2157640360 !ruby/object:Gem::Requirement
16
+ requirement: &2154306940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.0.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157640360
24
+ version_requirements: *2154306940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2157639760 !ruby/object:Gem::Requirement
27
+ requirement: &2154306460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2157639760
35
+ version_requirements: *2154306460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &2157639160 !ruby/object:Gem::Requirement
38
+ requirement: &2154305980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2157639160
46
+ version_requirements: *2154305980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &2157638560 !ruby/object:Gem::Requirement
49
+ requirement: &2154305480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2157638560
57
+ version_requirements: *2154305480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &2157637960 !ruby/object:Gem::Requirement
60
+ requirement: &2154305000 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2157637960
68
+ version_requirements: *2154305000
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
- requirement: &2157637360 !ruby/object:Gem::Requirement
71
+ requirement: &2154304460 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2157637360
79
+ version_requirements: *2154304460
80
80
  - !ruby/object:Gem::Dependency
81
- name: rdoc
82
- requirement: &2157636760 !ruby/object:Gem::Requirement
81
+ name: yard
82
+ requirement: &2154303920 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,18 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2157636760
90
+ version_requirements: *2154303920
91
+ - !ruby/object:Gem::Dependency
92
+ name: rdiscount
93
+ requirement: &2154303400 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *2154303400
91
102
  description: Utility to generate GNU screen configuration files.
92
103
  email: hydrae.alpha@gmail.com
93
104
  executables:
@@ -155,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
166
  version: '0'
156
167
  segments:
157
168
  - 0
158
- hash: 1323190818279805743
169
+ hash: -2236574170899638765
159
170
  required_rubygems_version: !ruby/object:Gem::Requirement
160
171
  none: false
161
172
  requirements: