class Pickle::Config

Attributes

adapters[W]
factories[W]
mappings[W]
predicates[W]

Public Class Methods

new(&block) click to toggle source
# File lib/pickle/config.rb, line 5
def initialize(&block)
  configure(&block) if block_given?
end

Public Instance Methods

adapter_classes() click to toggle source
# File lib/pickle/config.rb, line 17
def adapter_classes
  adapters.map {|a| a.is_a?(Class) ? a : "pickle/adapter/#{a}".classify.constantize}
end
adapters() click to toggle source
# File lib/pickle/config.rb, line 13
def adapters
  @adapters ||= [:machinist, :factory_bot, :fabrication, :orm]
end
configure() { |self| ... } click to toggle source
# File lib/pickle/config.rb, line 9
def configure(&block)
  yield(self)
end
factories() click to toggle source
# File lib/pickle/config.rb, line 21
def factories
  @factories ||= adapter_classes.reverse.inject({}) do |factories, adapter|
    factories.merge(adapter.factories.inject({}){|h, f| h.merge(f.name => f)})
  end
end
map(*args) click to toggle source

Usage: map ‘me’, ‘myself’, ‘I’, :to => ‘user: “me”’

# File lib/pickle/config.rb, line 41
def map(*args)
  options = args.extract_options!
  raise ArgumentError, "Usage: map 'search' [, 'search2', ...] :to => 'replace'" unless args.any? && options[:to].is_a?(String)
  args.each do |search|
    self.mappings << Mapping.new(search, options[:to])
  end
end
mappings() click to toggle source
# File lib/pickle/config.rb, line 36
def mappings
  @mappings ||= []
end
predicates() click to toggle source
# File lib/pickle/config.rb, line 27
def predicates
  @predicates ||= Pickle::Adapter.model_classes.map do |k|
    k.public_instance_methods.select {|m| m =~ /\?$/} + Pickle::Adapter.column_names(k)
  end.flatten.uniq
end