rwdaddresses 1.01 → 1.02

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/Readme.txt +5 -0
  2. data/code/01rwdcore/01rwdcore.rb +15 -13
  3. data/code/01rwdcore/openhelpwindow.rb +26 -26
  4. data/code/01rwdcore/returntomain.rb +8 -8
  5. data/code/01rwdcore/rwdtinkerversion.rb +12 -13
  6. data/code/01rwdcore/rwdwindowreturn.rb +3 -5
  7. data/code/01rwdcore/test_cases.rb +115 -0
  8. data/code/01rwdcore/test_harness.rb +12 -0
  9. data/code/01rwdcore/uploadreturns.rb +60 -59
  10. data/code/superant.com.rwdaddresses/attachtmpcontactphoto.rb +23 -23
  11. data/code/superant.com.rwdaddresses/clearscreendisplay.rb +14 -15
  12. data/code/superant.com.rwdaddresses/createnewnamerecord.rb +19 -18
  13. data/code/superant.com.rwdaddresses/deletecontactrecord.rb +22 -21
  14. data/code/superant.com.rwdaddresses/deleterwdaddressesupdatefiles.rb +15 -16
  15. data/code/superant.com.rwdaddresses/downloadrwdaddressfiles.rb +34 -32
  16. data/code/superant.com.rwdaddresses/listnamerecord.rb +14 -14
  17. data/code/superant.com.rwdaddresses/listvcardrecord.rb +15 -0
  18. data/code/superant.com.rwdaddresses/loadconfigurationrecord.rb +45 -44
  19. data/code/superant.com.rwdaddresses/loadconfigurationvariables.rb +14 -13
  20. data/code/superant.com.rwdaddresses/loadnamerecord.rb +29 -29
  21. data/code/superant.com.rwdaddresses/openhelpwindowrwdaddresses.rb +25 -25
  22. data/code/superant.com.rwdaddresses/renamecontact.rb +14 -15
  23. data/code/superant.com.rwdaddresses/returntomain.rb +8 -8
  24. data/code/superant.com.rwdaddresses/runaddresseswindow.rb +8 -8
  25. data/code/superant.com.rwdaddresses/runrwdaddressesmenu1.rb +31 -31
  26. data/code/superant.com.rwdaddresses/runrwdaddresssyncbackwindow.rb +8 -8
  27. data/code/superant.com.rwdaddresses/rwdaddressesbackwindow.rb +8 -8
  28. data/code/superant.com.rwdaddresses/rwdaddresseshelpabout.rb +10 -11
  29. data/code/superant.com.rwdaddresses/saveconfigurationrecord.rb +20 -20
  30. data/code/superant.com.rwdaddresses/savevcardrecord.rb +76 -0
  31. data/code/superant.com.rwdaddresses/syncrwdaddress.rb +24 -26
  32. data/code/superant.com.rwdaddresses/uploadrwdaddressfiles.rb +28 -28
  33. data/code/superant.com.rwdaddresses/viewaddressconfiguration.rb +21 -21
  34. data/code/superant.com.rwdaddresses/viewnamedata.rb +27 -26
  35. data/code/superant.com.rwdaddresses/viewphoto.rb +4 -4
  36. data/code/superant.com.rwdaddresses/viewrwdaddressesconfiguration.rb +23 -21
  37. data/code/superant.com.rwdaddresses/viewtmpcontactphoto.rb +6 -6
  38. data/code/superant.com.rwdaddresses/viewvcarddata.rb +22 -0
  39. data/code/superant.com.rwdtinkerbackwindow/controlclient.rb +89 -92
  40. data/code/superant.com.rwdtinkerbackwindow/diagnostictab.rb +15 -20
  41. data/code/superant.com.rwdtinkerbackwindow/installapplet.rb +19 -18
  42. data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +20 -19
  43. data/code/superant.com.rwdtinkerbackwindow/installremotegem.rb +19 -18
  44. data/code/superant.com.rwdtinkerbackwindow/listgemdirs.rb +7 -7
  45. data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +48 -49
  46. data/code/superant.com.rwdtinkerbackwindow/listinstalledfiles.rb +8 -7
  47. data/code/superant.com.rwdtinkerbackwindow/listzips.rb +22 -26
  48. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationrecord.rb +32 -31
  49. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationvariables.rb +14 -13
  50. data/code/superant.com.rwdtinkerbackwindow/network.rb +82 -82
  51. data/code/superant.com.rwdtinkerbackwindow/openappletname.rb +18 -17
  52. data/code/superant.com.rwdtinkerbackwindow/openhelpwindowtinkerwin2.rb +37 -37
  53. data/code/superant.com.rwdtinkerbackwindow/remotegemlist.rb +20 -20
  54. data/code/superant.com.rwdtinkerbackwindow/removeapplet.rb +33 -32
  55. data/code/superant.com.rwdtinkerbackwindow/runrwdtinkerbackwindow.rb +8 -9
  56. data/code/superant.com.rwdtinkerbackwindow/rwdtinkerwin2version.rb +10 -11
  57. data/code/superant.com.rwdtinkerbackwindow/saveconfigurationrecord.rb +19 -18
  58. data/code/superant.com.rwdtinkerbackwindow/viewappletcontents.rb +21 -20
  59. data/code/superant.com.rwdtinkerbackwindow/viewgemappletcontents.rb +23 -20
  60. data/configuration/language.dist +1 -1
  61. data/configuration/rwdaddresses.dist +2 -2
  62. data/configuration/rwdtinker.dist +2 -2
  63. data/configuration/tinkerwin2variables.dist +1 -1
  64. data/extras/vpim/date.rb +198 -0
  65. data/extras/vpim/dirinfo.rb +229 -0
  66. data/extras/vpim/enumerator.rb +29 -0
  67. data/extras/vpim/field.rb +497 -0
  68. data/extras/vpim/maker/vcard.rb +312 -0
  69. data/extras/vpim/rfc2425.rb +244 -0
  70. data/extras/vpim/rrule.rb +482 -0
  71. data/extras/vpim/time.rb +42 -0
  72. data/extras/vpim/vcard.rb +151 -0
  73. data/extras/vpim/vpim.rb +94 -0
  74. data/gui/frontwindow0/superant.com.rwdaddresses/16editrecord.rwd +5 -0
  75. data/gui/frontwindow0/superant.com.rwdaddresses/17viewvcardrecord.rwd +32 -0
  76. data/gui/helpaboutinstalled/superant.com.tinkerhelpabout/3copyright.rwd +1 -1
  77. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/70rwddiagnostics.rwd +1 -11
  78. data/init.rb +231 -228
  79. data/names/Angelina Jolie.vcf +8 -0
  80. data/rwd_files/HowTo_Addresses.txt +5 -0
  81. data/rwd_files/HowTo_Tinker.txt +14 -0
  82. data/rwdconfig.dist +6 -2
  83. data/tests/makedist.rb +36 -7
  84. metadata +23 -21
  85. data/extras/cmdline_parse +0 -47
  86. data/extras/config_file +0 -69
  87. data/extras/errorMsg +0 -19
  88. data/extras/makePlaylist +0 -34
  89. data/extras/mp3controld +0 -289
  90. data/extras/playlist +0 -186
  91. data/extras/plugins/Network +0 -237
  92. data/extras/showHelp +0 -18
  93. data/gui/frontwindowselections/superant.com.rwdaddressesselectiontab/rwdaddressessyncselectiontab.rwd +0 -12
  94. data/gui/helpaboutinstalled/superant.com.rwdwin2helpabout/1appname.rwd +0 -4
  95. data/gui/helpaboutinstalled/superant.com.rwdwin2helpabout/3copyright.rwd +0 -3
  96. data/gui/helpaboutinstalled/superant.com.rwdwin2helpabout/5version.rwd +0 -10
  97. data/installed/rwdaddressesdata2.inf +0 -8
  98. data/rwd_files/tinker.png +0 -0
