rwdaddresses 0.97 → 0.98

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/Readme.txt +5 -0
  2. data/code/superant.com.rwdtinkerbackwindow/controlclient.rb +25 -26
  3. data/code/superant.com.rwdtinkerbackwindow/helptexthashtinkerwin2.rb +25 -4
  4. data/code/superant.com.rwdtinkerbackwindow/installapplet.rb +1 -0
  5. data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +20 -0
  6. data/code/superant.com.rwdtinkerbackwindow/installremotegem.rb +19 -0
  7. data/code/superant.com.rwdtinkerbackwindow/listgemdirs.rb +12 -0
  8. data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +54 -0
  9. data/code/superant.com.rwdtinkerbackwindow/listzips.rb +22 -7
  10. data/code/superant.com.rwdtinkerbackwindow/openhelpwindowtinkerwin2.rb +3 -0
  11. data/code/superant.com.rwdtinkerbackwindow/remotegemlist.rb +24 -0
  12. data/code/superant.com.rwdtinkerbackwindow/saveconfigurationrecord.rb +1 -1
  13. data/code/superant.com.rwdtinkerbackwindow/viewgemappletcontents.rb +21 -0
  14. data/configuration/rwdaddressesversion.cnf +1 -1
  15. data/configuration/rwdtinker.cnf +3 -6
  16. data/configuration/rwdtinkerversion.cnf +1 -1
  17. data/configuration/tinkerwin2variables.cnf +7 -3
  18. data/extras/cmdline_parse +47 -0
  19. data/extras/config_file +69 -0
  20. data/extras/errorMsg +19 -0
  21. data/extras/makePlaylist +34 -0
  22. data/extras/mp3controld +289 -0
  23. data/extras/playlist +186 -0
  24. data/extras/plugins/Network +237 -0
  25. data/extras/showHelp +18 -0
  26. data/gui/00coreguibegin/applicationguitop.rwd +1 -1
  27. data/gui/frontwindow0/superant.com.rwdaddresses/11viewnamedata.rwd +3 -1
  28. data/gui/frontwindow0/superant.com.rwdaddresses/13listnamerecordfiles.rwd +7 -1
  29. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/40rwdlistzips.rwd +11 -11
  30. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/45installremotezip.rwd +44 -0
  31. data/init.rb +22 -35
  32. data/installed/rwdviewlogo-0.4.inf +4 -0
  33. data/names/elektra.jpg +0 -0
  34. data/names/elektra.nam +7 -0
  35. data/rwd_files/HowTo_Addresses.txt +5 -0
  36. data/rwd_files/HowTo_Tinker.txt +19 -0
  37. data/rwd_files/contacttmp.jpg +0 -0
  38. metadata +27 -21
  39. data/installed/addressessample1.inf +0 -5
  40. data/lang/alanguagehashbegin.rb +0 -4
  41. data/lang/languagehash.rb +0 -4
  42. data/lang/templangfile.rb +0 -16
  43. data/lang/vlanguagehashend.rb +0 -6
  44. data/lang/wlocallangstart.rb +0 -5
  45. data/lang/xlocallangfile.rb +0 -16
  46. data/lang/zlocallangend.rb +0 -2
  47. data/tests/rwdtinkertestEN.rb +0 -163
  48. data/tests/test.result +0 -32
  49. data/tests/totranslate.lang +0 -93
  50. data/zips/rwdaschedule-0.921.zip +0 -0
  51. data/zips/rwdcalc-0.4.zip +0 -0
data/Readme.txt CHANGED
@@ -147,6 +147,11 @@ erik = secret
147
147
  Thanks, Steven Gibson
148
148
 
149
149
  == Changelog
150
+ version 0.98
151
+ updated for rwdtinker 1.56
152
+ first debian version
153
+ added photo to front viewing screen
154
+
150
155
  version 0.97
151
156
  updated for rwdtinker version 1.51
152
157
  added RwdAddresses Menu tab for easier navigation
@@ -1,28 +1,22 @@
1
- #
1
+ # Bind message passing socket to rwdtinker application
2
2
 
3
3
  def runcontrolcommand
4
4
  require 'socket'
5
5
 
6
6
  # Change this line...
7
- ip = '127.0.0.1'
7
+ ip = '127.0.0.1'
8
8
  # And this one...
