mysh 0.6.9 → 0.6.16
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 +25 -5
- data/lib/mysh.rb +19 -9
- 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 +9 -11
- data/lib/mysh/command_line/history.rb +61 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/init.rb +8 -8
- data/lib/mysh/{internal/actions/command_line → command_line}/load.rb +5 -5
- data/lib/mysh/{internal/actions/command_line → command_line}/pause.rb +6 -8
- data/lib/mysh/{internal/actions/command_line → command_line}/post_prompt.rb +10 -12
- data/lib/mysh/{internal/actions/command_line → command_line}/pre_prompt.rb +10 -12
- data/lib/mysh/{internal/actions/command_line → command_line}/prompt.rb +9 -10
- data/lib/mysh/command_line/quit.rb +19 -0
- data/lib/mysh/{internal/actions/command_line → command_line}/usage.rb +4 -4
- data/lib/mysh/expression.rb +11 -31
- data/lib/mysh/external.rb +4 -5
- data/lib/mysh/globalize.rb +14 -10
- data/lib/mysh/handlebars.rb +10 -13
- data/lib/mysh/handlebars/eval_handlebars.rb +38 -0
- 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 +11 -0
- data/lib/mysh/{internal/actions/help → help}/help.txt +0 -0
- data/lib/mysh/{internal/actions/help → help}/history.txt +7 -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 +4 -4
- 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} +2 -2
- data/lib/mysh/internal/{actions/comment.rb → comment.rb} +2 -2
- data/lib/mysh/internal/{actions/elapsed.rb → elapsed.rb} +2 -2
- data/lib/mysh/internal/{actions/exit.rb → exit.rb} +0 -0
- data/lib/mysh/internal/{actions/gls.rb → gls.rb} +6 -7
- data/lib/mysh/internal/{actions/help.rb → help.rb} +7 -9
- data/lib/mysh/internal/{actions/history.rb → history.rb} +10 -9
- data/lib/mysh/internal/load.rb +45 -0
- data/lib/mysh/internal/{actions/mls.rb → mls.rb} +2 -2
- data/lib/mysh/internal/{actions/pwd.rb → pwd.rb} +1 -1
- data/lib/mysh/internal/{actions/say.rb → say.rb} +1 -1
- 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} +8 -8
- data/lib/mysh/{init.rb → load_init_file.rb} +3 -3
- data/lib/mysh/process.rb +7 -7
- data/lib/mysh/quick.rb +10 -4
- data/lib/mysh/shell_variables.rb +9 -4
- data/lib/mysh/shell_variables/evaluate.rb +2 -11
- data/lib/mysh/shell_variables/shell_variable_keeper.rb +6 -7
- data/lib/mysh/shell_variables/shell_variable_store.rb +13 -14
- data/lib/mysh/{internal/actions/show → show}/env.rb +3 -5
- data/lib/mysh/{internal/actions/show → show}/gem.rb +3 -16
- data/lib/mysh/{internal/actions/show → show}/ruby.rb +0 -0
- data/lib/mysh/{internal/actions/show → show}/term.rb +5 -7
- data/lib/mysh/sources/console.rb +11 -7
- data/lib/mysh/sources/parse.rb +7 -10
- data/lib/mysh/sources/smart_auto_complete.rb +5 -5
- data/lib/mysh/sources/string.rb +6 -6
- data/lib/mysh/string_helpers.rb +37 -0
- data/lib/mysh/system.rb +2 -2
- data/lib/mysh/user_input.rb +5 -9
- data/lib/mysh/version.rb +4 -4
- data/mysh.gemspec +4 -3
- data/samples/show.txt +2 -0
- data/tests/my_shell_tests.rb +18 -6
- metadata +77 -65
- data/lib/mysh/binding_wrapper.rb +0 -21
- data/lib/mysh/handlebars/string.rb +0 -22
- data/lib/mysh/internal/actions/actions_path.rb +0 -15
- data/lib/mysh/internal/actions/command_line/quit.rb +0 -19
- 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
@@ -0,0 +1,45 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# 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
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'vls'
|
4
4
|
|
5
|
-
|
5
|
+
# The mysh module ls command.
|
6
6
|
module Mysh
|
7
7
|
|
8
|
-
#Add the mls command to the library.
|
8
|
+
# Add the mls command to the library.
|
9
9
|
desc = 'Display modules with version info. See ?mls for more.'
|
10
10
|
|
11
11
|
action = lambda do |input|
|
@@ -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
|
+
# 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
|
@@ -1,24 +1,24 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh internal variables commands.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
|
6
|
+
# The mysh internal variable commands.
|
7
7
|
class VarsCommand < Action
|
8
8
|
|
9
|
-
#The mysh variable parsing regex.
|
9
|
+
# The mysh variable parsing regex.
|
10
10
|
VAR_EXP = %r{(?<name> [a-z][a-z0-9_]*){0}
|
11
11
|
(?<equals> =){0}
|
12
12
|
(?<value> \S.*){0}
|
13
13
|
\$ (\g<name> \s* (\g<equals> \s* \g<value>?)?)?}x
|
14
14
|
|
15
|
-
#Setup an internal action.
|
15
|
+
# Setup an internal action.
|
16
16
|
def initialize(name, description)
|
17
17
|
@var_name = @equals = @value = nil
|
18
18
|
super(name, description)
|
19
19
|
end
|
20
20
|
|
21
|
-
#Execute a command against the internal mysh variables.
|
21
|
+
# Execute a command against the internal mysh variables.
|
22
22
|
def process_command(input)
|
23
23
|
if (match = VAR_EXP.match(input.raw_body))
|
24
24
|
@var_name, @equals, @value = match[:name], match[:equals], match[:value]
|
@@ -30,7 +30,7 @@ module Mysh
|
|
30
30
|
:internal
|
31
31
|
end
|
32
32
|
|
33
|
-
#Do the actual work here.
|
33
|
+
# Do the actual work here.
|
34
34
|
def do_command
|
35
35
|
sym = @var_name.to_sym if @var_name
|
36
36
|
|
@@ -45,7 +45,7 @@ module Mysh
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
#Display all variables neatly.
|
48
|
+
# Display all variables neatly.
|
49
49
|
def show_all_values
|
50
50
|
puts (MNV.keys - ['$'.to_sym])
|
51
51
|
.sort
|
@@ -55,7 +55,7 @@ module Mysh
|
|
55
55
|
|
56
56
|
end
|
57
57
|
|
58
|
-
#The
|
58
|
+
# The set command action object.
|
59
59
|
desc = 'Set/query mysh variables. See ?set for more.'
|
60
60
|
COMMANDS.add_action(VarsCommand.new('set <$name>=value', desc))
|
61
61
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The mysh initial file loader.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#Set the
|
6
|
+
# Set the initial file used to startup mysh to none so far.
|
7
7
|
$mysh_init_file = nil
|
8
8
|
|
9
|
-
#Perform
|
9
|
+
# Perform initial phase processing.
|
10
10
|
def self.mysh_load_init
|
11
11
|
|
12
12
|
unless $mysh_init_file
|
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,19 +1,25 @@
|
|
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)}
|
10
10
|
QUICK['#'] = lambda {|input| MYSH_COMMENT.process_command(input)}
|
11
11
|
QUICK['%'] = lambda {|input| TIMED_COMMAND.process_command(input)}
|
12
|
-
QUICK['='] = lambda {|input| $mysh_exec_host.execute(input.raw.preprocess)}
|
13
12
|
QUICK['?'] = lambda {|input| HELP_COMMAND.process_quick_command(input)}
|
14
13
|
QUICK['@'] = lambda {|input| SHOW_COMMAND.process_quick_command(input)}
|
15
14
|
|
16
|
-
|
15
|
+
QUICK['='] = lambda do |input|
|
16
|
+
cmd = "$mysh_exec_result=(" + input.raw[1..-1].preprocess + ")"
|
17
|
+
puts cmd if MNV[:debug].extract_boolean
|
18
|
+
pp $mysh_exec_binding.eval(cmd)
|
19
|
+
:expression
|
20
|
+
end
|
21
|
+
|
22
|
+
# Try to execute the inputing as a quick command.
|
17
23
|
def self.try_execute_quick(input)
|
18
24
|
QUICK[input.quick_command].call(input)
|
19
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"
|
@@ -19,7 +19,10 @@ module Mysh
|
|
19
19
|
MNV[:page_width] = "{{ MiniTerm.width }}"
|
20
20
|
MNV[:page_height] = "{{ MiniTerm.height }}"
|
21
21
|
MNV[:page_pause] = "on"
|
22
|
-
|
22
|
+
|
23
|
+
MNV[:history] = "on"
|
24
|
+
MNV[:no_dups] = "on"
|
25
|
+
MNV[:no_move] = "on"
|
23
26
|
|
24
27
|
MNV[:d] = "{{ Time.now.strftime(MNV[:date_fmt]) }}"
|
25
28
|
MNV[:h] = "{{ ENV['HOME'].to_host_spec }}"
|
@@ -31,4 +34,6 @@ module Mysh
|
|
31
34
|
|
32
35
|
MNV[:date_fmt] = "%Y-%m-%d"
|
33
36
|
MNV[:time_fmt] = "%H:%M"
|
37
|
+
|
38
|
+
MNV[:type] = "raw"
|
34
39
|
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
|
@@ -1,17 +1,17 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
|
3
|
+
# The keeper of mysh values.
|
4
4
|
module Mysh
|
5
5
|
|
6
|
-
#The keeper of mysh variable values.
|
6
|
+
# The keeper of mysh variable values.
|
7
7
|
class Keeper
|
8
8
|
|
9
|
-
#Set up this variable
|
9
|
+
# Set up this variable
|
10
10
|
def initialize(value="")
|
11
11
|
@value = value
|
12
12
|
end
|
13
13
|
|
14
|
-
#Get the value of this variable.
|
14
|
+
# Get the value of this variable.
|
15
15
|
def get_value(loop_check={})
|
16
16
|
my_id = self.object_id
|
17
17
|
fail "Mysh variable looping error." if loop_check[my_id]
|
@@ -21,12 +21,12 @@ module Mysh
|
|
21
21
|
loop_check.delete(my_id)
|
22
22
|
end
|
23
23
|
|
24
|
-
#Get the source code of this variable.
|
24
|
+
# Get the source code of this variable.
|
25
25
|
def get_source
|
26
26
|
@value
|
27
27
|
end
|
28
28
|
|
29
|
-
#Set the value of this variable.
|
29
|
+
# Set the value of this variable.
|
30
30
|
def set_value(value)
|
31
31
|
@value = value
|
32
32
|
end
|
@@ -34,4 +34,3 @@ module Mysh
|
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
37
|
-
|