@@ -0,0 +1,94 @@
1
+ =begin
2
+ $Id: vpim.rb,v 1.18 2005/02/02 03:05:58 sam Exp $
3
+
4
+ Copyright (C) 2005 Sam Roberts
5
+
6
+ This library is free software; you can redistribute it and/or modify it
7
+ under the same terms as the ruby language itself, see the file COPYING for
8
+ details.
9
+ =end
10
+
11
+ #:main:Vpim
12
+ #:title:vpim - a library to manipulate vCards and iCalendars
13
+ #
14
+ # Author:: Sam Roberts <sroberts@uniserve.com>
15
+ # Copyright:: Copyright (C) 2005 Sam Roberts
16
+ # License:: May be distributed under the same terms as Ruby
17
+ # Version:: 0.14
18
+ # Homepage:: http://vpim.rubyforge.org
19
+ #
20
+ # An implementation of the MIME Content-Type for Directory Information (RFC
21
+ # 2425), and profiles of this format. The basic RFC 2425 format is implemented
22
+ # by the DirectoryInfo class.
23
+ #
24
+ # Currently the only IETF-defined profile is vCard (RFC 2426), implemented by
25
+ # the Vcard class.
26
+ #
27
+ # iCalendar (RFC 2445) was not specified as a profile of RFC 2425, could have
28
+ # been, and is implemented by the Icalendar class.
29
+ #
30
+ # Both of these "v-formats" are for personal information management, thus the
31
+ # name "vPim".
32
+ #
33
+ # This is my first Ruby library, and I would love to have feedback on
34
+ # useability. In particular, if anybody using this library could send me
35
+ # any code showing how they call vPim, that would be very useful to me. It
36
+ # doesn't have to be complete, I would just like to see how the APIs are
37
+ # being called, to give me ideas for how to improve them.
38
+ #
39
+ # Particularly, I'm interested in examples of encoding.
40
+ #
41
+ # Sam Roberts <sroberts@uniserve.com>
42
+ #
43
+ # = Project Information
44
+ #
45
+ # The latest release can be downloaded from the Ruby Forge project page:
46
+ #
47
+ # - http://rubyforge.org/projects/vpim
48
+ #
49
+ # If you are interested in notifications about new releases, or
50
+ # asking questions about vPim, please subscribe to "vpim-talk":
51
+ #
52
+ # - http://rubyforge.org/mailman/listinfo/vpim-talk
53
+ #
54
+ # = Examples
55
+ #
56
+ # Sample utilities are provided as examples of using vPim in samples/.
57
+ #
58
+ # vCard examples are:
59
+ # - link:mutt-aliases-to-vcf.txt: convert a mutt aliases file to vCards
60
+ # - link:ex_get_vcard_photo.txt: pull photo data from a vCard
61
+ # - link:ab-query.txt: query the OS X Address Book to find vCards
62
+ # - link:vcf-to-mutt.txt: query vCards for matches, output in formats useful
63
+ # with Mutt (see link:README.mutt for details)
64
+ # - link:vcard-dump.txt: dump all the fields in a vCard
65
+ # - link:tabbed-file-to-vcf.txt: convert a tab-delimited file to vCards. This
66
+ # is a (small but) complete application contributed by Dane G. Avilla, thanks!
67
+ #
68
+ # iCalendar examples are:
69
+ # - link:ics-to-rss.txt: prints todos as RSS, or starts a WEBrick servlet
70
+ # that publishes todos as a RSS feed. Thanks to Dave Thomas for this idea,
71
+ # from http://pragprog.com/pragdave/Tech/Blog/ToDos.rdoc.
72
+ # - link:cmd-itip.txt: prints emailed iCalendar invitations in human-readable
73
+ # form, and see link:README.mutt for instruction on mutt integration. I get
74
+ # a lot of meeting invitations from Lotus Notes/Domino users at work, and
75
+ # this is pretty useful in figuring out where and when I am supposed to be.
76
+ # - link:reminder.txt: prints upcoming events and todos, by default from
77
+ # Apple's iCal calendars
78
+ # - link:rrule.txt: utility for printing recurrence rules
79
+ # - link:ical-dump.txt: utility for dumping contents of .ics files
80
+ module Vpim
81
+ VERSION = "0.14"
82
+
83
+ # Return the API version as a string.
84
+ def Vpim.version
85
+ VERSION
86
+ end
87
+ end
88
+
89
+ module Vpim
90
+ # Exception used to indicate that data being decoded is invalid, the message
91
+ # usually gives some clue as to exactly what is invalid.
92
+ class InvalidEncodingError < StandardError; end
93
+ end
94
+
@@ -27,6 +27,11 @@ $rwdguivar=
27
27
  <row> <p align=\"right\">Comment3:</p> <text size=70 name=\"a_comment3\"/> </row>