9
- port = $rwdcontrolport1
10
- if @a_remoteportinput
11
- port = @a_remoteportinput.to_i
12
- end
13
- # Done!
9
+ port = $rwdcontrolport1
10
+ if @a_remoteportinput
11
+ port = @a_remoteportinput.to_i
12
+ end
14
13
 
15
-
16
14
  commandtext = @a_remotecommandinput.to_s
17
-
18
- remotehostnotfound = true
19
-
20
- client = UDPSocket::new()
21
- client.send(commandtext, 0, ip, port)
22
-
23
-
24
- if (commandtext == "stop")
25
- begin
15
+ remotehostnotfound = true
16
+ if (commandtext == "stop")
17
+ begin
18
+ client = UDPSocket::new()
19
+ client.send(commandtext, 0, ip, port)
26
20
  @socket = UDPSocket::new()
27
21
  @socket.bind(ip, port)
28
22
  # Rescue the "Address in use" error
@@ -51,17 +45,20 @@ begin
51
45
  @remotecommandresult = "Remote Host not running"
52
46
  end
53
47
  @socket.close
54
- end
48
+ # Close the socket after use
49
+ client.close()
50
+ end
55
51
 
56
- remotehostnotfound = true
57
- if (commandtext == "query")
58
- begin
52
+ remotehostnotfound = true
53
+ if (commandtext == "query")
54
+ begin
55
+ client = UDPSocket::new()
56
+ client.send(commandtext, 0, ip, port)
59
57
  @socket = UDPSocket::new()
60
58
  @socket.bind(ip, port)
61
59
  # Rescue the "Address in use" error
62
60
  rescue Errno::EADDRINUSE
63
61
 
64
-
65
62
  databack, info = client.recv(128)
66
63
  @remotecommandresult = databack
67
64
  @lastremotecommand = "rwdtinker remote: Port #{port} on host #{ip} "
@@ -82,15 +79,17 @@ begin
82
79
  # Rescue all other errors
83
80
  end
84
81
  @socket.close
85
- end
86
- if remotehostnotfound
87
- @remotecommandresult = "Remote Host not running"
88
- end
82
+
89
83
  # Close the socket after use
90
84
  client.close()
85
+ end
91
86
 
87
+ if remotehostnotfound
88
+ @remotecommandresult = "Remote Host not running"
89
+ end
92
90
  end
93
91
 
92
+ # list the remote control options on the screen
94
93
  def showremoteportoptions
95
94
 
96
95
  @remoteportoptions = $rwdcontrolports.rwd_options
@@ -1,11 +1,15 @@
1
-
1
+ # help text files used by context sensitive help
2
2
 
3
3
  Helptext.update( :tinkerwin2_help => " You can view the list of applets you can install
4
4
  by clicking on the list files button
5
5
 
6
6
  You can download an applet created by someone else
7
7
 
8
- put the file in the zips directory",
8
+ put the file in the zips directory
9
+
10
+ rwdtinker applets packaged as RubyGems can be used if you have RubyGems installed.
11
+ You can download rwdtinker gems at the 'Install Remote Applets' tab
12
+ ",
9
13
  :applet_viewing => "You can get a list of all installed applets by clicking the 'listfiles button'
10
14
  To see the text of a install file
11
15
  Type in the name of the file you want.
@@ -32,6 +36,23 @@
32
36
  :applet_tinkerbackeditconfiguration => " You can edit the configuration
33
37
 
34
38
  Remember to reload the configuration variables if you want your
35
- changes used."
36
-
39
+ changes used.",
40
+ :remotegemapplet_install => " To download and install use the 'Install Remote Applets'
41
+
42
+ First click on 'List applets in the Remote GEM Repository available for downloading'
43
+ then go to the very bottom to click on the applet you want
44
+ then on the top click 'install remote Gem applet package'
45
+
46
+ This installs the package in the Gem system
47
+ You still need to install it into rwdtinker - do that in the 'List Zips' tab
48
+
49
+ For this feature to work, you need
50
+ RubyGems installed
51
+ Variables set correctly in the tinerwin2.cnf file
52
+ $xpcommand, $gemdirectory_withgemfiles and $geminstalled_directory
53
+ the defaults as shipped will normally be for a Debian Linux system
54
+ On Debian Linux, you would usually need to be running rwdtinker as root in order to install RubyGems
55
+
56
+ You can view the list of rwdtinker applets you have installed already by clicking 'view already installed GEM applets'
57
+ "
37
58
  )
