From: Robert Klemme Date: 2007-10-20T21:25:01+09:00 Subject: Re: hash map during the creation of a new class instance? On 20.10.2007 14:11, aidy.lewis@googlemail.com wrote: > Hi Robert > > On 20 Oct, 04:46, Robert Klemme wrote: >> On 20.10.2007 13:22, aidy.le...@googlemail.com wrote: >> >> >>> Is it possible to use a hash map during the creation of a new class >>> instance? >> >>> E.g. >> >>> Test_Case_1.new(test = {:name => 'case_1'}) >> >> And what should this do? > > I was thiking of passing meaningful data into a test case class I have > > class Test_Case_1 > def initialize() #not sure as yet as to what to enter here > > log.detail_test_case(test[:name], .....]) > > I dont want to hard code the data into the class, and was thinking of > passing test data during initialisation. I could then initialise the > class x number of times with different test data. > > > >> >>> If so, what would the syntax be in the class initialisation method >> >>> class Test_Case_1 >>> def initialize(test[:name]) ? >> >> As with every method you can this syntax for invoking methods: >> >> >> irb(main):001:0> def foo(h) h end >> => nil >> irb(main):002:0> foo(:name => "hello", :age => 22) >> => {:name=>"hello", :age=>22} > > So, I can put a placeholder in this method > > def initialize(x) "x" is called a "parameter". http://en.wikipedia.org/wiki/Parameter_%28computer_science%29 In your case you can simply do def initialize(test) log.detail_test_case(test[:name], .....]) end And then tc = TestCase1.new(:name => "test 1", :run => 1) >> It depends on what you want to do how you would implement initialize here. >> > My aim is put put test data somewhere meaningful, but for the tests > to be easily read. > > log.detail_test_case(test[:name], test[:description]) > browser.goto(test[:url]) > >> Kind regards >> >> >> robert >> >> > Your advice is highly appreciated. > > aidy Cheers robert