28
28
 
29
29
  </table>
30
+ <horizontal>
31
+ <button caption=\"Export vCard\" action=\"savevcardrecord\"/>
32
+
33
+
34
+ </horizontal>
30
35
  <p>%extranamedatadisplay%</p>
31
36
  <p>
32
37
  <p>%createnewnamerecorddisplay%</p>
@@ -0,0 +1,32 @@
1
+ $rwdguivar=
2
+ "
3
+ <tab name=\"Viewvcardrecord\" caption=\"View vCard Record\">
4
+
5
+ <table>
6
+ <row> <p align=\"right\">Contact Name:</p> <text name=\"a_viewvcarddata\"/> </row>
7
+
8
+ </table>
9
+
10
+ <horizontal>
11
+ <button caption=\"Open\" action=\"viewvcarddata\"/>
12
+ <button caption=\"Help\" action=\"runhelpwindowrwdaddresses\"/>
13
+
14
+ </horizontal>
15
+
16
+
17
+ <table>
18
+
19
+
20
+ <p>%viewvcarddatadisplay%</p>
21
+
22
+
23
+ </table>
24
+ <horizontal>
25
+ <button caption=\"List vCard Records\" action=\"listvcardrecordfiles\"/>
26
+ </horizontal>
27
+ <p>%%listvcardrecordfilesresult%%</p>
28
+
29
+ </tab>"
30
+
31
+
32
+
@@ -1,3 +1,3 @@
1
1
  $rwdguivar=
