using hash for method parameters

A

aidy

#hi,

#I have a login class

class Login

def with:)username, :password)
login.username.set:)username)
login.password.set:)password)
end
end

#now in my invocation, I would like to do something like this,

login = Login.new
login.with:)username => 'aidy', :password => 'aidy1')

#but I am ensure of my syntax

#regards

#aidy
 
R

Roseanne Zhang

aidy said:
#hi,

#but I am ensure of my syntax

#regards

#aidy

Are you creating your new language?

Try the following:

class Login

def with(username, password)
@username = username
@password = password
end
end

#now in my invocation, I would like to do something like this,

login = Login.new
login.with("abc", "def")
p login
 
A

aidy.lewis

Try the following:

class Login

def with(username, password)
@username = username
@password = password
end
end


login = Login.new
login.with("abc", "def")
p login
Thanks for the post, but I am trying to explicitly name the parameters
in the call, by attempting to use symbols and a hash, to make things a
little more readable.

So, I would like my call to contain something like this:

login = Login.new
login.with:)username => 'aidy', :password => 'aidy1')

cheers

aidy
 
M

Morton Goldberg

#hi,

#I have a login class

class Login

def with:)username, :password)
login.username.set:)username)
login.password.set:)password)
end
end

#now in my invocation, I would like to do something like this,

login = Login.new
login.with:)username => 'aidy', :password => 'aidy1')

#but I am ensure of my syntax

You could do it with

<code>
class Login
def with(params)
@username = params[:username]
@password = params[:password]
end
end

login = Login.new
login.with:)username => 'aidy', :password => 'aidy1')
login.inspect # => "#<Login:0x24090 @password=\"aidy1\", @username=
\"aidy\">"
</code>

but I'd go with

<code>
class Login
def initialize(params)
@username = params[:username]
@password = params[:password]
end
end

login = Login.new:)username => 'aidy', :password => 'aidy1')
login.inspect # => "#<Login:0x23d48 @password=\"aidy1\", @username=
\"aidy\">"
</code>

as being simpler.

Regards, Morton
 
M

Mariusz Pękala

--cNdxnHkX5QqsyA0e
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Thanks for the post, but I am trying to explicitly name the parameters
in the call, by attempting to use symbols and a hash, to make things a
little more readable.
=20
So, I would like my call to contain something like this:
=20
login =3D Login.new
login.with:)username =3D> 'aidy', :password =3D> 'aidy1')
=20

You can use something like this:

def with params =3D {}
params.each do |key,value|
m =3D "#{key}=3D"
self.send(m, value) if self.respond_to?(m)
end
end

but you should build-in additional checks which will filter out possibly
unsafe assignments, which you would not want here.

Another thing, you may want to call it 'initialize', to be able to use:

login =3D Login.new :username =3D> 'username', :password =3D> 'pass'

BTW this is similiar to how ActiveRecord works.

--=20
No virus found in this outgoing message.
Checked by 'grep -i virus $MESSAGE'
Trust me.

T=C4=99dy przebiegli, =C5=BCaden z nich krok=C3=B3w nie szcz=C4=99dzi=C5=82
m=C4=99=C5=BCny ten, co ucieka=C5=82, m=C4=99=C5=BCniejszy, co p=C4=99dzi=
=C5=82.
-- Homer, Iliada.

Ceterum censeo Internet Explorer esse delendam.

I have tried to Google this question, but Google said:
"Application error, Rails application failed to start properly"

() The ASCII Ribbon Campaign - against HTML Email,
/\ vCards, and proprietary formats.

--cNdxnHkX5QqsyA0e
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7-ecc0.1.6 (GNU/Linux)

iD8DBQFGXqdJsnU0scoWZKARAjSRAJkBd6Z2o8icVk/vX6tqcX2k4r7GcgCeMJue
QFH0+qbZtTiREJODbC3Ox80=
=Cc00
-----END PGP SIGNATURE-----

--cNdxnHkX5QqsyA0e--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top