DEFAULT = {
host_name: 'a_default_host_name',
db_name: 'a_default_db_name',
userid: 'a_default_userid',
password: 'a_default_password',
}
def connect_to_oracle( opts = {} )
opts = DEFAULT.dup.updatemerge(opts)
host_name = opts[:host_name]
db_name = opts[:db_name]
userid = opts[:userid]
password = opts[:password]
url = "jdbc:oracle:thin:#{userid}/#{password}@#{host_name}:1521:#{db_name}"
$db = Sequel.connect(url)
end
DEFAULT = {
host_name: 'a_default_host_name',
db_name: 'a_default_db_name',
userid: 'a_default_userid',
password: 'a_default_password',
}
def connect_to_oracle( interface_opts = {} )
opts = DEFAULT.dup.updatemerge(interface_opts )
url = "jdbc:oracle:thin:%s/%s@%s:1521:%s" % [
opts[:userid],
opts[:password],
opts[:host_name],
opts[:db_name],
]
$db = Sequel.connect(url)
end
connect_to_oracle()
connect_to_oracle(:host_name => :xxxxxxxx)
Remark: The dup
is necessary. Else you modify the DEFAULT.
I prefer the version with update
. So I get a constant with all default parameters in my documentation.
DEFAULT = {
host_name: 'a_default_host_name',
db_name: 'a_default_db_name',
userid: 'a_default_userid',
password: 'a_default_password',
}
def connect_to_oracle( myopts = {} )
(myopts.keys - DEFAULT.keys).each{|key|
puts "Undefined key #{key.inspect}"
}
opts = DEFAULT.dup.updatemerge(myopts)
url = "jdbc:oracle:thin:%s/%s@%s:1521:%s" % [
opts[:userid],
opts[:password],
opts[:host_name],
opts[:db_name],
]
#~ $db = Sequel.connect(url)
end
connect_to_oracle(:host_nam => :xxxxxxxx)