class TorontoTraderLoader
INDEX_SYMBOL=2
STOCK_SYMBOL=1
@backTestDb=[‘backtestBackTest’, ‘user’,‘pass’]
def initialize(backTesting)
@exchanges=@industries=@sectors=@stocksymbols=''
@dbcon=DbAccess.new(@backTestDb)
loadLookup
end
def initialize()
@exchanges=@industries=@sectors=@stocksymbols=''
loaddbConn
loadLookup
end
…
I get the following error and it is so odd
irb(main):001:0> require ‘TorontoTraderLoader’
=> true
irb(main):002:0> a=TorontoTraderLoader.new(‘ww’)
ArgumentError: wrong number of arguments (1 for 0)
from (irb):2:in `initialize’
from (irb):2
It does not make any sense. i have a overloaded constructor. i am not
sure why it does not call teh overloaded constructor
end
sure why it does not call teh overloaded constructor
There is no such thing as overloading in Ruby. Your second definition
is cancelling the first one. Try to run this with ruby -w, and you’ll
get a warning…
=> true
irb(main):002:0> a=TorontoTraderLoader.new(‘ww’)
ArgumentError: wrong number of arguments (1 for 0)
from (irb):2:in `initialize’
from (irb):2
It does not make any sense. i have a overloaded constructor. i am not
No, you redefined it. No overloading in Ruby (because “Duck Typing”)
sure why it does not call teh overloaded constructor
Maybe
def initialize(backTesting = nil)
@exchanges=@industries=@sectors=@stocksymbols=’’
if backTesting.nil?
@dbcon=DbAccess.new(@backTestDb)
else
loaddbConn
end
loadLookup
end
is more the kind of think you want, but in the first method you
don’t seem to use the param backTesting anyway.
It does not make any sense. i have a overloaded constructor. i am not
sure why it does not call teh overloaded constructor
There is no such thing as overloading in Ruby. Your second definition
is cancelling the first one. Try to run this with ruby -w, and you’ll
get a warning…
Ruby is not C++ !
Vince
It’s too bad Ruby does not allow overloaded methods. It makes more
sense,
IMHO, in this case to have two constructors, each of which perform two
different ‘functions’, rather than having if/else/case statements inside
the constructor with default arguments.