2
2
  "
3
- <row> <p align=\"center\">copyright s. gibson 2004</p></row>"
3
+ <row> <p align=\"center\">copyright s. gibson 2004,2005</p></row>"
@@ -1,12 +1,7 @@
1
1
  $rwdguivar=
2
2
  "
3
3
  <tab name=\"diagnostictab\" caption=\"Diagnostic Tab\">
4
- <horizontal>
5
- <button caption=\"View Ruby Version\" action=\"runrubyversion\"/>
6
-
7
-
8
- </horizontal>
9
- <p>%rubyversion%</p>
4
+
10
5
 
11
6
 
12
7
  <table>
@@ -20,12 +15,7 @@ $rwdguivar=
20
15
  </horizontal>
21
16
 
22
17
  <p>%platformdisplay%</p>
23
- <horizontal>
24
- <button caption=\"View rwdtinker Version\" action=\"rwdtinkerversiondiagnostic\"/>
25
-
26
- </horizontal>
27
18
 
28
- <p>%rwdtinkerversionreturn%</p>
29
19
 
30
20
  </tab>"
31
21
 
data/init.rb CHANGED
@@ -24,251 +24,254 @@
24
24
  require "ev/rwd"
25
25
  require 'fileutils'
26
26
  require 'extras/rconftool'
27
-
27
+
28
28
  $progdir = File::expand_path( File.dirname(__FILE__))
29
29
 
