[#2332] Ruby-Python fusion? — mrilu <mrilu@...>
Usually I give some time for news to settle before I pass the word, but
7 messages
2000/04/01
[#2353] Re: Function of Array.filter surprises me — schneik@...
5 messages
2000/04/03
[#2361] crontab — Hugh Sasse Staff Elec Eng <hgs@...>
I want to have a program that may be run between certain times.
11 messages
2000/04/05
[#2375] Marshal: Want string out, but want depth specified? — Hugh Sasse Staff Elec Eng <hgs@...>
@encoded = [Marshal.dump(@decoded, , depth)].pack("m")
7 messages
2000/04/07
[#2378] Re: Marshal: Want string out, but want depth specified?
— matz@... (Yukihiro Matsumoto)
2000/04/07
Hi,
[#2376] Iterator into array — Dave Thomas <Dave@...>
15 messages
2000/04/07
[#2397] Could missing 'end' be reported better? — mrilu <mrilu@...>
I'm not sure one could easily parse, or moreover report, this error better.
5 messages
2000/04/08
[#2404] Re: Iterator into array — Andrew Hunt <andy@...>
>It's still possible to introduce a new syntax for collecting yielded
6 messages
2000/04/08
[#2412] Re: Could missing 'end' be reported better? — h.fulton@...
7 messages
2000/04/09
[#2414] Re: Could missing 'end' be reported better?
— matz@... (Yukihiro Matsumoto)
2000/04/09
Hi,
[#2429] Please join me, I'm Hashing documentation — mrilu <mrilu@...>
This is a story about my hashing ventures, try to bear with me.
5 messages
2000/04/10
[#2459] Precedence question — Dave Thomas <Dave@...>
7 messages
2000/04/12
[#2474] Ruby 1.4.4 — Yukihiro Matsumoto <matz@...>
Ruby 1.4.4 is out, check out:
5 messages
2000/04/14
[#2494] ANNOUNCE : PL/Ruby — ts <decoux@...>
7 messages
2000/04/17
[#2514] frozen behavior — Andrew Hunt <Andy@...>
7 messages
2000/04/19
[#2530] Re: 'in' vs. 'into' — Andrew Hunt <andy@...>
>Hmm, I've not decided yet. Here's the list of options:
6 messages
2000/04/20
[#2535] Default naming for iterator parameters — mrilu <mrilu@...>
I'm back at my computer after some traveling. I know I think Ruby
5 messages
2000/04/20
[#2598] different thread semantics 1.4.3 -> 1.4.4 — hipster <hipster@...4all.nl>
Hi fellow rubies,
4 messages
2000/04/28
[ruby-talk:02513] Re: Refering to another instance with a method
From:
Dave Thomas <Dave@...>
Date:
2000-04-19 18:20:16 UTC
List:
ruby-talk #2513
"David Douthitt" <DDouthitt@cuna.com> writes:
> I have a situation where I want to copy values from one instance to
> another with a particular method. Put another way, I want to set
> values in an instance to default values after the instance has been
> created. The default values may or may not be known at instance
> creation time.
Which version of Ruby are you using? With 1.5.3, you could use the new
class variables for this.
class MyClass
@@defaultWidth = 10
@@defaultColor = :red
attr_accessor :width, :color
# class methods to change the defaults
def MyClass.defaultWidth=(w)
@@defaultWidth = w
end
def MyClass.defaultColor=(c)
@@defaultColor = c
end
# instance method to reset instance variables
# to default values
def reset
@width = @@defaultWidth
@color = @@defaultColor
end
def initialize
reset
end
# other stuff
end
m = MyClass.new
p m
m.width = 100
m.color = :blue
p m
MyClass.defaultWidth = 20
m.reset
p m
With earlier Rubys, you can fake out the same effect using a class
constant that references (say) a Hash
class MyClass
DEFAULTS = { 'width' => 10, 'color' => :red }
attr_accessor :width, :color
# class methods to change the defaults
def MyClass.defaultWidth=(w)
DEFAULTS['width'] = w
end
def MyClass.defaultColor=(c)
DEFAULTS['color'] = c
end
# instance method to reset instance variables
# to default values
def reset
@width = DEFAULTS['width']
@color = DEFAULTS['color']
end
def initialize
reset
end
# other stuff
end
m = MyClass.new
p m
m.width = 100
m.color = :blue
p m
MyClass.defaultWidth = 20
m.reset
p m
> As a corollary to #2, tell me how these work (or don't):
>
class MyClass
myvar1 = "a"
@myvar2 = "b"
def method
p myvar1, @myvar2
end
end
This isn;t quite doing what you think it might. @myvar is indeed an
instance method, so it a new version is created for each instance.
myvar1 however is a local variable in the scope of the class
definition. Unlike the new class variables (@@myvar1), it is not
available to instances.
Regards
Dave