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