rwdschedule 0.5
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/Readme.txt +57 -0
- data/bin/rwdschedule +19 -0
- data/code/ag1core/aa0begin.rb +18 -0
- data/code/ag1core/rwdtinkerversion.rb +15 -0
- data/code/al5languagefiles/alanguagehashbegin.rb +4 -0
- data/code/al5languagefiles/languagehash.rb +4 -0
- data/code/al5languagefiles/templangfile.rb +6 -0
- data/code/al5languagefiles/zlanguagehashend.rb +6 -0
- data/code/gg0schedules/deleteeventrecord.rb +19 -0
- data/code/gg0schedules/gg0viewevent.rb +20 -0
- data/code/gg0schedules/gg9saveeventchanges.rb +18 -0
- data/code/gg0schedules/gh5listdaterecords.rb +19 -0
- data/code/gg0schedules/gl7clearscreendisplay.rb +15 -0
- data/code/gg0schedules/gm3deletecontactrecord.rb +24 -0
- data/code/gg0schedules/loadeventrecord.rb +30 -0
- data/code/gg0schedules/renameeventdata.rb +14 -0
- data/code/gg0schedules/rwdaddresseshelpabout.rb +14 -0
- data/code/gg0schedules/rwdschedulehelpabout.rb +14 -0
- data/code/gh9calendar/gh9calendar.rb +16 -0
- data/code/lm1installapplets/ll5listzips.rb +14 -0
- data/code/lm1installapplets/lm1installapplet.rb +20 -0
- data/code/ssdiagnostictab/diagnostictab.rb +20 -0
- data/code/xa5rwdtinkercallable/callable.rb +13 -0
- data/code/xb1rwdtinkerbackwindow/05listinstalledfiles.rb +11 -0
- data/code/xb1rwdtinkerbackwindow/diagnostictab.rb +20 -0
- data/code/xb1rwdtinkerbackwindow/ll1openname.rb +18 -0
- data/code/xb1rwdtinkerbackwindow/ll5listzips.rb +14 -0
- data/code/xb1rwdtinkerbackwindow/lm1installapplet.rb +20 -0
- data/code/xb1rwdtinkerbackwindow/mm1removeapplet.rb +28 -0
- data/code/xb1rwdtinkerbackwindow/rwdtinkerwin2version.rb +14 -0
- data/code/zz0applicationend/zz0end.rb +4 -0
- data/configuration/aa0rwdframework.cnf +11 -0
- data/configuration/ab1tinkerwin2.cnf +3 -0
- data/configuration/gg1rwdschedule.cnf +3 -0
- data/configuration/gh1rwdcalendar.cnf +27 -0
- data/ev/browser.rb +109 -0
- data/ev/ftools.rb +170 -0
- data/ev/net.rb +750 -0
- data/ev/ruby.rb +819 -0
- data/ev/rwd.rb +1848 -0
- data/ev/sgml.rb +236 -0
- data/ev/thread.rb +63 -0
- data/ev/tree.rb +343 -0
- data/ev/xml.rb +4 -0
- data/extras/cal.rb +166 -0
- data/gui/en/aa2core/aa0rwdtop.rwd +3 -0
- data/gui/en/gg0schedules/gg0viewevent.rwd +27 -0
- data/gui/en/gg0schedules/gl6editrecord.rwd +34 -0
- data/gui/en/gg0schedules/gl8contactutilities.rwd +23 -0
- data/gui/en/hl9calendar/hl9calendar.rwd +18 -0
- data/gui/en/ll1selectiontabbegin/selectiontabbegin.rwd +15 -0
- data/gui/en/ll5rwdtinkerwin2selectiontab/rwdwin2selectiontab.rwd +11 -0
- data/gui/en/lz1selectiontabend/endselectiontab.rwd +1 -0
- data/gui/en/tt0documentsbegin/tt0documentbegin.rwd +5 -0
- data/gui/en/uu5rwddocuments/uu5documents.rwd +13 -0
- data/gui/en/uu6rwdtinkerwin2documents/uu5documents.rwd +4 -0
- data/gui/en/uu8schedule/uu8doc_rwdschedule.rwd +4 -0
- data/gui/en/ww0documentsend/ww0documentend.rwd +6 -0
- data/gui/en/wz6finaltabs/xx0rwdfirsttab.rwd +4 -0
- data/gui/en/xa1versionwindow/1appname.rwd +17 -0
- data/gui/en/xa5rwdtinkercallablewindow/1appname.rwd +15 -0
- data/gui/en/xa5rwdtinkercallablewindow/9end.rwd +4 -0
- data/gui/en/xb1rwdtinkerbackwindow/1appname.rwd +3 -0
- data/gui/en/xb1rwdtinkerbackwindow/2tab1.rwd +9 -0
- data/gui/en/xb1rwdtinkerbackwindow/3arwddiagnostics.rwd +31 -0
- data/gui/en/xb1rwdtinkerbackwindow/4arwdlistapplets.rwd +42 -0
- data/gui/en/xb1rwdtinkerbackwindow/4arwdlistzips.rwd +33 -0
- data/gui/en/xb1rwdtinkerbackwindow/9backend.rwd +5 -0
- data/gui/en/ya1helpaboutbegin/ya0helpscreenstart.rwd +1 -0
- data/gui/en/yg5rwdhelpabout/1appname.rwd +2 -0
- data/gui/en/yg5rwdhelpabout/3copyright.rwd +1 -0
- data/gui/en/yg5rwdhelpabout/5version.rwd +9 -0
- data/gui/en/yg6rwdwin2helpabout/1appname.rwd +2 -0
- data/gui/en/yg6rwdwin2helpabout/3copyright.rwd +1 -0
- data/gui/en/yg6rwdwin2helpabout/5version.rwd +9 -0
- data/gui/en/yh1helpschedule/1rwdschedule.rwd +4 -0
- data/gui/en/yh1helpschedule/5version.rwd +8 -0
- data/gui/en/za1applicationend/yy9rwdend.rwd +2 -0
- data/gui/es/aa2core/aa0rwdtop.rwd +3 -0
- data/gui/es/gg0schedules/gg0viewevent.rwd +27 -0
- data/gui/es/gg0schedules/gl6editrecord.rwd +34 -0
- data/gui/es/gg0schedules/gl8contactutilities.rwd +23 -0
- data/gui/es/hl9calendar/hl9calendar.rwd +18 -0
- data/gui/es/ll1selectiontabbegin/selectiontabbegin.rwd +15 -0
- data/gui/es/ll5rwdtinkerwin2selectiontab/rwdwin2selectiontab.rwd +11 -0
- data/gui/es/lz1selectiontabend/endselectiontab.rwd +1 -0
- data/gui/es/tt0documentsbegin/tt0documentbegin.rwd +5 -0
- data/gui/es/uu5rwddocuments/uu5documents.rwd +13 -0
- data/gui/es/uu6rwdtinkerwin2documents/uu5documents.rwd +4 -0
- data/gui/es/uu8schedule/uu8doc_rwdschedule.rwd +4 -0
- data/gui/es/ww0documentsend/ww0documentend.rwd +6 -0
- data/gui/es/wz6finaltabs/xx0rwdfirsttab.rwd +4 -0
- data/gui/es/xa1versionwindow/1appname.rwd +17 -0
- data/gui/es/xa5rwdtinkercallablewindow/1appname.rwd +15 -0
- data/gui/es/xa5rwdtinkercallablewindow/9end.rwd +4 -0
- data/gui/es/xb1rwdtinkerbackwindow/1appname.rwd +3 -0
- data/gui/es/xb1rwdtinkerbackwindow/2tab1.rwd +9 -0
- data/gui/es/xb1rwdtinkerbackwindow/3arwddiagnostics.rwd +31 -0
- data/gui/es/xb1rwdtinkerbackwindow/4arwdlistapplets.rwd +42 -0
- data/gui/es/xb1rwdtinkerbackwindow/4arwdlistzips.rwd +33 -0
- data/gui/es/xb1rwdtinkerbackwindow/9backend.rwd +5 -0
- data/gui/es/ya1helpaboutbegin/ya0helpscreenstart.rwd +1 -0
- data/gui/es/yg5rwdhelpabout/1appname.rwd +2 -0
- data/gui/es/yg5rwdhelpabout/3copyright.rwd +1 -0
- data/gui/es/yg5rwdhelpabout/5version.rwd +9 -0
- data/gui/es/yg6rwdwin2helpabout/1appname.rwd +2 -0
- data/gui/es/yg6rwdwin2helpabout/3copyright.rwd +1 -0
- data/gui/es/yg6rwdwin2helpabout/5version.rwd +9 -0
- data/gui/es/yh1helpschedule/1rwdschedule.rwd +4 -0
- data/gui/es/yh1helpschedule/5version.rwd +8 -0
- data/gui/es/za1applicationend/yy9rwdend.rwd +2 -0
- data/gui/nl/aa2core/aa0rwdtop.rwd +3 -0
- data/gui/nl/gg0schedules/gg0viewevent.rwd +27 -0
- data/gui/nl/gg0schedules/gl6editrecord.rwd +34 -0
- data/gui/nl/gg0schedules/gl8contactutilities.rwd +23 -0
- data/gui/nl/hl9calendar/hl9calendar.rwd +18 -0
- data/gui/nl/ll1selectiontabbegin/selectiontabbegin.rwd +15 -0
- data/gui/nl/ll5rwdtinkerwin2selectiontab/rwdwin2selectiontab.rwd +11 -0
- data/gui/nl/lz1selectiontabend/endselectiontab.rwd +1 -0
- data/gui/nl/tt0documentsbegin/tt0documentbegin.rwd +5 -0
- data/gui/nl/uu5rwddocuments/uu5documents.rwd +13 -0
- data/gui/nl/uu6rwdtinkerwin2documents/uu5documents.rwd +4 -0
- data/gui/nl/uu8schedule/uu8doc_rwdschedule.rwd +4 -0
- data/gui/nl/ww0documentsend/ww0documentend.rwd +6 -0
- data/gui/nl/wz6finaltabs/xx0rwdfirsttab.rwd +4 -0
- data/gui/nl/xa1versionwindow/1appname.rwd +17 -0
- data/gui/nl/xa5rwdtinkercallablewindow/1appname.rwd +15 -0
- data/gui/nl/xa5rwdtinkercallablewindow/9end.rwd +4 -0
- data/gui/nl/xb1rwdtinkerbackwindow/1appname.rwd +3 -0
- data/gui/nl/xb1rwdtinkerbackwindow/2tab1.rwd +9 -0
- data/gui/nl/xb1rwdtinkerbackwindow/3arwddiagnostics.rwd +31 -0
- data/gui/nl/xb1rwdtinkerbackwindow/4arwdlistapplets.rwd +42 -0
- data/gui/nl/xb1rwdtinkerbackwindow/4arwdlistzips.rwd +33 -0
- data/gui/nl/xb1rwdtinkerbackwindow/9backend.rwd +5 -0
- data/gui/nl/ya1helpaboutbegin/ya0helpscreenstart.rwd +1 -0
- data/gui/nl/yg5rwdhelpabout/1appname.rwd +2 -0
- data/gui/nl/yg5rwdhelpabout/3copyright.rwd +1 -0
- data/gui/nl/yg5rwdhelpabout/5version.rwd +9 -0
- data/gui/nl/yg6rwdwin2helpabout/1appname.rwd +2 -0
- data/gui/nl/yg6rwdwin2helpabout/3copyright.rwd +1 -0
- data/gui/nl/yg6rwdwin2helpabout/5version.rwd +9 -0
- data/gui/nl/yh1helpschedule/1rwdschedule.rwd +4 -0
- data/gui/nl/yh1helpschedule/5version.rwd +8 -0
- data/gui/nl/za1applicationend/yy9rwdend.rwd +2 -0
- data/init.rb +164 -0
- data/installed/rwdcalendar-0.4.inf +6 -0
- data/installed/rwdschedule-0.5.inf +7 -0
- data/installed/rwdtinkerwin2-0.5.inf +16 -0
- data/installed/schedulesampledata1.inf +3 -0
- data/lang/en/rwdcore/languagefile.rb +6 -0
- data/lang/es/rwdcore/languagefile.rb +4 -0
- data/lang/nl/rwdcore/languagefile.rb +4 -0
- data/lib/temp.rb +1 -0
- data/rwd_files/HowTo_Schedule.txt +88 -0
- data/rwd_files/HowTo_Tinker.html +370 -0
- data/rwd_files/HowTo_Tinker.txt +244 -0
- data/rwd_files/HowTo_TinkerWin2.txt +202 -0
- data/rwd_files/Readme.txt +57 -0
- data/rwd_files/favicon.ico +0 -0
- data/rwd_files/rdoc-style.css +175 -0
- data/rwd_files/rwdapplications.html +54 -0
- data/rwd_files/rwdindex.html +6 -0
- data/schedules/200501january23CharlotteB-Day.sch +8 -0
- data/schedules/200501january24jazzfuller.sch +8 -0
- data/tests/totranslate.lang +93 -0
- data/zips/rwdaviewphoto-0.3.zip +0 -0
- data/zips/rwdhelloworld-0.2.zip +0 -0
- data/zips/rwdrefreshacpi-0.1.zip +0 -0
- data/zips/rwdwtinkerwin2-0.5.zip +0 -0
- metadata +210 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# this code is to list the applets that are installed
|
|
2
|
+
def listinstalledfiles
|
|
3
|
+
fileList = Dir.new("installed").entries.sort.reverse.delete_if { |x| ! (x =~ /inf$/) }
|
|
4
|
+
@filesresult = fileList.rwd_method("fillappletname")
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def fillappletname(inffile)
|
|
8
|
+
applet = inffile.gsub(/\.inf$/, "")
|
|
9
|
+
@a_installlist = applet
|
|
10
|
+
@a_removeapplet = applet
|
|
11
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
|
2
|
+
# This application is a framework for writing programs from RubyWebDialogs
|
|
3
|
+
# http://www.erikveen.dds.nl/rubywebdialogs/index.html
|
|
4
|
+
# For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
|
|
5
|
+
|
|
6
|
+
# return the Ruby constant
|
|
7
|
+
def runrubyversion
|
|
8
|
+
@rubyversion = "Version " + VERSION
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# return the platform constan
|
|
12
|
+
def runviewplatform
|
|
13
|
+
@platformdisplay = "Platform is " + RUBY_PLATFORM
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# return Rwdtinker version to diagnostic tab
|
|
17
|
+
def rwdtinkerversiondiagnostic
|
|
18
|
+
@rwdtinkerversionreturn = "rwdtinker version " + RwdTinkerVersion
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
def openname
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
nametext = "%s" % [@a_installlist]
|
|
4
|
+
|
|
5
|
+
begin # exception trapped block
|
|
6
|
+
fileName = "installed/" + nametext + ".inf"
|
|
7
|
+
|
|
8
|
+
fd = File.open(fileName,"r")
|
|
9
|
+
@displaytext = " "
|
|
10
|
+
while ! fd.eof?
|
|
11
|
+
@displaytext = fd.read
|
|
12
|
+
end
|
|
13
|
+
fd.close
|
|
14
|
+
rescue
|
|
15
|
+
@displaytext = "\n" + "error"
|
|
16
|
+
end # exception rescue
|
|
17
|
+
|
|
18
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# this code is to list the zipped applets that can be installed
|
|
2
|
+
def listzipfilestoinstall
|
|
3
|
+
fileList = Dir.new("zips").entries.sort.reverse.delete_if { |x| ! (x =~ /zip$/) }
|
|
4
|
+
@zipslistresult = fileList.rwd_method("fillziptoinstallname")
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def fillziptoinstallname(inffile)
|
|
8
|
+
applet = inffile.gsub(/\.zip$/, "")
|
|
9
|
+
@a_installapplet = applet
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
def installapplet
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
nametext = "%s" % [@a_installapplet]
|
|
4
|
+
|
|
5
|
+
begin # exception trapped block
|
|
6
|
+
fileName = "zips/" + nametext + ".zip"
|
|
7
|
+
|
|
8
|
+
commandline = "unzip -o " + fileName
|
|
9
|
+
system( commandline+' > temp.output' )
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
system(commandline)
|
|
14
|
+
@installapplettext = Message[:applet_installed]
|
|
15
|
+
|
|
16
|
+
rescue
|
|
17
|
+
@installapplettext = "Done! - Check applet list - restart rwd to activate the new applet"
|
|
18
|
+
end # exception rescue
|
|
19
|
+
|
|
20
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
def removeapplet
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
nametext = "%s" % [@a_removeapplet]
|
|
4
|
+
|
|
5
|
+
begin # exception trapped block
|
|
6
|
+
fileName = "installed/" + nametext + ".inf"
|
|
7
|
+
count = 0
|
|
8
|
+
fd = File.open(fileName,"r")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
fd.each { |oneline|
|
|
12
|
+
if count == 1
|
|
13
|
+
commandline = "rm -r " + oneline
|
|
14
|
+
system( commandline+' > temp.output' )
|
|
15
|
+
end
|
|
16
|
+
count = 1
|
|
17
|
+
}
|
|
18
|
+
fd.close
|
|
19
|
+
commandline = "rm " + fileName
|
|
20
|
+
|
|
21
|
+
system(commandline)
|
|
22
|
+
@removeapplettext = "applet files removed! - restart rwd to finish uninstalling"
|
|
23
|
+
|
|
24
|
+
rescue
|
|
25
|
+
@removeapplettext = "\n" + "error"
|
|
26
|
+
end # exception rescue
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
|
2
|
+
# This application is a framework for writing programs from RubyWebDialogs
|
|
3
|
+
# http://www.erikveen.dds.nl/rubywebdialogs/index.html
|
|
4
|
+
# For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
|
|
5
|
+
|
|
6
|
+
# return the version constant defined in the config file
|
|
7
|
+
def runrwdtinkerwin2version
|
|
8
|
+
@rwd_window = "applicationversion"
|
|
9
|
+
@versionappnamedisplay = "RwdTinkerWin2"
|
|
10
|
+
@versioncopyrightdisplay = "(c) 2004 Steven Gibson "
|
|
11
|
+
@versionnumberdisplay = "Version " + RwdTinkerWin2Version
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
RwdTinkerVersion = "1.23"
|
|
2
|
+
CodeName = "rwdtinker"
|
|
3
|
+
CodeNameFile = CodeName + ".rb"
|
|
4
|
+
RWDFile = "rwdtinker.rwd"
|
|
5
|
+
$lang = "en"
|
|
6
|
+
@@codedir = "code"
|
|
7
|
+
@@guidir = "gui" + "/" + $lang
|
|
8
|
+
@@langdir = "lang"
|
|
9
|
+
|
|
10
|
+
TempLangHashFile = @@codedir + "/" + "al5languagefiles" + "/" + "templangfile.rb"
|
|
11
|
+
$port = 7705
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
$extras_directory = "extras"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class LanguageTextrwdcalendar
|
|
6
|
+
|
|
7
|
+
def locale(languagecode,wordtotranslate)
|
|
8
|
+
|
|
9
|
+
case languagecode
|
|
10
|
+
|
|
11
|
+
when "en"
|
|
12
|
+
case wordtotranslate
|
|
13
|
+
when "year"
|
|
14
|
+
return "year"
|
|
15
|
+
when "month"
|
|
16
|
+
return "month"
|
|
17
|
+
end
|
|
18
|
+
when "nl"
|
|
19
|
+
case wordtotranslate
|
|
20
|
+
when "year"
|
|
21
|
+
return "jaar"
|
|
22
|
+
when "month"
|
|
23
|
+
return "maand"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/ev/browser.rb
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
require "ev/ruby"
|
|
2
|
+
require "ev/net"
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require "win32ole"
|
|
6
|
+
require "win32/registry"
|
|
7
|
+
rescue LoadError
|
|
8
|
+
$".push "win32ole.so"
|
|
9
|
+
$".push "win32/registry.rb"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def windowsbrowser
|
|
13
|
+
$stderr.puts "Looking for default browser..."
|
|
14
|
+
|
|
15
|
+
filetype = "htmlfile"
|
|
16
|
+
application = nil
|
|
17
|
+
|
|
18
|
+
begin
|
|
19
|
+
Win32::Registry::HKEY_CLASSES_ROOT.open('.html') do |reg|
|
|
20
|
+
filetype = reg[""]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Win32::Registry::HKEY_CLASSES_ROOT.open(filetype + '\shell\open\command') do |reg|
|
|
24
|
+
application = reg[""]
|
|
25
|
+
end
|
|
26
|
+
rescue NameError
|
|
27
|
+
$stderr.puts "Only available for Windows."
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
application
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def linuxbrowser
|
|
34
|
+
application = ""
|
|
35
|
+
|
|
36
|
+
application = `which galeon 2> /dev/null`.chomp if application.empty?
|
|
37
|
+
application = `which mozilla 2> /dev/null`.chomp if application.empty?
|
|
38
|
+
application = `which firefox 2> /dev/null`.chomp if application.empty?
|
|
39
|
+
application = `which opera 2> /dev/null`.chomp if application.empty?
|
|
40
|
+
application = `which konqueror 2> /dev/null`.chomp if application.empty?
|
|
41
|
+
application = `which htmlview 2> /dev/null`.chomp if application.empty?
|
|
42
|
+
application = nil if application.empty?
|
|
43
|
+
|
|
44
|
+
application
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def defaultbrowser
|
|
48
|
+
res = nil
|
|
49
|
+
res = windowsbrowser if windows?
|
|
50
|
+
res = linuxbrowser if linux?
|
|
51
|
+
res
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def showinbrowser(html, browser=defaultbrowser)
|
|
55
|
+
port, io = TCPServer.freeport(7701, 7709)
|
|
56
|
+
|
|
57
|
+
unless browser.nil?
|
|
58
|
+
Thread.new do
|
|
59
|
+
begin
|
|
60
|
+
#command = "1234 \"http://localhost:#{port}\"" if linux?
|
|
61
|
+
#command = "L:/prog/MozillaFirefox/firefox.exe \"http://localhost:#{port}\"" if cygwin?
|
|
62
|
+
#command = Win32::Registry::HKEY_CLASSES_ROOT.open('htmlfile\shell\open\command')[0] + " \"http://localhost:#{port}/\"" if windows?
|
|
63
|
+
|
|
64
|
+
command = "#{browser} \"http://localhost:#{port}\""
|
|
65
|
+
|
|
66
|
+
Thread.pass
|
|
67
|
+
|
|
68
|
+
system(command)
|
|
69
|
+
rescue
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
HTTPServer.serve([port, io]) do |req, resp|
|
|
75
|
+
resp << html
|
|
76
|
+
|
|
77
|
+
resp.stop
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def tab2html(tab)
|
|
82
|
+
res = ""
|
|
83
|
+
|
|
84
|
+
tab = tab.to_html(false)
|
|
85
|
+
|
|
86
|
+
res << "<html>\n"
|
|
87
|
+
res << "<body>\n"
|
|
88
|
+
res << "<table align='center' border='1' cellspacing='0' cellpadding='3'>\n"
|
|
89
|
+
res << "<tbody>\n"
|
|
90
|
+
|
|
91
|
+
tab.split(/\r*\n/).each do |line|
|
|
92
|
+
res << "<tr>\n"
|
|
93
|
+
|
|
94
|
+
line.split(/\t/, -1).each do |veld|
|
|
95
|
+
veld = " " if veld.compress.empty?
|
|
96
|
+
|
|
97
|
+
res << "<td>%s</td>\n" % veld
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
res << "</tr>\n"
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
res << "</tbody>\n"
|
|
104
|
+
res << "</table>\n"
|
|
105
|
+
res << "</body>\n"
|
|
106
|
+
res << "</html>\n"
|
|
107
|
+
|
|
108
|
+
res
|
|
109
|
+
end
|
data/ev/ftools.rb
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
require "ftools"
|
|
2
|
+
|
|
3
|
+
class Dir
|
|
4
|
+
def self.mkdirrec(dir)
|
|
5
|
+
pdir = File.dirname(dir)
|
|
6
|
+
|
|
7
|
+
if not pdir.empty? and not File.directory?(pdir)
|
|
8
|
+
Dir.mkdirrec(pdir)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Dir.mkdir(dir) rescue nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.copy(from, to)
|
|
15
|
+
if File.directory?(from)
|
|
16
|
+
pdir = Dir.pwd
|
|
17
|
+
todir = File.expand_path(to)
|
|
18
|
+
|
|
19
|
+
mkdirrec(todir)
|
|
20
|
+
|
|
21
|
+
Dir.chdir(from)
|
|
22
|
+
Dir.new(".").each do |e|
|
|
23
|
+
Dir.copy(e, todir+"/"+e) if not [".", ".."].include?(e)
|
|
24
|
+
end
|
|
25
|
+
Dir.chdir(pdir)
|
|
26
|
+
else
|
|
27
|
+
todir = File.dirname(File.expand_path(to))
|
|
28
|
+
|
|
29
|
+
mkdirrec(todir)
|
|
30
|
+
|
|
31
|
+
File.copy(from, to)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.move(from, to)
|
|
36
|
+
Dir.copy(from, to)
|
|
37
|
+
Dir.rm_rf(from)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.rm_rf(entry)
|
|
41
|
+
if File.ftype(entry) == "directory"
|
|
42
|
+
pdir = Dir.pwd
|
|
43
|
+
|
|
44
|
+
Dir.chdir(entry)
|
|
45
|
+
Dir.new(".").each do |e|
|
|
46
|
+
Dir.rm_rf(e) if not [".", ".."].include?(e)
|
|
47
|
+
end
|
|
48
|
+
Dir.chdir(pdir)
|
|
49
|
+
|
|
50
|
+
Dir.delete(entry)
|
|
51
|
+
else
|
|
52
|
+
File.delete(entry)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def self.find(entry=nil, mask=nil)
|
|
57
|
+
entry = "." if entry.nil?
|
|
58
|
+
|
|
59
|
+
entry = entry.gsub!(/[\/\\]*$/, "") unless entry.nil?
|
|
60
|
+
|
|
61
|
+
mask = /^#{mask}$/i if mask.kind_of?(String)
|
|
62
|
+
|
|
63
|
+
res = []
|
|
64
|
+
|
|
65
|
+
if File.directory?(entry)
|
|
66
|
+
pdir = Dir.pwd
|
|
67
|
+
|
|
68
|
+
res += ["%s/" % entry] if mask.nil? or entry =~ mask
|
|
69
|
+
|
|
70
|
+
begin
|
|
71
|
+
Dir.chdir(entry)
|
|
72
|
+
|
|
73
|
+
begin
|
|
74
|
+
Dir.new(".").each do |e|
|
|
75
|
+
res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e)
|
|
76
|
+
end
|
|
77
|
+
ensure
|
|
78
|
+
Dir.chdir(pdir)
|
|
79
|
+
end
|
|
80
|
+
rescue Errno::EACCES => error
|
|
81
|
+
puts error
|
|
82
|
+
end
|
|
83
|
+
else
|
|
84
|
+
res += [entry] if mask.nil? or entry =~ mask
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
res
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class File
|
|
92
|
+
def self.rollbackup(file, mode=nil)
|
|
93
|
+
backupfile = file + ".RB.BACKUP"
|
|
94
|
+
controlfile = file + ".RB.CONTROL"
|
|
95
|
+
res = nil
|
|
96
|
+
|
|
97
|
+
File.touch(file) unless File.file?(file)
|
|
98
|
+
|
|
99
|
+
# Rollback
|
|
100
|
+
|
|
101
|
+
if File.file?(backupfile) and File.file?(controlfile)
|
|
102
|
+
$stdout.puts "Restoring #{file}..."
|
|
103
|
+
|
|
104
|
+
File.copy(backupfile, file) # Rollback from phase 3
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Reset
|
|
108
|
+
|
|
109
|
+
File.delete(backupfile) if File.file?(backupfile) # Reset from phase 2 or 3
|
|
110
|
+
File.delete(controlfile) if File.file?(controlfile) # Reset from phase 3 or 4
|
|
111
|
+
|
|
112
|
+
# Backup
|
|
113
|
+
|
|
114
|
+
File.copy(file, backupfile) # Enter phase 2
|
|
115
|
+
File.touch(controlfile) # Enter phase 3
|
|
116
|
+
|
|
117
|
+
# The real thing
|
|
118
|
+
|
|
119
|
+
if block_given?
|
|
120
|
+
if mode.nil?
|
|
121
|
+
res = yield
|
|
122
|
+
else
|
|
123
|
+
File.open(file, mode) do |f|
|
|
124
|
+
res = yield(f)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Cleanup
|
|
130
|
+
|
|
131
|
+
File.delete(backupfile) # Enter phase 4
|
|
132
|
+
File.delete(controlfile) # Enter phase 5
|
|
133
|
+
|
|
134
|
+
# Return, like File.open
|
|
135
|
+
|
|
136
|
+
res = File.open(file, (mode or "r")) unless block_given?
|
|
137
|
+
|
|
138
|
+
res
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def self.touch(file)
|
|
142
|
+
File.open(file, "a"){|f|}
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def self.which(file)
|
|
146
|
+
res = nil
|
|
147
|
+
|
|
148
|
+
if windows?
|
|
149
|
+
file = file.gsub(/\.exe$/i, "") + ".exe"
|
|
150
|
+
sep = ";"
|
|
151
|
+
else
|
|
152
|
+
sep = ":"
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
catch :stop do
|
|
156
|
+
ENV["PATH"].split(/#{sep}/).reverse.each do |d|
|
|
157
|
+
if File.directory?(d)
|
|
158
|
+
Dir.new(d).each do |e|
|
|
159
|
+
if e.downcase == file.downcase
|
|
160
|
+
res = File.expand_path(e, d)
|
|
161
|
+
throw :stop
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
res
|
|
169
|
+
end
|
|
170
|
+
end
|