class Bricolage::DataSource
Constants
- CLASSES
Attributes
context[R]
logger[R]
name[R]
Public Class Methods
get_class(type)
click to toggle source
# File lib/bricolage/datasource.rb, line 119 def DataSource.get_class(type) unless CLASSES[type.to_s] begin require "bricolage/#{type}datasource" rescue LoadError raise ParameterError, "no such data source type: #{type}" end raise FatalError, "DataSource class does not exist: #{type}" unless CLASSES[type.to_s] end CLASSES[type.to_s] end
new_for_type(type, name, config, context, logger)
click to toggle source
# File lib/bricolage/datasource.rb, line 99 def DataSource.new_for_type(type, name, config, context, logger) ds = get_class(type).new(**config) ds.__send__ :initialize_base, name, context, logger ds rescue ArgumentError => err # FIXME: do not rely on error message ent = err.message.slice(/unknown keyword: (\S+)/, 1) or raise raise ParameterError, "unknown config entry in database.yml: #{name}.#{ent}" end
Private Class Methods
declare_type(type)
click to toggle source
# File lib/bricolage/datasource.rb, line 114 def declare_type(type) CLASSES[type.to_s] = self end
Public Instance Methods
open() { |nil| ... }
click to toggle source
# File lib/bricolage/datasource.rb, line 142 def open yield nil end
open_for_batch(&block)
click to toggle source
# File lib/bricolage/datasource.rb, line 146 def open_for_batch(&block) open(&block) end
redshift_loader_source?()
click to toggle source
# File lib/bricolage/psqldatasource.rb, line 151 def redshift_loader_source? false end
Private Instance Methods
initialize_base(name, context, logger)
click to toggle source
# File lib/bricolage/datasource.rb, line 131 def initialize_base(name, context, logger) @name = name @context = context @logger = logger end