What about this one?
For your help Greek words translation:
ypoxrewsi=duty
topos=place
diarkeia=duration
skopos=subject
hmera=day(date)
wra=time
emfanisi=print
Thanks so much for helping me.
> I am not trying sth special.I am testing language features that I
> use with Java.
>
> I was trying to use initialize more than once (think Java-default
> constructor, other with one argument etc...)
>
> Example with Java:
>
> public class Rectangle
> {
> public int a,b;
> public Rectangle()
> {
> a=0;
> b=0;
> }
> public Rectangle(int c,int d)
> {
> a=c;
> b=d;
> }
> }
> So I tried:
> class Rectangle
> def initialize
> @a=0
> @b=0
> end
>
> def initialize(c,d)
> @a=c
> @b=d
> end
> end
class Rectangle
def initialize(a = 0, b = 0)
@a = a
@b = b
end
end
That will work very well for you.
You can do any number of other things like this that I find work as
well or better than actual argument overloading, mostly because Ruby
is dynamically typed.
What I would do is just use 'one' constructor,
def initialize(topos, diarkeia, skopos, hmera, wra)
@topos, @diarkeia, @skopos = topos, diarkeia, skopos
@hmera, @wra = hmera, wra
end
and do this:
e = Ypoxrewsi.new("Spiti", 1, "Ruby", Pdate.new(21,2,2005), Ptime.new(18,2))
a = Pdate.new(21,2,2005)
b = Ptime.new(18,2)
f = Ypoxrewsi.new("Spiti", 1, "Ruby", a, b)
You could also use named arguments like this:
require "TimeDateTools"
include MyTools
class Ypoxrewsi
def initialize(topos, diarkeia, skopos, hsh)
# Normal assignments, always present
@topos, @diarkeia, @skopos = topos, diarkeia, skopos
# Extract the rest from hash (assumes all necessary are given).
if hsh.has_key? :hmera
@hmera, @wra = hsh[:hmera], hsh[:wra]
else
@hmera = Pdate.new(hsh[:day], hsh[:month], hsh[:year])
@wra = Ptime.new(hsh[:hour], hsh[:minute])
end
end
# ...
end
c = Ypaxrewsi.new("Livadeia", 2, "Syskepsi",
:day => 25, :month => 8, :year => 1983,
:hour => 19, :minute => 30)
c.emfanisi
a = Pdate.new(21,2,2005)
b = Ptime.new(18,2)
d = Ypoxrewsi.new("Spiti", 1,"Ruby",
:hmera => a, :wra => b)
d.emfanisi
-austin
--
Austin Ziegler * halostatue@gmail.com
* Alternate: austin@halostatue.ca
E
···
On Mon, February 21, 2005 10:17 pm, Panagiotis Karvounis said:
On Tue, 22 Feb 2005 07:08:44 +0900, Austin Ziegler <halostatue@gmail.com> > wrote:
On Tue, 22 Feb 2005 07:01:59 +0900, Panagiotis Karvounis >> <pkarvou@gmail.com> wrote: