Class: MyMenu
- Inherits:
-
Object
- Object
- MyMenu
- Defined in:
- lib/mymenu.rb
Instance Attribute Summary collapse
-
#debug ⇒ Object
writeonly
Sets the attribute debug.
-
#menuitems ⇒ Object
readonly
Returns the value of attribute menuitems.
-
#menutitlecolour ⇒ Object
writeonly
Sets the attribute menutitlecolour.
-
#mymenugreeting ⇒ Object
writeonly
Sets the attribute mymenugreeting.
-
#mymenuname ⇒ Object
writeonly
Sets the attribute mymenuname.
-
#mymenushow ⇒ Object
writeonly
Sets the attribute mymenushow.
-
#prompt ⇒ Object
writeonly
Sets the attribute prompt.
-
#promptcolor ⇒ Object
writeonly
Sets the attribute promptcolor.
Instance Method Summary collapse
- #additemtolist(number, name, func) ⇒ Object
- #definemenuitem(func, readlineprompt = false, args = nil, &codeeval) ⇒ Object
-
#initialize ⇒ MyMenu
constructor
A new instance of MyMenu.
- #menu! ⇒ Object
- #settitle(title) ⇒ Object
Constructor Details
#initialize ⇒ MyMenu
Returns a new instance of MyMenu.
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/mymenu.rb', line 17 def initialize = "MyMenu" @prompt = "MyPrompt" @promptcolor = "\e[1;32m\ ".strip = Array.new = "\e[1;36m" = "Welcome to MyMenu" = true @debug = 0 end |
Instance Attribute Details
#debug=(value) ⇒ Object (writeonly)
Sets the attribute debug
14 15 16 |
# File 'lib/mymenu.rb', line 14 def debug=(value) @debug = value end |
#menuitems ⇒ Object (readonly)
Returns the value of attribute menuitems.
15 16 17 |
# File 'lib/mymenu.rb', line 15 def end |
#menutitlecolour=(value) ⇒ Object (writeonly)
Sets the attribute menutitlecolour
14 15 16 |
# File 'lib/mymenu.rb', line 14 def (value) = value end |
#mymenugreeting=(value) ⇒ Object (writeonly)
Sets the attribute mymenugreeting
14 15 16 |
# File 'lib/mymenu.rb', line 14 def (value) = value end |
#mymenuname=(value) ⇒ Object (writeonly)
Sets the attribute mymenuname
14 15 16 |
# File 'lib/mymenu.rb', line 14 def (value) = value end |
#mymenushow=(value) ⇒ Object (writeonly)
Sets the attribute mymenushow
14 15 16 |
# File 'lib/mymenu.rb', line 14 def (value) = value end |
#prompt=(value) ⇒ Object (writeonly)
Sets the attribute prompt
14 15 16 |
# File 'lib/mymenu.rb', line 14 def prompt=(value) @prompt = value end |
#promptcolor=(value) ⇒ Object (writeonly)
Sets the attribute promptcolor
14 15 16 |
# File 'lib/mymenu.rb', line 14 def promptcolor=(value) @promptcolor = value end |
Instance Method Details
#additemtolist(number, name, func) ⇒ Object
30 31 32 |
# File 'lib/mymenu.rb', line 30 def additemtolist(number, name, func) << [number, "#{name}", "#{func}"] end |
#definemenuitem(func, readlineprompt = false, args = nil, &codeeval) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/mymenu.rb', line 61 def (func, readlineprompt=false, args=nil, &codeeval) func_name = func.to_sym if args == nil Kernel.send :define_method, func_name do evalreadline?(readlineprompt) do puts "Without args" if @debug >= 2 codeeval.call end end else Kernel.send :define_method, func_name do |args| evalreadline?(readlineprompt) do puts "With args" if @debug >= 2 codeeval.call end end end end |
#menu! ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mymenu.rb', line 44 def ("0") while buf = Readline.readline("#{@promptcolor}#{@prompt}>\e[0m\ ", true) trap("INT") { puts "\nGoodbye see yall later!!!" exit } begin (buf) rescue NoMethodError end end end |
#settitle(title) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/mymenu.rb', line 34 def settitle(title) = title = "\e[1;38m" = %Q{\n /=========================\e[0m\ \e[1;38m| #{@mymenugreeting} |\e[0m\ \e[1;38m\=========================/\e[0m\ \n } end |