module Sp2db::ImportStrategy

Public Instance Methods

add(label, strategy=nil, &block) click to toggle source

Add strategy

# File lib/sp2db/import_strategy.rb, line 7
def add label, strategy=nil, &block
  strategy ||= Class.new(Base)
  strategy.class_eval(&block) if block_given?
  strategies[label.to_sym] = strategy
end
labels() click to toggle source
# File lib/sp2db/import_strategy.rb, line 22
def labels
  strategies.keys.map(&:to_sym)
end
strategies() click to toggle source

@!strategies [ro] strategies

# File lib/sp2db/import_strategy.rb, line 14
def strategies
  @strategies ||= {}.with_indifferent_access
end
strategy_by_name(name) click to toggle source
# File lib/sp2db/import_strategy.rb, line 18
def strategy_by_name name
  strategies[name.to_s] || raise("Invalid import strategy: #{name}")
end
valid!(s) click to toggle source
# File lib/sp2db/import_strategy.rb, line 26
def valid! s
  raise "Unsuported strategies" unless labels.include?(s.to_sym)
  true
end