class Knish::Builder
Attributes
block[R]
collection_name[R]
Public Class Methods
new(collection_name, &block)
click to toggle source
# File lib/knish/builder.rb, line 5 def initialize(collection_name, &block) @collection_name = collection_name @block = block end
Public Instance Methods
add_collections(klass, collections)
click to toggle source
# File lib/knish/builder.rb, line 19 def add_collections(klass, collections) collections.each do |collection| klass.class_eval <<-RUBY, __FILE__, __LINE__ def #{collection} @#{collection} ||= Collection.new('#{collection}', config) end RUBY end end
config()
click to toggle source
# File lib/knish/builder.rb, line 29 def config model_config = ModelConfig.new(Knish.config.clone, collection_name) block.call(model_config) model_config end
make_model()
click to toggle source
# File lib/knish/builder.rb, line 10 def make_model klass = Class.new(Model) klass.config = config klass.send(:attr_accessor, *config.all_attributes) klass.send(:attr_writer, *config.collections) add_collections(klass, config.collections) klass end