From: Trans Date: 2007-02-04T08:01:59+09:00 Subject: Re: gem issue On Feb 3, 4:38 pm, "Tim Pease" wrote: > I'm working on Ruby program that will have a resource directory for > storing configuration, logging information, etc. I've used the > __END__ and DATA trick in my main ruby program to store some sane > defaults for the resources directory if this is the first time the > program has been run by a user. > > #!/usr/bin/env ruby > > require 'mylib' > > unless File.exist?(ENV['HOME'] + '.myrc') > File.open(ENV['HOME'] + '.myrc/defaults', 'w') do |fd| > fd.write DATA.readlines > end > end > > # use defaults here > > __END__ > hash_key_1 : 1 > hash_key_2 : 2 > etc : and some more > > This works very well when my application is run directly. But when > installed via gems a new ruby script is created that loads my > executable script :( This causes the __END__ keyword in my ruby > script to stop working, and the DATA constant is not set. > > Is there a way to tell the gem installer "Hey, quit being so smart and > just install my executable file without wrappering it with your own > ruby script". Something like: File.read(__FILE__).split("__END__").last But why not store it in a separate config file? T.