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