class Bricolage::DataSourceFactory
Constants
- BUILTIN_TYPES
- DATA_SOURCE_FILE_NAME_1
- DATA_SOURCE_FILE_NAME_2
- PASSWORD_FILE_NAME
Public Class Methods
load(context, logger)
click to toggle source
# File lib/bricolage/datasource.rb, line 14 def DataSourceFactory.load(context, logger) loader = Loader.new(context, logger) loader.load_passwords(PASSWORD_FILE_NAME) begin return loader.load(DATA_SOURCE_FILE_NAME_1) rescue DataSourceFileNotExist return loader.load(DATA_SOURCE_FILE_NAME_2) end end
new(configs, context, logger)
click to toggle source
# File lib/bricolage/datasource.rb, line 53 def initialize(configs, context, logger) @configs = configs @context = context @logger = logger end
Public Instance Methods
[](name)
click to toggle source
Ruby API
# File lib/bricolage/datasource.rb, line 73 def [](name) if BUILTIN_TYPES.include?(name) return DataSource.new_for_type(name, name, {}, @context, @logger) end conf = config(name) type = conf.delete(:type) DataSource.new_for_type(type, name, conf, @context, @logger) end
get(kind, name)
click to toggle source
For job classes
# File lib/bricolage/datasource.rb, line 62 def get(kind, name) if BUILTIN_TYPES.include?(kind) return DataSource.new_for_type(kind, kind, {}, @context, @logger) end entry_name = name || kind conf = config(entry_name) type = conf.delete(:type) DataSource.new_for_type(type, entry_name, conf, @context, @logger) end
Private Instance Methods
canonicalize(config)
click to toggle source
# File lib/bricolage/datasource.rb, line 89 def canonicalize(config) h = {} config.each do |k, v| h[k.intern] = v end h end
config(key)
click to toggle source
# File lib/bricolage/datasource.rb, line 84 def config(key) ent = @configs[key] or raise ParameterError, "no such data source entry: #{key}" canonicalize(ent) end