@@ -1,3 +1,4 @@
1
+ # code in install rwdtinker applets - now uses ruby.zip module
1
2
  def installapplet
2
3
  require 'fileutils'
3
4
  require 'extras/zip/zip'
@@ -0,0 +1,20 @@
1
+ # install rwdtinker applet from a long directory location
2
+ def installgemapplet
3
+ require 'fileutils'
4
+ require 'extras/zip/zip'
5
+ nametext = "%s" % [@a_installapplet]
6
+
7
+ begin # exception trapped block
8
+ fullname = nametext + ".zip"
9
+
10
+ zf = Zip::ZipFile.new(fullname)
11
+ zf.sort.each {
12
+ |entry|
13
+ zf.extract(entry.to_s, entry.to_s)
14
+ }
15
+ @installapplettext = Message[:applet_installed]
16
+
17
+ rescue
18
+ @installapplettext = "unzip error - applet may not be installed correctly"
19
+ end # exception rescue
20
+ end
@@ -0,0 +1,19 @@
1
+ # download gem of rwdtinker applet
2
+ def superantcominstallremotegemapplet
3
+ require 'fileutils'
4
+
5
+ tempnametext = "%s" % [@superantcominstallremoteappletinput]
6
+ temparray = tempnametext.split(/ /)
7
+ nametext = temparray[0]
8
+ begin # exception trapped block
9
+
10
+
11
+ commandline = $xpcommand + "gem install " + nametext
12
+
13
+ @superantcominstallremotegemappletresult = `#{commandline}`
14
+
15
+ rescue
16
+ @superantcominstallremotegemappletresult = "error during gem install!"
17
+ end # exception rescue
18
+
19
+ end
@@ -0,0 +1,12 @@
1
+ # this code is to list the gem directories that are installed
2
+ def superantcomshowgemfiledirs
3
+
4
+ fileList = Dir.new($gemdirectory_withgemfiles).entries.sort.delete_if { |x| ! (x =~ /\Arwdzip/) }
5
+ @superantcomshowgemappletdirsresult = fileList.rwd_method("superantcomshowgemappletdirsname")
6
+ end
7
+
8
+ def superantcomshowgemappletdirsname(inffile)
9
+ applet = inffile
10
+ @a_gemfiledirsinput = applet
11
+
12
+ end
@@ -0,0 +1,54 @@
1
+ # this code is to list the zips
2
+
3
+
4
+ def fillzipappletname(inffile)
5
+ applet = inffile.gsub(/\.zip$/, "")
6
+ @a_installapplet = applet
7
+
8
+ end
9
+
10
+ def findzipfiles(d)
11
+ a = Array.new(Dir[d].entries.sort)
12
+ #loop through and get the files names
13
+ a.each do |x|
14
+ #adjust the filters to the files you want to see...
15
+ if(!test(?d,x))
16
+ # only zip files
17
+ if x =~ /\.zip/
18
+ puts "#{x}" #opens the file thats in fileName as read only
19
+ $zipsarray = $zipsarray | ["#{x}"]
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ def listgemzips
26
+ startlangdir = $geminstalled_directory
27
+ #get a list of the files and subdirectories on the starting directory only
28
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
29
+ p alanghash
30
+ #loop through the list, ignore the files and add all new directories found
31
+ alanghash.each do |x|
32
+ #if a directory...
33
+ if(test(?d,x))
34
+ # add to the original list of directories
35
+ @@tmproot = x + "/**"
36
+ #adds the new ones to the array
37
+ blanghash = Dir[@@tmproot].entries.sort
38
+ blanghash.each do |x|
39
+ if(test(?d,x))
40
+ alanghash.push(x) #appends to the end of the array...
41
+ end
42
+ end
43
+ end
44
+ end
45
+ alanghash.each do |x|
46
+ #if it is a file...
47
+ if(!test(?d,x))
48
+ alanghash.delete(x)
49
+ else #it is a directory...
50
+ findzipfiles(x + "/**")
51
+ end
52
+ end
53
+ @zipslistresult = $zipsarray.rwd_method("fillzipappletname")
54
+ end
@@ -1,16 +1,31 @@
1
1
  # this code is to list the zipped applets that can be installed
