[#1649] Re: New Ruby projects — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1672] Re: Ruby 1.4 stable manual bug? — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1673] Re: Possible problem with ext/socket in 1.5.2 — itojun@...
[#1694] Conventions for our Ruby book — Dave Thomas <Dave@...>
[#1715] Install postgresql support — Ikhlasul Amal <amal@...>
Hi all,
Hi,
[#1786] Is this a bug? — Clemens Hintze <clemens.hintze@...>
(mailed & posted)
[#1814] Objects nested sometimes. — Hugh Sasse Staff Elec Eng <hgs@...>
I am attemptiong to write a package which consists of a workspace
[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>
Hi all,
Hi,
Yukihiro Matsumoto writes:
Hi,
Hi,
[#1834] enum examples? — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examplse of using the Enumerable module? I've had a
[#1844] Minor irritation, can't figure out how to patch it though! — Hugh Sasse Staff Elec Eng <hgs@...>
I was considering how difficult it would be to patch Ruby to accept
[#1889] [ruby-1.5.3] require / SAFE — ts <decoux@...>
[#1896] Ruby Syntax similar to other languages? — "David Douthitt" <DDouthitt@...>
[#1900] Enumerations and all that. — Hugh Sasse Staff Elec Eng <hgs@...>
Thank you to the people who responded to my questions about Enumerated
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 16 Mar 2000, Dave Thomas wrote:
[#1929] Re: Class Variables — "David Douthitt" <DDouthitt@...>
| "David Douthitt" <DDouthitt@cuna.com> writes:
[#1942] no Fixnum#new ? — Quinn Dunkan <quinn@...>
Ok, I can add methods to a built-in class well enough (yes I know about succ,
[#1981] Time::at — "David Douthitt" <DDouthitt@...>
or whatever the right syntax is :-)
[#1989] English Ruby/Gtk Tutorial? — schneik@...
Hi,
SugHimsi(%HeIsSaidJustToLoseHisPatienceOnThisSubject;-).
[#2022] rb_global_entry — ts <decoux@...>
[#2036] Anonymous and Singleton Classes — B_DAVISON <Bob.Davison@...>
I am a Ruby newbie and having some problems getting my mind around certain
[#2069] Ruby/GTK+ question about imlib --> gdk-pixbug — schneik@...
[#2073] Re: eval.rb fails — "Dat Nguyen" <thucdat@...>
The doc is fine, this happens only if you try to execute 'until' block
On Wed, 22 Mar 2000, Dat Nguyen wrote:
[#2084] Scope violated by import via 'require'? — Clemens Hintze <c.hintze@...>
Hi,
[#2104] ARGF or $< — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examples of how to use ARGF or $< as I cannot find much
Hi.
[#2165] Ruby strict mode and stand-alone executables. — "Conrad Schneiker" <schneiker@...>
Some people want Ruby to have a strict compile mode.
[#2203] Re: parse bug in 1.5 — schneik@...
[#2212] Re: Ruby/Glade usage questions. — ts <decoux@...>
>>>>> "m" == mrilu <mrilu@ale.cx> writes:
[#2241] setter() for local variables — ts <decoux@...>
[#2256] Multiple assignment of pattern match results. — schneik@...
[#2267] Re: Ruby and Eiffel — h.fulton@...
[#2309] Question about attribute writers — Dave Thomas <Dave@...>
[ruby-talk:02034] class File acting funny!
I'd like to define a class Lock < File which would act like this:
Lock.lock
# do stuff....
Lock.unlock
or even perhaps
Lock.lock {
# do stuff
}
or even
Lock.lock("myfile") {
# stuff
}
Designing my own iterators isn't a problem, but this lock class seems to be. I get many funny errors:
* Lock.new insisted on 1 parameter - but initialize method had NO parameters
* $0 was not being recognized in parameter default value expressions
* print "foo" would generate: in 'write': not open for writing (IOError)
* $stdio evaluates to nil
* flock appears to fail on non-existant files (?) and says in the documentation "advisory" lock....
I might just throw this back into the Korn shell (called from ruby of course)
set -o noclobber
cat /dev/null 2> /dev/null > $1 && set +o noclobber
Here's what I have tried (with comments)
#!/opt/ruby/bin/ruby
class Lock < File
attr_accessor :locked, :lockdir, :lockfile
def initialize
@locked = false
@lockdir = "/var/spool/locks"
@lockfile = @lockdir + "/" + File.basename($0) + ".lock"
end
def Lock.new
# raise "Lockdir not set!" if @lockdir == nil;
raise "\$0 not set?!" if $0 == nil;
super ("/var/spool/locks" + "/" + File.basename($0) + ".lock", "w")
end
def unlock
raise "Lockfile not set!" if @lockfile == nil;
raise "Could not unlock!" if (File.unlink(@lockfile) == 1);
@locked = false
end
def lock (lockf = lockfile)
raise "Lockfile not set!" if @lockfile == nil;
# -- generates error:
# ./lock.rb:26:in `lock': Lockfile not set! (RuntimeError)
# from ./lock.rb:63
#
# Even after initializing!! (self.initialize)
@lockfile = lockf;
raise "Could not lock!" if ! @lockfile.flock(LOCK_EX|LOCK_NB)
@locked = true
end
def display_lock
# print "Current lock:\n\n"
# -- generates this error:
#
# ./lock.rb:29:in `write': not opened for writing (IOError)
# from ./lock.rb:29:in `print'
# from ./lock.rb:29:in `display_lock'
# from ./lock.rb:39
p @locked;
p @lockfile;
p @lockdir;
end
end
# mylock = Lock.new;
# -- generates this error:
#
# ./lock.rb:43:in `new': wrong # of arguments (0 for 1) (ArgumentError)
# from ./lock.rb:43
#
# Even though Lock.initialize has no parameters!
# Yes, I know File.new has one.... but not calling File.new but Lock.new right?
# If I redefine Lock.new this problem goes away.... but
# what problems does it create?
mylock = Lock.new;
mylock.display_lock
mylock.lock
mylock.display_lock
mylock.unlock
[....snip!....]
Also:
# ruby -v
ruby 1.4.3 (1999-12-08) [hppa1.1-hpux10.20]
# uname -a
HP-UX oursys B.10.20 A 9000/861 2016701434 two-user license
#
Thanks for all the help!