On Tuesday, 27 May 2003 at 15:53:06 +0900, Sacha Schlegel wrote: > Hi Jim > > Questions for a small ruby application. The application will not result > in a ruby library at all. > > Hope your "Ruby Project Directory Structure" is also valid for a simple > application. > Good question. I have this scenario all the time. > a) There are a couple of .rb files which hold the ruby classes for the > application. Where do these files go to? bin/ or lib/ lib/ The executable can be installed in the ruby_path/bin or some other path. When it calls require 'my_lib', it will find your .rb classes installed under ruby_path/lib/ruby/site_ruby/1.x/ . > b) A ruby file is called start1.rb and start2.rb which starts the > applications (each creates an instance object of the main application, > sort of client-server). Does this file go into bin/ or does it go into > examples as it showes how to start the application or is it a > replacement for the setup.rb file? When I used setup.rb I was thinking of the app written by Minero Aoki. From what I can tell, most raa packages are installed via: ruby install.rb setup ruby install.rb config ruby install.rb install I would say that if your startx apps are absolutely required to run your app, then they should go in bin/. If, as you say, they are examples, the they should go under examples. > 3) Also there are a couple of data (input files) for the application. > Where do those data (input files) go? That's a good question. If the data files are configurable by the user, it might be best to put them under $HOME/.myapprc, or to read them from the command line. In the case where they are static and part of the app database, you may wnat to store them in the ruby_lib path. I have a situation similar to this at work where we have an app that requires a database of netlist templates. We want this to be invisible to the user, so we have a class that controls these templates. We put the templates in a directory under the class and it finds them with: template_path = File.join(File.dirname(__FILE__), "template") ruby_path/lib/site_ruby/1.8/my_app/template.rb ruby_path/lib/site_ruby/1.8/my_app/template/template1 ruby_path/lib/site_ruby/1.8/my_app/template/template2 -- Jim Freeze ---------- Cahn's Axiom: When all else fails, read the instructions.