2
- def listzipfilestoinstall
3
- if File.exist?($zipslocation)
4
- fileList = Dir.new($zipslocation).entries.sort.delete_if { |x| ! (x =~ /zip$/) }
5
- @zipslistresult = fileList.rwd_method("fillziptoinstallname")
6
- end
7
- end
2
+
8
3
 
9
4
  def fillziptoinstallname(inffile)
10
5
  applet = inffile.gsub(/\.zip$/, "")
11
6
  @a_installapplet = applet
12
7
 
13
8
  end
9
+
14
10
 
15
11
 
16
-
12
+
13
+ def listzipfilestoinstall
14
+ startlangdir = File.join($progdir, $zipslocation )
15
+ #get a list of the files and subdirectories on the starting directory only
16
+
17
+
18
+ a = Array.new(Dir["#{startlangdir}/*"].entries.sort)
19
+
20
+ #loop through and get the files names
21
+ a.each do |x|
22
+ # only zip files
23
+ if x =~ /\.zip/
24
+ # puts "#{x}" #adds the file to the array to display on the screen
25
+ $zipsarraylocal = $zipsarraylocal | ["#{x}"]
26
+ end
27
+
28
+ end
29
+
30
+ @zipslistresult = $zipsarraylocal.rwd_method("fillziptoinstallname")
31
+ end
@@ -24,6 +24,9 @@ def runhelpwindowtinkerwin2
24
24
  $help_topic = "remote_control"
25
25
 
26
26
  end
27
+ if @rwd_tab == "superantcomremotezipsinstall"
28
+ $help_topic = "remotegemapplet_install"
29
+ end
27
30
 
28
31
 
29
32
  if @rwd_window != "rwdtinkerhelpwindow"
@@ -0,0 +1,24 @@
1
+ # This tinker method is to retrieve the list of rwdzip applets available to install from the remote repository
2
+
3
+ def superantcomremotegemlist
4
+ gemcommandoption = "search --remote "
5
+ gemfilename = "rwdzip"
6
+ commandtext = "gem search --remote rwdzip"
7
+ commandtemp = $xpcommand + commandtext
8
+ begin # exception trapped block
9
+
10
+ tempremotegemappletsresult = `#{commandtemp} 2>&1`
11
+ @superantcomremotegemappletsfullresult = tempremotegemappletsresult
12
+ fileList = tempremotegemappletsresult.split(/\n/).delete_if { |x| ! (x =~ /\Arwdzip/) }
13
+
14
+ @superantcomremotegemappletsresult = fileList.rwd_method("superantcomremotegemappletdirsname")
15
+ rescue SystemCallError, StandardError
16
+ @superantcomremotegemappletsresult = "system call error: " + $!
17
+ end # exception rescue
18
+ end
19
+
20
+ def superantcomremotegemappletdirsname(inffile)
21
+ applet = inffile
22
+ @superantcominstallremoteappletinput = applet
23
+
24
+ end
@@ -1,4 +1,4 @@
1
- # this method adds a new address record
1
+ # this method saves the configuration record
2
2
  def saveconfigurationrecord
3
3
  require 'fileutils'
4
4
  if @a_configurationfilename
@@ -0,0 +1,21 @@
1
+ def viewgemappletcontents
2
+ require 'fileutils'
3
+ require 'extras/zip/zip'
4
+ nametext = "%s" % [@a_installapplet]
5
+
6
+ begin # exception trapped block
7
+ fullname = nametext + ".zip"
8
+
9
+ tempfilecontents = " "
10
+ zf = Zip::ZipFile.new(fullname)
11
+ zf.sort.each {
12
+ |entry|
13
+ tempfilecontents = tempfilecontents + entry.to_s + "\n"
14
+ }
15
+ @appletcontentstext = tempfilecontents
16
+
17
+ rescue
18
+ @installapplettext = "unzip error - error opening applet"
19
+ end # exception rescue
20
+
21
+ end
@@ -1,2 +1,2 @@
1
1
 
2
- RwdAddressesVersion = "0.97"
2
+ RwdAddressesVersion = "0.98"
@@ -2,15 +2,12 @@
2
2
  ConfigurationDir = "configuration" # for use in program - init.rb has this value without using this constant
3
3
  CodeName = "rwdtinker"
4
4
  CodeNameFile = CodeName + ".rb"
