Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Ruby Programming Language

using hash for method parameters


#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

aidy wrote:
> #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

--
Posted via http://www.ruby-forum.com/.

On 30 May, 18:17, Roseanne Zhang <rosea@javaranch.com> wrote:

> 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

On May 30, 2007, at 12:10 PM, aidy wrote:

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

You could use something like:

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

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

Haven't tested this but it gives the general idea.

Gary Thomas

On 2007-05-31 02:35:08 +0900 (Thu, May), aidy.le@googlemail.com wrote:

You can use something like this:

def with params = {}
  params.each do |key,value|
    m = "#{key}="
    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 = Login.new :username => 'username', :password => 'pass'

BTW this is similiar to how ActiveRecord works.

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

T dy przebiegli, aden z nich krokw nie szcz dzi
m ny ten, co ucieka , m niejszy, co p dzi .
                                -- 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.

  application_pgp-signature_part
1K Download

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc