class Bricolage::PSQLLoadOptions
Public Class Methods
new(opts = [])
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 448 def initialize(opts = []) @opts = opts end
parse(opts)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 403 def parse(opts) case opts when Hash then filter_values(opts) when String then parse_string(opts) # FIXME: remove else raise ParameterError, "unsupported value type for load options: #{opts.class}" end end
Private Class Methods
filter_values(opts)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 413 def filter_values(opts) list = [] opts.each do |key, value| case value when String, Integer, true, false, nil list.push Option.new(key.to_s, value) else raise ParameterError, "" end end new(list) end
parse_string(str)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 426 def parse_string(str) return new unless str list = [] str.split(',').each do |opt_pair| opt, value = opt_pair.strip.split('=', 2) list.push Option.new(opt, parse_value(value, opt)) end new(list) end
parse_value(value, opt)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 436 def parse_value(value, opt) case value when nil, 'true', true then true when 'false', false then false when /\A\d+\z/ then value.to_i when String then value else raise ParameterError, "unsupported load option value for #{opt}: #{value.inspect}" end end
Public Instance Methods
[]=(name, value)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 461 def []=(name, value) n = name.to_s delete n @opts.push Option.new(n, value) end
delete(name)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 467 def delete(name) @opts.reject! {|opt| opt.name == name } end
each(&block)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 457 def each(&block) @opts.each(&block) end
key?(name)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 452 def key?(name) n = name.to_s @opts.any? {|opt| opt.name == n } end
merge(pairs)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 471 def merge(pairs) h = {} @opts.each do |opt| h[opt.name] = opt end pairs.each do |key, value| h[key] = Option.new(key, value) end self.class.new(h.values) end
provide_defaults(src_ds)
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 490 def provide_defaults(src_ds) end
to_s()
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 482 def to_s buf = StringIO.new each do |opt| buf.puts opt end buf.string end