5
- LangNameFile = "rwdlanguage.rb"
6
5
  RWDFile = "rwdtinker.rwd"
7
6
  LangDir = "lang"
8
- TempLangHashFile = LangDir + "/" + "templangfile.rb"
9
- LocalLangHashFile = LangDir + "/" + "xlocallangfile.rb"
10
- CodeDir = "code"
11
- GuiDir = "gui"
7
+ CodeDir = "code"
8
+ GuiDir = "gui"
12
9
  $help_topic = "general_help"
13
10
  $helptopicsarray = [ "general_help","network_help"]
14
- $prevouswindow ="main"
11
+ $prevouswindow ="main"
15
12
  $rwdcontrolports =["13713","13714","13715","13716","13717","13718"]
16
13
  $port = 7705
@@ -1,2 +1,2 @@
1
1
 
2
- RwdTinkerVersion = "1.50"
2
+ RwdTinkerVersion = "1.56"
@@ -1,8 +1,12 @@
1
1
 
2
2
  TinkerWin2ConfigurationFileName = "tinkerwin2variables.cnf" # this file name - do not change
3
3
  $zipslocation = "zips" # location of applets to add
4
- $unzipprogram = "unzip -o "
5
-
6
-
4
+ $zipsarray = [""] ; $zipsarraylocal = [""]
5
+ $xpcommand = " " # Linux machines
6
+ # $xpcommand = "cmd /C " # XP machines with cmd shell
7
+ $gemdirectory_withgemfiles = "/usr/lib/ruby/gems/1.8/gems"
8
+ # $gemdirectory_withgemfiles = "c:\\ruby\\lib\\ruby\\gems\\1.8\\gems" # XP machine
9
+ # $geminstalled_directory = "/ruby/lib/ruby/gems/1.8/gems" # XP machine
10
+ $geminstalled_directory = "/usr/lib/ruby/gems/1.8/gems" # Debian Linux
7
11
 