30
- $tempdoc = " "
31
-
32
- def findfiles(d)
33
- a = Array.new(Dir[d].entries.sort)
34
- #loop through and get the files names
35
- a.each do |x|
36
- #adjust the filters to the files you want to see...
37
- if(!test(?d,x))
38
- # only rwd files
39
- if x =~ /rb|rwd|txt/
40
- fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
41
- $tempdoc+=fileA.read #reads the file into the doc string
42
- fileA.close
43
- end
44
- end
45
- end
46
- end
47
- def loadguifile(d)
48
- a = Array.new(Dir[d].entries.sort)
49
- #loop through and get the files names
50
- a.each do |x|
51
- #adjust the filters to the files you want to see...
52
- if(!test(?d,x))
53
- # only rwd files
54
- if x =~ /rb|rwd|txt/
55
-
56
- load x #opens the file thats in fileName and reads it
57
- $tempdoc += $rwdguivar # adds the file into the doc string
58
- end
59
- end
60
- end
61
- end
62
-
30
+ $tempdoc = " "
31
+
32
+ def findfiles(d)
33
+ a = Array.new(Dir[d].entries.sort)
34
+ #loop through and get the files names
35
+ a.each do |x|
36
+ #adjust the filters to the files you want to see...
37
+ if(!test(?d,x))
38
+ # only rwd files
39
+ if x =~ /rb|rwd|txt/
40
+ fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
41
+ $tempdoc+=fileA.read #reads the file into the doc string
42
+ fileA.close
43
+ end
44
+ end
45
+ end
46
+ end
47
+ def loadguifile(d)
48
+ a = Array.new(Dir[d].entries.sort)
49
+ #loop through and get the files names
50
+ a.each do |x|
51
+ #adjust the filters to the files you want to see...
52
+ if(!test(?d,x))
53
+ # only rwd files
54
+ if x =~ /rb|rwd|txt/
55
+
56
+ load x #opens the file thats in fileName and reads it
57
+ $tempdoc += $rwdguivar # adds the file into the doc string
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
63
  # integrate the new configuration files
64
64
  MAINconfignew = "rwdconfig.cnf"
65
65
  MAINconfigdist = "rwdconfig.dist"
66
66
  Rconftool::install(MAINconfigdist,MAINconfignew)
67
67
 
