consoleappsupport 0.5.1 → 0.6.1
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/History.txt +14 -0
- data/examples/console_app_example.rb +1 -1
- data/examples/convert_logs_to_csv.rb +1 -1
- data/lib/ConsoleAppHelper.rb +1 -1
- data/lib/ConsoleAppMixin.rb +17 -0
- data/lib/ConsoleAppSupport.rb +2 -2
- metadata +4 -4
data/History.txt
CHANGED
@@ -11,3 +11,17 @@
|
|
11
11
|
* Automatically loads a Logr4 config file, if config option "--log4r-file" is
|
12
12
|
defined and enabled.
|
13
13
|
* Displays RDoc usage message if config option "--help" is defined and enabled.
|
14
|
+
|
15
|
+
=== 0.5.1 / 2009-06-11
|
16
|
+
|
17
|
+
* Minor bug fixes and documentation
|
18
|
+
|
19
|
+
* Renamed LICENSE.txt to License.txt
|
20
|
+
* Fixed gem dependencies in Rakefile.
|
21
|
+
* Moved location of 'require' statements in Mixin module
|
22
|
+
|
23
|
+
=== 0.6.0 / 2009-06-29
|
24
|
+
|
25
|
+
* Minor feature enhancements
|
26
|
+
|
27
|
+
* Added ability to specify an app option as 'required'
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# console_app_example.rb [options] argument1 arg2 etc...
|
15
15
|
#
|
16
16
|
# == Options (all options can be put into the config file)
|
17
|
-
# -n, --repeat-output [INTEGER] Number of times to echo back the arguments.
|
17
|
+
# -n, --repeat-output [INTEGER] Number of times to echo back the arguments. Required.
|
18
18
|
# -c, --config-file [FILE] Use config file [FILE]. default = console_app_example.conf
|
19
19
|
# -l, --log-level [LEVEL] Sets Log4r level for console output. default = INFO
|
20
20
|
# -r, --log4r-file [FILE] Optional Log4r config file. default = example_log4r.xml
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# cat [log files] | convert_logs_to_csv.rb [options] > [output file.csv]
|
15
15
|
#
|
16
16
|
# == Options (all options can be put into the config file)
|
17
|
-
# -p, --log-pattern [REGEX] Regular expression for matching log lines.
|
17
|
+
# -p, --log-pattern [REGEX] Regular expression for matching log lines. REQUIRED
|
18
18
|
# -f, --log-fields [LIST] A list of field names to assign to the parenthesized log-pattern matches.
|
19
19
|
# -c, --config-file [FILE] Use config file [FILE], default = apache_log_to_csv.conf
|
20
20
|
# -l, --log-level [LEVEL] Sets log level to DEBUG, INFO, WARN, ERROR or FATAL. default = INFO
|
data/lib/ConsoleAppHelper.rb
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
# * Call helper.read_configuration_files at any time to reload the appliation and
|
21
21
|
# Log4r configuration files.
|
22
22
|
|
23
|
-
require "#{File.dirname(__FILE__)}/../lib/
|
23
|
+
require "#{File.dirname(__FILE__)}/../lib/consoleappmixin.rb"
|
24
24
|
|
25
25
|
module ConsoleAppSupport
|
26
26
|
class ConsoleAppHelper
|
data/lib/ConsoleAppMixin.rb
CHANGED
@@ -56,6 +56,8 @@ module ConsoleAppSupport
|
|
56
56
|
OPTION_VALUE_EXPRESSION = %r{^\s*\[(\w+)\]}
|
57
57
|
# Regexp used to determine the default value of each application option
|
58
58
|
DEFAULT_VALUE_EXPRESSION = %r{default[^=]*=\s*(.*\S)\s*$}i
|
59
|
+
# Regexp used to determine if application option is required
|
60
|
+
REQUIRED_VALUE_EXPRESSION = %r{required}i
|
59
61
|
|
60
62
|
# Predefined names for application options
|
61
63
|
# that trigger this module's specialized behavior:
|
@@ -85,6 +87,7 @@ module ConsoleAppSupport
|
|
85
87
|
setup_default_options
|
86
88
|
parse_command_line
|
87
89
|
read_configuration_files unless skip_config
|
90
|
+
verify_required_options
|
88
91
|
end
|
89
92
|
|
90
93
|
# Reads the application config file for configuration options, then
|
@@ -128,6 +131,8 @@ module ConsoleAppSupport
|
|
128
131
|
if (DEFAULT_VALUE_EXPRESSION.match description) then
|
129
132
|
@log.debug "This parameter defaults to '#{$1}'"
|
130
133
|
new_app_option[:default] = convert_string($1, new_app_option[:type])
|
134
|
+
elsif (REQUIRED_VALUE_EXPRESSION.match description) then
|
135
|
+
new_app_option[:required] = true
|
131
136
|
end
|
132
137
|
end
|
133
138
|
@_app_options[param] = new_app_option
|
@@ -274,6 +279,18 @@ module ConsoleAppSupport
|
|
274
279
|
end
|
275
280
|
end
|
276
281
|
|
282
|
+
def verify_required_options
|
283
|
+
@_app_options.each do |option, option_parameters|
|
284
|
+
if (not @opts.has_key? option.gsub('-','_').intern) then
|
285
|
+
if option_parameters.has_key? :required then
|
286
|
+
flag = option_parameters[:switch]
|
287
|
+
@log.fatal "Application option '#{option}' (-#{flag}) is required."
|
288
|
+
output_help
|
289
|
+
end
|
290
|
+
end
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
277
294
|
#########################################################
|
278
295
|
# Utility methods
|
279
296
|
|
data/lib/ConsoleAppSupport.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: consoleappsupport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- benton
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-01 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 2.
|
43
|
+
version: 2.3.3
|
44
44
|
version:
|
45
45
|
description: |-
|
46
46
|
The ConsoleAppSupport module provides some commonly-desired behavior
|
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
99
|
requirements: []
|
100
100
|
|
101
101
|
rubyforge_project: consolesupport
|
102
|
-
rubygems_version: 1.3.
|
102
|
+
rubygems_version: 1.3.5
|
103
103
|
signing_key:
|
104
104
|
specification_version: 3
|
105
105
|
summary: "The ConsoleAppSupport module provides some commonly-desired behavior for command-line programs: currently command-line parsing; config file loading; and log4r integration"
|