8
12
 
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/ruby
2
+ # --- Parse command line ---
3
+ #
4
+ # Author: Magnus Engstr�m
5
+ # Email: magnus@gisab.se
6
+ # File: cmdline_parse
7
+ #
8
+ # Description
9
+ # -----------
10
+ # Parses the commandline and
11
+ # returns a hash with the
12
+ # switch as key and the
13
+ # value as value :)
14
+ # --------------------------
15
+
16
+ class Commandline
17
+ def Commandline::parse()
18
+
19
+ params = Hash::new() # Could be useful to have something to put the commandline in ;)
20
+ key = false # Just a really ugly hack to keep track on if we're reading key or value
21
+ foo = '' # Keeps the key name
22
+
23
+ # Iterate through the command line ($*) and put it in the params hash
24
+ $*.each { |param|
25
+ key = ( key == true ? false : true ) # Negate the value of key
26
+ if(key)
27
+ foo = param
28
+ else
29
+ params[foo] = param
30
+ end
31
+ }
32
+
33
+ # Validate the command line.
34
+ # Every key should begin with at least one '-' and have a value
35
+ if( !key ) # If key equals true, then the user should enter one more parameter
36
+ passed = true
37
+ params.each { |key, value| # Iterate through all parameters
38
+ passed = false if(key[0].chr() != '-') # Doesn't it start with a '-'? Not passed...
39
+ passed = false if(value == '') # I really want a value here, not just an empty string
40
+ }
41
+ end
42
+
43
+ # Return params if check passed, else return -1
44
+ passed ? params : -1
45
+
46
+ end
47
+ end
@@ -0,0 +1,69 @@
1
+ #!ruby
2
+ require 'ftools'
3
+ require 'tempfile'
4
+
5
+ class ConfigFile
6
+
7
+ def ConfigFile::parse(filename)
8
+ # Make sure this file exists and is readable
9
+ if( FileTest::readable_real?(filename) )
10
+ new(filename) # Return the class instance
11
+ else
12
+ -1 # Return -1 on failure
13
+ end
14
+ end
15
+
16
+ def initialize(filename)
17
+ @filename = filename
18
+ @config = Hash::new() # The class internal variable that holds the config data
19
+ section = ''
20
+
21
+ # Parse the configuration file (and in only TWO rows, God I love Ruby! =)
22
+ IO::foreach(@filename) { |configLine| @config[section = $1] = Hash::new() if(configLine.gsub(/\s*#.*$/, '') =~ /\s*(\S+)\s*\{/)
23
+ @config[section].update({$1 => $2}) if(configLine.gsub(/\s*#.*$/, '') =~ /\s*(\S+)\s*=\s*(.*)/) }
24
+ end
25
+
26
+ # Return the requested parameter
27
+ def getParam(section, parameter)
28
+ @config[section][parameter] if(@config[section].type == Hash)
29
+ end
30
+
31
+ # Set the provided parameter
32
+ def setParam(section, parameter, value)
33
+ # Create a temp file
34
+ temp = Tempfile::new('config')
35
+
36
+ current_section = ''
37
+ # Loop through the config file
38
+ IO::foreach(@filename) { |line|
39
+ current_section = $1 if( line =~ /^\s*(\S+)\s*{\s*(#.*)?$/ ) # Handle the section stuff
40
+ # Is this a correct parameter entry?
41
+ if( line =~ /^\s*(\S+)\s*=\s*\S+\s*(#.*)?$/ )
42
+
43
+ if( current_section == section && $1 == parameter ) # This is the line we want to change!
44
+ line.gsub!( /^(\s*\S+\s*=\s*)\S+(\s*(#.*)?)$/, "\\1#{value}\\2" ) # Change the parameter value to the one the user supplied
45
+ end
46
+
47
+ end
48
+
49
+ temp.puts(line) # Write the line to the tempfile
50
+ }
51
+
52
+ temp.close() # Close the file
53
+ File::copy(temp.path, @filename) # Copy the tempfile to overwrite the old one
54
+ temp.close(true) # Remove the file
55
+ end
56
+
57
+ # Loop through all sections
58
+ def each_section()
59
+ @config.each { |key,value| yield(key) }
60
+ end
61
+
62
+ # Loop through all parameters in a section
63
+ def each_parameter(section)
64
+ @config[section].each { |key,value| yield(key) }
65
+ end
66
+
67
+ attr_reader :filename
68
+
69
+ end
data/extras/errorMsg ADDED
@@ -0,0 +1,19 @@
1
+ #!ruby
2
+
3
+ # --- errorMsg ---
4
+ #
5
+ # Author: Magnus Engstr�m
6
+ # Email: magnus@gisab.se
7
+ # File: errorWrite
8
+ #
9
+ # Description
10
+ # -----------
11
+ # Outputs an error message to the administrator
12
+ # ------------------
13
+
14
+ def errorMsg(message, exitapp = false)
15
+ STDERR.puts(message)
16
+ MP3Control::exit_mpg123() if(exitapp)
17
+ Kernel::exit(exitapp) if(exitapp) # Terminate application and return the exitapp value if it isn't falsew
18
+
19
+ end
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby
2
+ require 'mp3tag'
3
+
4
+ def getList(dir)
5
+ Dir::chdir(dir)
6
+
7
+ # Find the files in this directory
8
+ Dir['*mp3'].each { |file|
9
+ if(FileTest::file?(file))
10
+ mp3tag = Mp3Tag::new(Dir::getwd()+"/"+file)
11
+ if(mp3tag.songname.length > 0)
12
+ puts("#{Dir::getwd()+"/"+file}||#{mp3tag.songname}||#{mp3tag.artist}||#{mp3tag.album}||#{mp3tag.year}||#{mp3tag.comment}||#{mp3tag.tracknum}||#{mp3tag.genre_id}||#{mp3tag.genre}")
13
+ else
14
+ name = Dir::getwd()+"/"+file
15
+ name =~ /([^\/]+)\.mp3$/
16
+ puts("#{Dir::getwd()+"/"+file}||#{$1}||#{mp3tag.artist}||#{mp3tag.album}||#{mp3tag.year}||#{mp3tag.comment}||#{mp3tag.tracknum}||#{mp3tag.genre_id}||#{mp3tag.genre}")
17
+ end
18
+ end
19
+ }
20
+
21
+ Dir['*'].each { |entry|
22
+ if(FileTest::directory?(entry))
23
+ getList(entry)
24
+ end
25
+ }
26
+ Dir::chdir('..')
27
+ end
28
+
29
+ # Change current directory to user supplied one
30
+ Dir::chdir(ARGV[0])
31
+ getList(ARGV[0])
32
+
33
+ #song = Mp3Tag::new(ARGV[0])
34
+ #puts song.songname()