68
- Dir.chdir("configuration") #changes the current working directory
69
-
70
- fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
71
- @doc = ""
72
- fileList.length.times{ #opening of a block
73
- configdist =fileList.pop #pops the first item out of the Array
68
+ #load main config file
69
+ load 'rwdconfig.cnf'
70
+
71
+ Dir.chdir("configuration") #changes the current working directory
72
+
73
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
74
+ @doc = ""
75
+ fileList.length.times{ #opening of a block
76
+ configdist =fileList.pop #pops the first item out of the Array
74
77
  tempconfigfile = configdist.gsub(/\.dist$/, "")
75
78
  confignew = tempconfigfile + ".cnf"
76
79
  Rconftool::install(configdist,confignew) #integrates new file with old
77
80
  } #closing block
78
- # END of configuration integration
79
- Dir.chdir($progdir)
80
-
81
- # Read in the configuration files
82
- Dir.chdir("configuration") #changes the current working directory
83
-
84
- fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
85
- @doc = ""
86
- fileList.length.times{ #opening of a block
87
- fileName=fileList.pop #pops the first item out of the Array
88
- load fileName #loads the the config file thats in fileName
81
+ # END of configuration integration
82
+ Dir.chdir($progdir)
83
+
84
+ # Read in the configuration files
85
+ Dir.chdir("configuration") #changes the current working directory
86
+
87
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
88
+ @doc = ""
89
+ fileList.length.times{ #opening of a block
90
+ fileName=fileList.pop #pops the first item out of the Array
91
+ load fileName #loads the the config file thats in fileName
89
92
  } #closing block
90
- # END of configuration reading
91
-
92
- Dir.chdir($progdir) # change back to top program directory
93
-
94
- # build the English Language hash file from the parts
95
- languagehashvariable = 'Message = Hash.new { |hh, kk| hh[kk] = "ERROR: Message not found: #{kk.inspect}."; hh[kk] }
96
- langmessage = {' + "\n"
97
- startlangdir = File.join(LangDir,"en")
98
- #get a list of the files and subdirectories on the starting directory only
99
- alanghash = Array.new(Dir[startlangdir].entries.sort)
100
- #loop through the list, ignore the files and add all new directories found
101
- alanghash.each do |x|
102
- #if a directory...
103
- if(test(?d,x))
104
- # add to the original list of directories
105
- @@tmproot = x + "/**"
106
- #adds the new ones to the array
107
- blanghash = Dir[@@tmproot].entries.sort
108
- blanghash.each do |x|
109
- if(test(?d,x))
110
- alanghash.push(x) #appends to the end of the array...
111
- end
112
- end
113
- end
114
- end
115
- alanghash.each do |x|
116
- #if it is a file...
117
- if(!test(?d,x))
118
- alanghash.delete(x)
119
- else #it is a directory...
120
- findfiles(x + "/**")
121
- end
122
- end
123
-
124
-
125
- #writes the contents of doc into the languagehashvariable
93
+ # END of configuration reading
94
+
95
+ Dir.chdir($progdir) # change back to top program directory
96
+
97
+ # build the English Language hash file from the parts
98
+ languagehashvariable = 'Message = Hash.new { |hh, kk| hh[kk] = "ERROR: Message not found: #{kk.inspect}."; hh[kk] }
99
+ langmessage = {' + "\n"
100
+ startlangdir = File.join(LangDir,"en")
101
+ #get a list of the files and subdirectories on the starting directory only
102
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
103
+ #loop through the list, ignore the files and add all new directories found
104
+ alanghash.each do |x|
105
+ #if a directory...
106
+ if(test(?d,x))
107
+ # add to the original list of directories
108
+ @@tmproot = x + "/**"
109
+ #adds the new ones to the array
110
+ blanghash = Dir[@@tmproot].entries.sort
111
+ blanghash.each do |x|
112
+ if(test(?d,x))
113
+ alanghash.push(x) #appends to the end of the array...
114
+ end
115
+ end
116
+ end
117
+ end
118
+ alanghash.each do |x|
119
+ #if it is a file...
120
+ if(!test(?d,x))
121
+ alanghash.delete(x)
122
+ else #it is a directory...
123
+ findfiles(x + "/**")
124
+ end
125
+ end
126
+
127
+
128
+ #writes the contents of doc into the languagehashvariable
126
129
  languagehashvariable = languagehashvariable + $tempdoc + "} ; langmessage.each { |kk, vv| Message[kk] = vv }"
127
-
128
- # END of en Lang building
130
+
131
+ # END of en Lang building
129
132
  $tempdoc = " "
130
133
  Dir.chdir($progdir) # change back to top program directory
131
-
132
- # build the local Language hash file from the parts
133
- startlangdir = File.join(LangDir,$lang)
134
- #get a list of the files and subdirectories on the starting directory only
135
- alanghash = Array.new(Dir[startlangdir].entries.sort)
136
- #loop through the list, ignore the files and add all new directories found
137
- alanghash.each do |x|
138
- #if a directory...
139
- if(test(?d,x))
140
- # add to the original list of directories
141
- @@tmproot = x + "/**"
142
- #adds the new ones to the array
143
- blanghash = Dir[@@tmproot].entries.sort
144
- blanghash.each do |x|
145
- if(test(?d,x))
146
- alanghash.push(x) #appends to the end of the array...
147
- end
148
- end
149
- end
150
- end
151
- alanghash.each do |x|
152
- #if it is a file...
153
- if(!test(?d,x))
154
- alanghash.delete(x)
155
- else #it is a directory...
156
- findfiles(x + "/**")
157
- end
158
- end
159
-
160
-
161
- #writes the contents of doc into the variable
134
+
135
+ # build the local Language hash file from the parts
136
+ startlangdir = File.join(LangDir,$lang)
137
+ #get a list of the files and subdirectories on the starting directory only
138
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
139
+ #loop through the list, ignore the files and add all new directories found
140
+ alanghash.each do |x|
141
+ #if a directory...
142
+ if(test(?d,x))
143
+ # add to the original list of directories
144
+ @@tmproot = x + "/**"
145
+ #adds the new ones to the array
146
+ blanghash = Dir[@@tmproot].entries.sort
147
+ blanghash.each do |x|
148
+ if(test(?d,x))
149
+ alanghash.push(x) #appends to the end of the array...
150
+ end
151
+ end
152
+ end
153
+ end
154
+ alanghash.each do |x|
155
+ #if it is a file...
156
+ if(!test(?d,x))
157
+ alanghash.delete(x)
158
+ else #it is a directory...
159
+ findfiles(x + "/**")
160
+ end
161
+ end
162
+
163
+
164
+ #writes the contents of doc into the variable
162
165
  languagehashvariable = languagehashvariable + " ; Message.update(" + $tempdoc + ' :rwdtinker => "Rwdtinker" ) '
163
-
164
166
 
165
- $tempdoc = " "
166
-
167
- Dir.chdir($progdir) # change back to top program directory
168
-
169
- temp = eval( languagehashvariable )
170
-
171
- $tempdoc = " "
172
-
173
- # build the actual program from the code parts
174
- #get a list of the files and subdirectories on the starting directory only
175
- a = Array.new(Dir[CodeDir].entries.sort)
176
- #loop through the list, ignore the files and add all new directories found
177
- a.each do |x|
178
- #if a directory...
179
- if(test(?d,x))
180
- # add to the original list of directories
181
- @@root = x + "/**"
182
- #adds the new ones to the array
183
- b = Dir[@@root].entries.sort
184
- b.each do |x|
185
- if(test(?d,x))
186
- a.push(x) #appends to the end of the array...
187
- end
188
- end
189
- end
190
- end
191
- a.each do |x|
192
- #if it is a file...
193
- if(!test(?d,x))
194
- a.delete(x)
195
- else #it is a directory...
196
- findfiles(x + "/**")
197
- end
198
- end
199
-
200
-
201
- # load the program file
202
- tempcoderesult = eval( $tempdoc )
203
-
204
- # build the actual GUI from the gui parts
205
- $tempdoc = " "
206
- #get a list of the files and subdirectories on the starting directory only
207
- a = Array.new(Dir[GuiDir].entries.sort)
208
- #loop through the list, ignore the files and add all new directories found
209
- a.each do |x|
210
- #if a directory...
211
- if(test(?d,x))
212
- #use this new dir find to add to the original list of directories
213
- @@root = x + "/**"
214
- #adds the new ones to the array
215
- b = Dir[@@root].entries.sort
216
- b.each do |x|
217
- if(test(?d,x))
218
- a.push(x) #appends to the end of the array...
219
- end
220
- end
221
- end
222
- end
223
- a.each do |x|
224
- #if it is a file...
225
- if(!test(?d,x))
226
- a.delete(x)
227
-
228
- else #it is a directory...
229
- loadguifile(x + "/**")
230
- end
231
- end
232
-
233
- # gui variable is done
234
- guiRWD = $tempdoc
235
-
236
- require 'socket' # Network stuff
237
- host = "127.0.0.1"
238
- port = $port
239
-
240
- # Create a socket to listen on and bind it to the host and port
241
- freeportfound = false
242
- until freeportfound
243
- begin
244
- @socket = UDPSocket::new()
245
- @socket.bind(host, port)
246
- freeportfound = true
247
- $port = port
248
- # Rescue the "Address in use" error
249
- rescue Errno::EADDRINUSE
250
- puts "RWD Startup: Port #{port} on host #{host} is already in use."
251
- port=port +1
252
- puts "trying port: #{port}"
253
- # Rescue the "Address not available' error
254
- rescue Errno::EADDRNOTAVAIL
255
- puts "RWD Startup: Address #{host} is not available to bind."
256
- port =port + 1
257
- puts "trying port: #{port}"
258
- # Rescue "permission denied errors
259
- rescue Errno::EACCES
260
- puts "RWD Startup: Access denied when binding interface addresses. ?"
261
- port =port + 1
262
- puts "trying port: #{port}"
263
- # Rescue all other errors
264
- rescue
265
- puts "RWD Startup: An error occured."
266
- port =port + 1
267
- puts "trying port: #{port}"
268
- # Rescue all other errors
269
- end
270
167
 
271
- end
168
+ $tempdoc = " "
169
+
170
+ Dir.chdir($progdir) # change back to top program directory
171
+
172
+ temp = eval( languagehashvariable )
173
+
174
+ $tempdoc = " "
175
+
176
+ # build the actual program from the code parts
177
+ #get a list of the files and subdirectories on the starting directory only
178
+ a = Array.new(Dir[CodeDir].entries.sort)
179
+ #loop through the list, ignore the files and add all new directories found
180
+ a.each do |x|
181
+ #if a directory...
182
+ if(test(?d,x))
183
+ # add to the original list of directories
184
+ @@root = x + "/**"
185
+ #adds the new ones to the array
186
+ b = Dir[@@root].entries.sort
187
+ b.each do |x|
188
+ if(test(?d,x))
189
+ a.push(x) #appends to the end of the array...
190
+ end
191
+ end
192
+ end
193
+ end
194
+ a.each do |x|
195
+ #if it is a file...
196
+ if(!test(?d,x))
197
+ a.delete(x)
198
+ else #it is a directory...
199
+ findfiles(x + "/**")
200
+ end
201
+ end
202
+
203
+
204
+ # load the program file
205
+ tempcoderesult = eval( $tempdoc )
206
+
207
+ # build the actual GUI from the gui parts
208
+ $tempdoc = " "
209
+ #get a list of the files and subdirectories on the starting directory only
210
+ a = Array.new(Dir[GuiDir].entries.sort)
211
+ #loop through the list, ignore the files and add all new directories found
212
+ a.each do |x|
213
+ #if a directory...
214
+ if(test(?d,x))
215
+ #use this new dir find to add to the original list of directories
216
+ @@root = x + "/**"
217
+ #adds the new ones to the array
218
+ b = Dir[@@root].entries.sort
219
+ b.each do |x|
220
+ if(test(?d,x))
221
+ a.push(x) #appends to the end of the array...
222
+ end
223
+ end
224
+ end
225
+ end
226
+ a.each do |x|
227
+ #if it is a file...
228
+ if(!test(?d,x))
229
+ a.delete(x)
230
+
231
+ else #it is a directory...
232
+ loadguifile(x + "/**")
233
+ end
234
+ end
235
+
236
+ # gui variable is done
237
+ guiRWD = $tempdoc
238
+
239
+ require 'socket' # Network stuff
240
+ host = "127.0.0.1"
241
+ port = $port
242
+
243
+ # Create a socket to listen on and bind it to the host and port
244
+ freeportfound = false
245
+ until freeportfound
246
+ begin
247
+ @socket = UDPSocket::new()
248
+ @socket.bind(host, port)
249
+ freeportfound = true
250
+ $port = port
251
+ # Rescue the "Address in use" error
252
+ rescue Errno::EADDRINUSE
253
+ puts "RWD Startup: Port #{port} on host #{host} is already in use."
254
+ port=port +1
255
+ puts "trying port: #{port}"
256
+ # Rescue the "Address not available' error
257
+ rescue Errno::EADDRNOTAVAIL
258
+ puts "RWD Startup: Address #{host} is not available to bind."
259
+ port =port + 1
260
+ puts "trying port: #{port}"
261
+ # Rescue "permission denied errors
262
+ rescue Errno::EACCES
263
+ puts "RWD Startup: Access denied when binding interface addresses. ?"
264
+ port =port + 1
265
+ puts "trying port: #{port}"
266
+ # Rescue all other errors
267
+ rescue
268
+ puts "RWD Startup: An error occured."
269
+ port =port + 1
270
+ puts "trying port: #{port}"
271
+ # Rescue all other errors
272
+ end
273
+
274
+ end
272
275
 
273
276
 
274
- RwdTinker.new( guiRWD).serve(port) # start the main class and program
277
+ RwdTinker.new( guiRWD).serve(port) # start the main class and program
@@ -0,0 +1,8 @@
1
+ BEGIN:VCARD
2
+ VERSION:3.0
3
+ FN:Angelina Jolie
4
+ N:Angelina Jolie;;;;
5
+ ADR;type=home,pref:;;home address;U.S.A.;;;rwdaddress
6
+ TEL;type=home:555
7
+ EMAIL;type=home:a@localhost
8
+ END:VCARD
@@ -147,6 +147,11 @@ erik = secret
147
147
  Thanks, Steven Gibson
148
148
 
149
149
  == Changelog
150
+ Version 1.02
151
+ Export vCard
152
+ view raw vCard
153
+ updated for rwdtinker 1.61
154
+
150
155
  version 1.01
151
156
  updated for rwdtinker version 1.59
152
157
  refactored diagnotic page - one button to see all information