mysh 0.6.12 → 0.6.13
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.
- checksums.yaml +4 -4
- data/README.md +6 -3
- data/lib/mysh.rb +10 -3
- data/lib/mysh/{internal/action.rb → action.rb} +8 -8
- data/lib/mysh/{internal/action_pool.rb → action_pool.rb} +8 -8
- data/lib/mysh/{internal/actions/command_line.rb → command_line.rb} +10 -10
- data/lib/mysh/{internal/actions/command_line → command_line}/debug.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/history.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/init.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/load.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/pause.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/post_prompt.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/pre_prompt.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/prompt.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/quit.rb +0 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/usage.rb +0 -0
- data/lib/mysh/external.rb +3 -4
- data/lib/mysh/globalize.rb +5 -7
- data/lib/mysh/handlebars.rb +1 -3
- data/lib/mysh/handlebars/{string.rb → eval_handlebars.rb} +5 -3
- data/lib/mysh/{internal/actions/help → help}/env.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/expr.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/gem.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/gls.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/h_o_h.txt +1 -1
- data/lib/mysh/{internal/actions/help → help}/hbar.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/help.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/history.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/init.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/kbd.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/math.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/mls.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/quick.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/ruby.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/show.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/term.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/timed.txt +0 -0
- data/lib/mysh/help/type.txt +28 -0
- data/lib/mysh/{internal/actions/help → help}/types.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/usage.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/vars.txt +0 -0
- data/lib/mysh/input_wrapper.rb +13 -13
- data/lib/mysh/internal.rb +20 -8
- data/lib/mysh/internal/{actions/cancel.rb → cancel.rb} +0 -0
- data/lib/mysh/internal/{actions/cd.rb → cd.rb} +0 -0
- data/lib/mysh/internal/{actions/comment.rb → comment.rb} +0 -0
- data/lib/mysh/internal/{actions/elapsed.rb → elapsed.rb} +0 -0
- data/lib/mysh/internal/{actions/exit.rb → exit.rb} +0 -0
- data/lib/mysh/internal/{actions/gls.rb → gls.rb} +0 -0
- data/lib/mysh/internal/{actions/help.rb → help.rb} +7 -9
- data/lib/mysh/internal/{actions/history.rb → history.rb} +0 -0
- data/lib/mysh/internal/load.rb +45 -0
- data/lib/mysh/internal/{actions/mls.rb → mls.rb} +0 -0
- data/lib/mysh/internal/{actions/pwd.rb → pwd.rb} +0 -0
- data/lib/mysh/internal/{actions/say.rb → say.rb} +0 -0
- data/lib/mysh/internal/{actions/show.rb → show.rb} +7 -6
- data/lib/mysh/internal/{actions/help → support}/sub_help.rb +9 -7
- data/lib/mysh/internal/type.rb +38 -0
- data/lib/mysh/internal/{actions/vars.rb → vars.rb} +0 -0
- data/lib/mysh/{init.rb → load_init_file.rb} +0 -0
- data/lib/mysh/process.rb +7 -7
- data/lib/mysh/quick.rb +3 -3
- data/lib/mysh/shell_variables.rb +6 -3
- data/lib/mysh/shell_variables/evaluate.rb +2 -11
- data/lib/mysh/{internal/actions/show → show}/env.rb +1 -1
- data/lib/mysh/{internal/actions/show → show}/gem.rb +0 -0
- data/lib/mysh/{internal/actions/show → show}/ruby.rb +0 -0
- data/lib/mysh/{internal/actions/show → show}/term.rb +0 -0
- data/lib/mysh/sources/console.rb +3 -2
- data/lib/mysh/string_helpers.rb +37 -0
- data/lib/mysh/system.rb +2 -2
- data/lib/mysh/user_input.rb +4 -7
- data/lib/mysh/version.rb +4 -4
- data/mysh.gemspec +1 -1
- data/tests/my_shell_tests.rb +13 -0
- metadata +59 -61
- data/lib/mysh/internal/actions/actions_path.rb +0 -15
- data/lib/mysh/internal/actions/load.rb +0 -36
- data/lib/mysh/internal/actions/type.rb +0 -22
- data/lib/mysh/internal/manage.rb +0 -20
- data/lib/mysh/internal/to_file_spec.rb +0 -26
- data/lib/mysh/pre_processor.rb +0 -11
data/lib/mysh/internal.rb
CHANGED
@@ -1,10 +1,22 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
module Mysh
|
4
|
+
|
5
|
+
# Set up the command action pool.
|
6
|
+
COMMANDS = ActionPool.new("COMMANDS")
|
7
|
+
|
8
|
+
# Try to execute the string as an internal action.
|
9
|
+
def self.try_execute_internal(input)
|
10
|
+
unless input.quick_command == ' '
|
11
|
+
if (action = COMMANDS[input.raw_command])
|
12
|
+
action.process_command(input)
|
13
|
+
:internal
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
# Load up the internal actions!
|
21
|
+
load_spec = MYSH_LIB + "mysh/internal/*.rb"
|
22
|
+
Dir[load_spec].each {|file| require file }
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal help command.
|
4
4
|
module Mysh
|
5
5
|
|
6
6
|
# Help action pool of topics.
|
@@ -21,12 +21,11 @@ module Mysh
|
|
21
21
|
|
22
22
|
HELP = ActionPool.new("HELP", default)
|
23
23
|
|
24
|
-
|
24
|
+
# The mysh internal help command.
|
25
25
|
class HelpCommand < Action
|
26
26
|
|
27
|
-
#Execute a help command by routing it to a sub-command.
|
28
|
-
|
29
|
-
#* :reek:UtilityFunction
|
27
|
+
# Execute a help command by routing it to a sub-command.
|
28
|
+
# Endemic Code Smells :reek:UtilityFunction
|
30
29
|
def process_command(input)
|
31
30
|
args = input.args
|
32
31
|
HELP[args[0] || ""].process_command(args)
|
@@ -37,12 +36,11 @@ module Mysh
|
|
37
36
|
# The base help command.
|
38
37
|
desc = 'Display help information for mysh with an optional topic. See ?? for more.'
|
39
38
|
COMMANDS.add_action(HelpCommand.new('help <topic>', desc))
|
39
|
+
|
40
40
|
#The help command action object.
|
41
41
|
HELP_COMMAND = HelpCommand.new('?<topic>', desc)
|
42
42
|
COMMANDS.add_action(HELP_COMMAND)
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
#Load up the extra help actions!
|
48
|
-
Dir[Mysh::Action::ACTIONS_PATH + 'help/*.rb'].each {|file| require file }
|
45
|
+
# Load in support for help sub-topics
|
46
|
+
require_relative 'support/sub_help'
|
File without changes
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
#* mysh/internal/actions/load.rb -- The mysh load command.
|
4
|
+
module Mysh
|
5
|
+
|
6
|
+
#Add the load command to the library.
|
7
|
+
desc = "Load ruby programs, mysh scripts, " +
|
8
|
+
"or text files into the mysh environment."
|
9
|
+
|
10
|
+
action = lambda do |input|
|
11
|
+
count = 0
|
12
|
+
args = input.args
|
13
|
+
|
14
|
+
args.each do |file_name|
|
15
|
+
puts file_name if args.length > 1
|
16
|
+
Mysh.load_a_file(file_name)
|
17
|
+
count += 1
|
18
|
+
end
|
19
|
+
|
20
|
+
if count > 0
|
21
|
+
:internal
|
22
|
+
else
|
23
|
+
fail "Error: A load file must be specified."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Load a single file.
|
28
|
+
def self.load_a_file(file_name)
|
29
|
+
case File.extname(file_name)
|
30
|
+
when '.mysh'
|
31
|
+
Mysh.process_file(file_name)
|
32
|
+
:internal
|
33
|
+
when '.txt'
|
34
|
+
show_handlebar_file(file_name, binding)
|
35
|
+
:internal
|
36
|
+
when '.rb'
|
37
|
+
load file_name
|
38
|
+
:internal
|
39
|
+
else
|
40
|
+
fail "Error: Unknown file type: #{file_name.inspect}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
COMMANDS.add_action(Action.new('load <files>', desc, &action))
|
45
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal show command.
|
4
4
|
module Mysh
|
5
5
|
|
6
6
|
# The working message for long duration processing.
|
7
7
|
WORKING = "Working...\r"
|
8
8
|
|
9
|
-
#Show items.
|
9
|
+
# Show items.
|
10
10
|
default = Action.new do |input|
|
11
11
|
puts "No show data found for #{input.raw.inspect}. See ?@ for more."
|
12
12
|
end
|
13
13
|
|
14
14
|
SHOW = ActionPool.new("SHOW", default)
|
15
15
|
|
16
|
-
#The shared description.
|
16
|
+
# The shared description.
|
17
17
|
desc = "Display information about a part of mysh. See ?@ for more."
|
18
18
|
|
19
19
|
action = lambda do |input|
|
@@ -26,11 +26,12 @@ module Mysh
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
#The show command action object.
|
29
|
+
# The show command action object.
|
30
30
|
COMMANDS.add_action(Action.new('show <item>', desc, &action))
|
31
31
|
SHOW_COMMAND = Action.new('@<item>', desc, &action)
|
32
32
|
COMMANDS.add_action(SHOW_COMMAND)
|
33
33
|
end
|
34
34
|
|
35
|
-
#Load up the
|
36
|
-
|
35
|
+
# Load up the various show actions!
|
36
|
+
path = MYSH_LIB + "mysh/show/*.rb"
|
37
|
+
Dir[path].each {|file| require file }
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal help sub commands.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh internal help sub commands.
|
7
7
|
class HelpSubCommand < Action
|
8
8
|
|
9
|
-
#Setup a help command.
|
9
|
+
# Setup a help command.
|
10
10
|
def initialize(name, description, file_name)
|
11
11
|
super(name, description)
|
12
12
|
@file_name = file_name
|
@@ -14,12 +14,13 @@ module Mysh
|
|
14
14
|
|
15
15
|
#Execute a help command.
|
16
16
|
def process_command(_args)
|
17
|
-
|
17
|
+
path = MYSH_LIB + "mysh/help/" + @file_name
|
18
|
+
mysh "load #{path.to_host_spec}"
|
18
19
|
end
|
19
20
|
|
20
21
|
end
|
21
22
|
|
22
|
-
#Add help topics here. Don't sweat the order; they get sorted by name.
|
23
|
+
# Add help topics here. Don't sweat the order; they get sorted by name.
|
23
24
|
# Name Description Help File
|
24
25
|
help = [['', 'General help on mysh.', 'help.txt' ],
|
25
26
|
['set', 'Help on mysh variables.', 'vars.txt' ],
|
@@ -34,13 +35,14 @@ module Mysh
|
|
34
35
|
['usage', 'Help on mysh usage.', 'usage.txt' ],
|
35
36
|
['=', 'Help on ruby expressions.', 'expr.txt' ],
|
36
37
|
['quick', 'Help on quick commands.', 'quick.txt' ],
|
37
|
-
['gls', 'Help on gls
|
38
|
-
['mls', 'Help on mls
|
38
|
+
['gls', 'Help on the gls command.', 'gls.txt' ],
|
39
|
+
['mls', 'Help on the mls command.', 'mls.txt' ],
|
39
40
|
['!', 'Help on the history command.', 'history.txt'],
|
40
41
|
['history', 'Help on the history command.', 'history.txt'],
|
41
42
|
['kbd', 'Help on mysh keyboard mapping.', 'kbd.txt' ],
|
42
43
|
['{{', 'Help on mysh handlebars.', 'hbar.txt' ],
|
43
44
|
['init', 'Help on mysh initialization.', 'init.txt' ],
|
45
|
+
['type', 'Help on the type command.', 'type.txt' ],
|
44
46
|
['types', 'Help on mysh file types.', 'types.txt' ],
|
45
47
|
['help', 'This help on the help command.', 'h_o_h.txt' ],
|
46
48
|
['?', 'This help on the help command.', 'h_o_h.txt' ]
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
#* mysh/internal/actions/type.rb -- The mysh type command.
|
4
|
+
module Mysh
|
5
|
+
|
6
|
+
#Add the type command to the library.
|
7
|
+
desc = 'Display one or more text files with optional support for ' +
|
8
|
+
'embedded handlebars and shell variables. See ?type for more.'
|
9
|
+
|
10
|
+
action = lambda do |input|
|
11
|
+
count = 0
|
12
|
+
cooked = MNV[:type] !~ /\A(raw|false|no|off)\z/i
|
13
|
+
args = input.args
|
14
|
+
|
15
|
+
args.each do |file_name|
|
16
|
+
puts file_name if args.length > 1
|
17
|
+
|
18
|
+
case file_name
|
19
|
+
when "-c"
|
20
|
+
cooked = false
|
21
|
+
when "+c"
|
22
|
+
cooked = true
|
23
|
+
else
|
24
|
+
if cooked
|
25
|
+
show_handlebar_file(file_name, binding)
|
26
|
+
else
|
27
|
+
puts IO.read(file_name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
count += 1
|
32
|
+
end
|
33
|
+
|
34
|
+
fail "A text file must be specified." if count == 0
|
35
|
+
end
|
36
|
+
|
37
|
+
COMMANDS.add_action(Action.new('type <files>', desc, &action))
|
38
|
+
end
|
File without changes
|
File without changes
|
data/lib/mysh/process.rb
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh command processors.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Process from the console.
|
6
|
+
# Process from the console.
|
7
7
|
def self.process_console
|
8
8
|
process_source(Console.new)
|
9
9
|
end
|
10
10
|
|
11
|
-
#Process from a string.
|
11
|
+
# Process from a string.
|
12
12
|
def self.process_string(str)
|
13
13
|
process_source(StringSource.new(str))
|
14
14
|
end
|
15
15
|
|
16
|
-
#Process from a file.
|
16
|
+
# Process from a file.
|
17
17
|
def self.process_file(name)
|
18
18
|
process_source(StringSource.new(IO.read(name)))
|
19
19
|
end
|
20
20
|
|
21
|
-
#Process commands from a source.
|
21
|
+
# Process commands from a source.
|
22
22
|
def self.process_source(source)
|
23
23
|
until source.eoi? do
|
24
24
|
execute_a_command(source)
|
@@ -26,7 +26,7 @@ module Mysh
|
|
26
26
|
rescue MyshExit
|
27
27
|
end
|
28
28
|
|
29
|
-
#Execute a single line of input and handle exceptions.
|
29
|
+
# Execute a single line of input and handle exceptions.
|
30
30
|
def self.execute_a_command(source)
|
31
31
|
try_execute_command(get_command(source))
|
32
32
|
|
@@ -38,7 +38,7 @@ module Mysh
|
|
38
38
|
puts err.backtrace if MNV[:debug].extract_boolean || defined?(MiniTest)
|
39
39
|
end
|
40
40
|
|
41
|
-
#Try to execute a single line of input. Does not handle exceptions.
|
41
|
+
# Try to execute a single line of input. Does not handle exceptions.
|
42
42
|
def self.try_execute_command(str)
|
43
43
|
input = InputWrapper.new(str)
|
44
44
|
|
data/lib/mysh/quick.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal quick commands.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#A hash of quick command short cuts and their actions.
|
6
|
+
# A hash of quick command short cuts and their actions.
|
7
7
|
QUICK = Hash.new(lambda {|_input| false })
|
8
8
|
|
9
9
|
QUICK['!'] = lambda {|input| HISTORY_COMMAND.process_quick_command(input)}
|
@@ -19,7 +19,7 @@ module Mysh
|
|
19
19
|
:expression
|
20
20
|
end
|
21
21
|
|
22
|
-
#Try to execute the inputing as a quick command.
|
22
|
+
# Try to execute the inputing as a quick command.
|
23
23
|
def self.try_execute_quick(input)
|
24
24
|
QUICK[input.quick_command].call(input)
|
25
25
|
end
|
data/lib/mysh/shell_variables.rb
CHANGED
@@ -4,13 +4,13 @@ require_relative 'shell_variables/shell_variable_store'
|
|
4
4
|
require_relative 'shell_variables/shell_variable_keeper'
|
5
5
|
require_relative 'shell_variables/evaluate'
|
6
6
|
|
7
|
-
|
7
|
+
# Adds support for mysh scripting variables.
|
8
8
|
module Mysh
|
9
9
|
|
10
|
-
#Set up some essential entries.
|
10
|
+
# Set up some essential entries.
|
11
11
|
MNV['$'.to_sym] = "$"
|
12
12
|
|
13
|
-
#Set up some default values.
|
13
|
+
# Set up some default values.
|
14
14
|
MNV[:debug] = "false"
|
15
15
|
MNV[:prompt] = "mysh>"
|
16
16
|
MNV[:post_prompt] = "$prompt"
|
@@ -22,6 +22,7 @@ module Mysh
|
|
22
22
|
MNV[:page_msg] = "Press a key, a space, or q:"
|
23
23
|
|
24
24
|
MNV[:history] = "on"
|
25
|
+
MNV[:no_dups] = "on"
|
25
26
|
MNV[:no_move] = "on"
|
26
27
|
|
27
28
|
MNV[:d] = "{{ Time.now.strftime(MNV[:date_fmt]) }}"
|
@@ -34,4 +35,6 @@ module Mysh
|
|
34
35
|
|
35
36
|
MNV[:date_fmt] = "%Y-%m-%d"
|
36
37
|
MNV[:time_fmt] = "%H:%M"
|
38
|
+
|
39
|
+
MNV[:type] = "raw"
|
37
40
|
end
|
@@ -1,18 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
#Monkey patches for Mysh variables
|
3
|
+
# Monkey patches for Mysh variables
|
4
4
|
class String
|
5
5
|
|
6
|
-
#
|
7
|
-
def extract_boolean
|
8
|
-
if self =~ /\A(false|no|off)\z/i
|
9
|
-
false
|
10
|
-
else
|
11
|
-
self
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
#Evaluate any variable substitutions in the input.
|
6
|
+
# Evaluate any variable substitutions in the string.
|
16
7
|
def eval_variables
|
17
8
|
self.gsub(/((?<!\\)\$\$)|((?<!\\)\$[a-z][a-z0-9_]*)/) do |str|
|
18
9
|
sym = str[1..-1].to_sym
|
@@ -21,7 +21,7 @@ module Mysh
|
|
21
21
|
# Get the info
|
22
22
|
# Endemic Code Smells :reek:UtilityFunction
|
23
23
|
def info
|
24
|
-
[["about", Mysh::
|
24
|
+
[["about", Mysh::DESCRIPTION],
|
25
25
|
["version", Mysh::VERSION],
|
26
26
|
["installed", Gem::Specification.find_all_by_name("mysh")
|
27
27
|
.map{|s| s.version.to_s}
|
File without changes
|
File without changes
|
File without changes
|
data/lib/mysh/sources/console.rb
CHANGED
@@ -47,8 +47,9 @@ module Mysh
|
|
47
47
|
|
48
48
|
# Get some actual user input!
|
49
49
|
def get(parms={})
|
50
|
-
parms[:history] = MNV[:history].extract_boolean
|
51
|
-
parms[:
|
50
|
+
parms[:history] = MNV[:history].extract_boolean unless parms.has_key?(:history)
|
51
|
+
parms[:no_dups] = MNV[:no_dups].extract_boolean unless parms.has_key?(:no_dups)
|
52
|
+
parms[:no_move] = MNV[:no_move].extract_boolean unless parms.has_key?(:no_move)
|
52
53
|
|
53
54
|
result = (input = Mysh.input).readline(parms)
|
54
55
|
input.instance_options[:initial] = ""
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Monkey patches for Mysh string data.
|
4
|
+
class String
|
5
|
+
|
6
|
+
# Extract Boolean data from this string.
|
7
|
+
def extract_boolean
|
8
|
+
self !~ /\A(false|no|off)?\z/i
|
9
|
+
end
|
10
|
+
|
11
|
+
# Make the file name fit the local system.
|
12
|
+
def to_host_spec
|
13
|
+
self.dress_up_slashes
|
14
|
+
.dress_up_quotes
|
15
|
+
end
|
16
|
+
|
17
|
+
# Dress up slashes and backslashes.
|
18
|
+
def dress_up_slashes
|
19
|
+
MiniTerm.windows? ? self.gsub("/", "\\") : self
|
20
|
+
end
|
21
|
+
|
22
|
+
# Dress up in quotes if needed.
|
23
|
+
def dress_up_quotes
|
24
|
+
self[' '] ? "\"#{self}\"" : self
|
25
|
+
end
|
26
|
+
|
27
|
+
# Make the file name fit the standard notation.
|
28
|
+
def to_std_spec
|
29
|
+
self.gsub("\\", "/")
|
30
|
+
end
|
31
|
+
|
32
|
+
# The mysh string pre-processor stack.
|
33
|
+
def preprocess(evaluator=$mysh_exec_binding)
|
34
|
+
self.eval_variables.eval_handlebars(evaluator)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|