hi
In order to learn ruby I'd like to implement some simple unix tools in
ruby. I thought I beginn with 'ls':

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1 #!/usr/bin/env ruby
  2 #
  3 # The Unix tool 'ls' implemented in ruby
  4 #
  5 class Ls
  6         attr_accessor :parent_dir
  7         def initialize()
  8                 puts "Help: ls - list directories and files "
  9                 @parent_dir = parent_dir
 10
 11         end
 12         def get_dir(dir)
 13                 path = dir
 14                 if File.exists?(path) && File.directory?(path) && path!=nil
 15                         return path
 16                 else
 17                         puts "Directory doesn't exists"
 18                         exit 1
 19                 end
 20         end
 21
 22         def list_all(dir)
 23                 Dir.foreach(dir) do |entry|
 24                         if entry != "." || entry != ".."
 25                                 puts entry
 26                         end
 27                 end
 28
 29         end
 30 end
 31
 32 lister = Ls.new()
 33
 34 dir = ARGV.shift
 35 if dir!=nil
 36         lister.list_all(lister.get_dir(dir))
 37 else
 38         puts "no Argument - define path"
 39 end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

there are a few things that I'm unsure about:

1. the application structure as a whole. Is it ok to test command line
argument outside of a class?
2. the structure of the class itself. Is the constructor
(initialization) ok that way?
3. line 24 doesn't work '.' and '..' are not. How could I do that with
regular expressions?


thanks in advance for your help and opinion
ben