wxruby 1.9.2-i386-mswin32 → 1.9.3-i386-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +53 -53
- data/README +299 -299
- data/lib/wx/classes/app.rb +6 -0
- data/lib/wx/classes/checklistbox.rb +45 -30
- data/lib/wx/classes/clipboard.rb +16 -0
- data/lib/wx/classes/event.rb +5 -0
- data/lib/wx/classes/evthandler.rb +20 -10
- data/lib/wx/classes/grid.rb +38 -39
- data/lib/wx/classes/listctrl.rb +12 -0
- data/lib/wx/classes/mediactrl.rb +22 -0
- data/lib/wx/classes/menu.rb +6 -6
- data/lib/wx/classes/sound.rb +23 -0
- data/lib/wx/classes/styledtextctrl.rb +2 -2
- data/lib/wx/classes/treectrl.rb +26 -0
- data/lib/wx/keyword_ctors.rb +19 -5
- data/lib/wx/keyword_defs.rb +20 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wx.rb +42 -42
- data/lib/wxruby2.exp +0 -0
- data/lib/wxruby2.lib +0 -0
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +17 -17
- data/samples/aui/aui.rb +8 -1
- data/samples/bigdemo/About.rbw +39 -39
- data/samples/bigdemo/ColorPanel.rbw +25 -25
- data/samples/bigdemo/GridSimple.rbw +80 -80
- data/samples/bigdemo/MDIDemo.rbw +59 -59
- data/samples/bigdemo/PopupMenu.rbw +151 -151
- data/samples/bigdemo/Sizers.rbw +545 -545
- data/samples/bigdemo/bigdemo.rb +826 -826
- data/samples/bigdemo/demoTemplate.rbw +37 -37
- data/samples/bigdemo/icons/choice.xpm +27 -27
- data/samples/bigdemo/icons/combo.xpm +27 -27
- data/samples/bigdemo/icons/copy.xpm +25 -25
- data/samples/bigdemo/icons/cut.xpm +24 -24
- data/samples/bigdemo/icons/gauge.xpm +27 -27
- data/samples/bigdemo/icons/help.xpm +25 -25
- data/samples/bigdemo/icons/list.xpm +27 -27
- data/samples/bigdemo/icons/mondrian.xpm +44 -44
- data/samples/bigdemo/icons/new.xpm +24 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -45
- data/samples/bigdemo/icons/open.xpm +26 -26
- data/samples/bigdemo/icons/paste.xpm +38 -38
- data/samples/bigdemo/icons/preview.xpm +26 -26
- data/samples/bigdemo/icons/print.xpm +26 -26
- data/samples/bigdemo/icons/radio.xpm +27 -27
- data/samples/bigdemo/icons/robert.xpm +415 -415
- data/samples/bigdemo/icons/save.xpm +25 -25
- data/samples/bigdemo/icons/smiles.xpm +39 -39
- data/samples/bigdemo/icons/smiley.xpm +42 -42
- data/samples/bigdemo/icons/stattext.xpm +24 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -79
- data/samples/bigdemo/icons/text.xpm +27 -27
- data/samples/bigdemo/icons/tog1.xpm +38 -38
- data/samples/bigdemo/icons/tog2.xpm +38 -38
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
- data/samples/bigdemo/tips.txt +7 -7
- data/samples/bigdemo/utils.rb +11 -11
- data/samples/bigdemo/wxButton.rbw +66 -66
- data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
- data/samples/bigdemo/wxCheckBox.rbw +52 -52
- data/samples/bigdemo/wxCheckListBox.rbw +77 -77
- data/samples/bigdemo/wxChoice.rbw +49 -49
- data/samples/bigdemo/wxColourDialog.rbw +34 -34
- data/samples/bigdemo/wxComboBox.rbw +79 -79
- data/samples/bigdemo/wxDialog.rbw +92 -92
- data/samples/bigdemo/wxDirDialog.rbw +32 -32
- data/samples/bigdemo/wxFileDialog.rbw +39 -39
- data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
- data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
- data/samples/bigdemo/wxFontDialog.rbw +176 -176
- data/samples/bigdemo/wxFrame.rbw +55 -55
- data/samples/bigdemo/wxGauge.rbw +73 -73
- data/samples/bigdemo/wxGrid.rbw +68 -68
- data/samples/bigdemo/wxListBox.rbw +142 -142
- data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
- data/samples/bigdemo/wxMDIWindows.rbw +52 -52
- data/samples/bigdemo/wxMenu.rbw +238 -238
- data/samples/bigdemo/wxMessageDialog.rbw +30 -30
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
- data/samples/bigdemo/wxNotebook.rbw +138 -138
- data/samples/bigdemo/wxProgressDialog.rbw +45 -45
- data/samples/bigdemo/wxRadioBox.rbw +74 -74
- data/samples/bigdemo/wxRadioButton.rbw +127 -127
- data/samples/bigdemo/wxSashWindow.rbw +94 -104
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
- data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
- data/samples/bigdemo/wxSlider.rbw +44 -44
- data/samples/bigdemo/wxSpinButton.rbw +52 -52
- data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
- data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
- data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
- data/samples/bigdemo/wxStaticText.rbw +57 -57
- data/samples/bigdemo/wxStatusBar.rbw +128 -128
- data/samples/bigdemo/wxTextCtrl.rbw +151 -151
- data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
- data/samples/bigdemo/wxToggleButton.rbw +51 -51
- data/samples/bigdemo/wxToolBar.rbw +133 -133
- data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
- data/samples/calendar/calendar.rb +275 -275
- data/samples/caret/caret.rb +286 -286
- data/samples/caret/mondrian.xpm +44 -44
- data/samples/controls/controls.rb +1140 -1140
- data/samples/controls/get_item_sample.rb +87 -87
- data/samples/controls/icons/choice.xpm +27 -27
- data/samples/controls/icons/combo.xpm +27 -27
- data/samples/controls/icons/gauge.xpm +27 -27
- data/samples/controls/icons/list.xpm +27 -27
- data/samples/controls/icons/radio.xpm +27 -27
- data/samples/controls/icons/stattext.xpm +24 -24
- data/samples/controls/icons/text.xpm +27 -27
- data/samples/controls/mondrian.xpm +44 -44
- data/samples/dialogs/dialogs.rb +724 -724
- data/samples/dialogs/tips.txt +18 -18
- data/samples/drawing/graphics_drawing.rb +232 -0
- data/samples/{images → drawing}/images.rb +48 -48
- data/samples/{images → drawing}/paperclip.png +0 -0
- data/samples/etc/activation.rb +108 -108
- data/samples/etc/choice.rb +72 -72
- data/samples/etc/miniframe.rb +84 -84
- data/samples/etc/sash.rb +135 -135
- data/samples/etc/scrollwin.rb +116 -116
- data/samples/etc/system_settings.rb +258 -258
- data/samples/etc/wizard.rb +79 -79
- data/samples/grid/grid.rb +1 -0
- data/samples/listbook/listbook.rb +181 -181
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +87 -87
- data/samples/media/mediactrl.rb +173 -0
- data/samples/minimal/minimal.rb +85 -85
- data/samples/minimal/nothing.rb +21 -21
- data/samples/opengl/cube.rb +123 -0
- data/samples/sockets/SocketPackets.rb +27 -0
- data/samples/sockets/res/message-new.png +0 -0
- data/samples/sockets/res/user.png +0 -0
- data/samples/sockets/wxClient.rb +395 -0
- data/samples/sockets/wxServer.rb +422 -0
- data/samples/sockets/wxSocketGUI.rb +97 -0
- data/samples/text/textctrl.rb +124 -124
- data/samples/text/unicode.rb +238 -238
- data/samples/text/utf8.txt +14 -14
- data/samples/treectrl/treectrl.rb +1180 -1181
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +107 -107
- metadata +26 -9
- data/samples/images/Thumbs.db +0 -0
@@ -1,109 +1,109 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'wx'
|
5
|
-
rescue LoadError => no_wx_err
|
6
|
-
begin
|
7
|
-
require 'rubygems'
|
8
|
-
require 'wx'
|
9
|
-
rescue LoadError
|
10
|
-
raise no_wx_err
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class TestVirtualList < Wx::ListCtrl
|
15
|
-
def initialize(parent, log)
|
16
|
-
super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::LC_REPORT | Wx::LC_VIRTUAL | Wx::LC_HRULES | Wx::LC_VRULES)
|
17
|
-
@log = log
|
18
|
-
|
19
|
-
@il = Wx::ImageList.new(16,16)
|
20
|
-
bmp_file = File.join(File.dirname(__FILE__), "icons/wxwin16x16.xpm")
|
21
|
-
|
22
|
-
@idx1 = @il.add(Wx::Bitmap.new(bmp_file))
|
23
|
-
set_image_list(@il, Wx::IMAGE_LIST_SMALL)
|
24
|
-
|
25
|
-
insert_column(0,"First")
|
26
|
-
insert_column(1,"Second")
|
27
|
-
insert_column(2,"Third")
|
28
|
-
set_column_width(0,175)
|
29
|
-
set_column_width(1,175)
|
30
|
-
set_column_width(2,175)
|
31
|
-
|
32
|
-
set_item_count(1000000)
|
33
|
-
|
34
|
-
@attr1 = Wx::ListItemAttr.new()
|
35
|
-
@attr1.set_background_colour(Wx::Colour.new("YELLOW"))
|
36
|
-
|
37
|
-
@attr2 = Wx::ListItemAttr.new()
|
38
|
-
@attr2.set_background_colour(Wx::Colour.new("LIGHT BLUE"))
|
39
|
-
|
40
|
-
evt_list_item_selected(get_id()) {|event| on_item_selected(event)}
|
41
|
-
evt_list_item_activated(get_id()) {|event| on_item_activated(event)}
|
42
|
-
evt_list_item_deselected(get_id()) {|event| on_item_deselected(event)}
|
43
|
-
end
|
44
|
-
|
45
|
-
def on_item_selected(event)
|
46
|
-
@currentItem = event.get_index()
|
47
|
-
@item = event.get_item()
|
48
|
-
get_column(1,@item)
|
49
|
-
|
50
|
-
@log.write_text('on_item_selected: "%s", "%s", "%s", "%s"' % [@currentItem, get_item_text(@currentItem),
|
51
|
-
@item.get_text(), get_column(2,@item) ? @item.get_text() : nil])
|
52
|
-
end
|
53
|
-
|
54
|
-
def on_item_activated(event)
|
55
|
-
@currentItem = event.get_index()
|
56
|
-
@log.write_text("on_item_activated: %s\nTopItem: %s" % [get_item_text(@currentItem), get_top_item()])
|
57
|
-
end
|
58
|
-
|
59
|
-
def on_item_deselected(event)
|
60
|
-
@log.write_text("on_item_deselected: %s" % event.get_index())
|
61
|
-
end
|
62
|
-
|
63
|
-
# These three following methods are callbacks for implementing the
|
64
|
-
# "virtualness" of the list; they *must* be defined by any ListCtrl
|
65
|
-
# object with the style LC_VIRTUAL.
|
66
|
-
|
67
|
-
# Normally you would determine the text, attributes and/or image
|
68
|
-
# based on values from some external data source, but for this demo
|
69
|
-
# we'll just calculate them based on order.
|
70
|
-
def on_get_item_text(item, col)
|
71
|
-
return "Item %d, column %d" % [item,col]
|
72
|
-
end
|
73
|
-
|
74
|
-
def on_get_item_column_image(item, col)
|
75
|
-
if item % 4 == 0
|
76
|
-
return @idx1
|
77
|
-
else
|
78
|
-
return -1
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def on_get_item_attr(item)
|
83
|
-
if item % 3 == 1
|
84
|
-
return @attr1
|
85
|
-
elsif item % 3 == 2
|
86
|
-
return @attr2
|
87
|
-
else
|
88
|
-
return nil
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
module Demo
|
94
|
-
def Demo.run(frame, nb, log)
|
95
|
-
win = TestVirtualList.new(nb,log)
|
96
|
-
return win
|
97
|
-
end
|
98
|
-
|
99
|
-
def Demo.overview
|
100
|
-
return "A special case of report view quite different from the other modes of the list control is a virtual control in which the items data (including text, images and attributes) is managed by the main program and is requested by the control itself only when needed which allows to have controls with millions of items without consuming much memory. To use virtual list control you must use SetItemCount first and overload at least OnGetItemText (and optionally OnGetItemImage and OnGetItemAttr) to return the information about the items when the control requests it."
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
if __FILE__ == $0
|
106
|
-
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
107
|
-
load run_solo_lib
|
108
|
-
run File.basename($0)
|
109
|
-
end
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestVirtualList < Wx::ListCtrl
|
15
|
+
def initialize(parent, log)
|
16
|
+
super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::LC_REPORT | Wx::LC_VIRTUAL | Wx::LC_HRULES | Wx::LC_VRULES)
|
17
|
+
@log = log
|
18
|
+
|
19
|
+
@il = Wx::ImageList.new(16,16)
|
20
|
+
bmp_file = File.join(File.dirname(__FILE__), "icons/wxwin16x16.xpm")
|
21
|
+
|
22
|
+
@idx1 = @il.add(Wx::Bitmap.new(bmp_file))
|
23
|
+
set_image_list(@il, Wx::IMAGE_LIST_SMALL)
|
24
|
+
|
25
|
+
insert_column(0,"First")
|
26
|
+
insert_column(1,"Second")
|
27
|
+
insert_column(2,"Third")
|
28
|
+
set_column_width(0,175)
|
29
|
+
set_column_width(1,175)
|
30
|
+
set_column_width(2,175)
|
31
|
+
|
32
|
+
set_item_count(1000000)
|
33
|
+
|
34
|
+
@attr1 = Wx::ListItemAttr.new()
|
35
|
+
@attr1.set_background_colour(Wx::Colour.new("YELLOW"))
|
36
|
+
|
37
|
+
@attr2 = Wx::ListItemAttr.new()
|
38
|
+
@attr2.set_background_colour(Wx::Colour.new("LIGHT BLUE"))
|
39
|
+
|
40
|
+
evt_list_item_selected(get_id()) {|event| on_item_selected(event)}
|
41
|
+
evt_list_item_activated(get_id()) {|event| on_item_activated(event)}
|
42
|
+
evt_list_item_deselected(get_id()) {|event| on_item_deselected(event)}
|
43
|
+
end
|
44
|
+
|
45
|
+
def on_item_selected(event)
|
46
|
+
@currentItem = event.get_index()
|
47
|
+
@item = event.get_item()
|
48
|
+
get_column(1,@item)
|
49
|
+
|
50
|
+
@log.write_text('on_item_selected: "%s", "%s", "%s", "%s"' % [@currentItem, get_item_text(@currentItem),
|
51
|
+
@item.get_text(), get_column(2,@item) ? @item.get_text() : nil])
|
52
|
+
end
|
53
|
+
|
54
|
+
def on_item_activated(event)
|
55
|
+
@currentItem = event.get_index()
|
56
|
+
@log.write_text("on_item_activated: %s\nTopItem: %s" % [get_item_text(@currentItem), get_top_item()])
|
57
|
+
end
|
58
|
+
|
59
|
+
def on_item_deselected(event)
|
60
|
+
@log.write_text("on_item_deselected: %s" % event.get_index())
|
61
|
+
end
|
62
|
+
|
63
|
+
# These three following methods are callbacks for implementing the
|
64
|
+
# "virtualness" of the list; they *must* be defined by any ListCtrl
|
65
|
+
# object with the style LC_VIRTUAL.
|
66
|
+
|
67
|
+
# Normally you would determine the text, attributes and/or image
|
68
|
+
# based on values from some external data source, but for this demo
|
69
|
+
# we'll just calculate them based on order.
|
70
|
+
def on_get_item_text(item, col)
|
71
|
+
return "Item %d, column %d" % [item,col]
|
72
|
+
end
|
73
|
+
|
74
|
+
def on_get_item_column_image(item, col)
|
75
|
+
if item % 4 == 0
|
76
|
+
return @idx1
|
77
|
+
else
|
78
|
+
return -1
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def on_get_item_attr(item)
|
83
|
+
if item % 3 == 1
|
84
|
+
return @attr1
|
85
|
+
elsif item % 3 == 2
|
86
|
+
return @attr2
|
87
|
+
else
|
88
|
+
return nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
module Demo
|
94
|
+
def Demo.run(frame, nb, log)
|
95
|
+
win = TestVirtualList.new(nb,log)
|
96
|
+
return win
|
97
|
+
end
|
98
|
+
|
99
|
+
def Demo.overview
|
100
|
+
return "A special case of report view quite different from the other modes of the list control is a virtual control in which the items data (including text, images and attributes) is managed by the main program and is requested by the control itself only when needed which allows to have controls with millions of items without consuming much memory. To use virtual list control you must use SetItemCount first and overload at least OnGetItemText (and optionally OnGetItemImage and OnGetItemAttr) to return the information about the items when the control requests it."
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
if __FILE__ == $0
|
106
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
107
|
+
load run_solo_lib
|
108
|
+
run File.basename($0)
|
109
|
+
end
|
@@ -1,52 +1,52 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'wx'
|
5
|
-
rescue LoadError => no_wx_err
|
6
|
-
begin
|
7
|
-
require 'rubygems'
|
8
|
-
require 'wx'
|
9
|
-
rescue LoadError
|
10
|
-
raise no_wx_err
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class TestPanel < Wx::Panel
|
15
|
-
def initialize(parent, log)
|
16
|
-
@log = log
|
17
|
-
super(parent, -1)
|
18
|
-
|
19
|
-
b1 = Wx::Button.new(self, -1, "MDI demo")
|
20
|
-
evt_button(b1.get_id()) {|event| show_mdi_demo(event)}
|
21
|
-
|
22
|
-
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
23
|
-
box.add(20,30)
|
24
|
-
box.add(b1, 0, Wx::ALIGN_CENTER | Wx::ALL, 15)
|
25
|
-
set_sizer(box)
|
26
|
-
end
|
27
|
-
|
28
|
-
def show_mdi_demo(event)
|
29
|
-
mdi_demo_file = File.join( File.dirname(__FILE__), "MDIDemo.rbw")
|
30
|
-
load mdi_demo_file
|
31
|
-
frame = Demo::MyParentFrame.new()
|
32
|
-
frame.show()
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
module Demo
|
37
|
-
def Demo.run(frame,nb,log)
|
38
|
-
win = TestPanel.new(nb, log)
|
39
|
-
return win
|
40
|
-
end
|
41
|
-
|
42
|
-
def Demo.overview
|
43
|
-
"An MDI (Multiple Document Interface) parent frame is a window which can contain MDI child frames in its own 'desktop'. It is a convenient way to avoid window clutter, and is used in many popular Windows applications, such as Microsoft Word(TM)."
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
if __FILE__ == $0
|
49
|
-
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
50
|
-
load run_solo_lib
|
51
|
-
run File.basename($0)
|
52
|
-
end
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'wx'
|
5
|
+
rescue LoadError => no_wx_err
|
6
|
+
begin
|
7
|
+
require 'rubygems'
|
8
|
+
require 'wx'
|
9
|
+
rescue LoadError
|
10
|
+
raise no_wx_err
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestPanel < Wx::Panel
|
15
|
+
def initialize(parent, log)
|
16
|
+
@log = log
|
17
|
+
super(parent, -1)
|
18
|
+
|
19
|
+
b1 = Wx::Button.new(self, -1, "MDI demo")
|
20
|
+
evt_button(b1.get_id()) {|event| show_mdi_demo(event)}
|
21
|
+
|
22
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
23
|
+
box.add(20,30)
|
24
|
+
box.add(b1, 0, Wx::ALIGN_CENTER | Wx::ALL, 15)
|
25
|
+
set_sizer(box)
|
26
|
+
end
|
27
|
+
|
28
|
+
def show_mdi_demo(event)
|
29
|
+
mdi_demo_file = File.join( File.dirname(__FILE__), "MDIDemo.rbw")
|
30
|
+
load mdi_demo_file
|
31
|
+
frame = Demo::MyParentFrame.new()
|
32
|
+
frame.show()
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module Demo
|
37
|
+
def Demo.run(frame,nb,log)
|
38
|
+
win = TestPanel.new(nb, log)
|
39
|
+
return win
|
40
|
+
end
|
41
|
+
|
42
|
+
def Demo.overview
|
43
|
+
"An MDI (Multiple Document Interface) parent frame is a window which can contain MDI child frames in its own 'desktop'. It is a convenient way to avoid window clutter, and is used in many popular Windows applications, such as Microsoft Word(TM)."
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
if __FILE__ == $0
|
49
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
50
|
+
load run_solo_lib
|
51
|
+
run File.basename($0)
|
52
|
+
end
|