Sha256: 4bd6362bdd9845f54449070d1ac4cb7d9b7e5a54a873ebf770cb6e7883fe0eb2

Contents?: true

Size: 503 Bytes

Versions: 1

Compression:

Stored size: 503 Bytes

Contents

module Casino
  class Document

    def initialize(key, question_names)
      @key = key
      @question_names = Array question_names
    end

    def compose
      klass = Class.new
      klass.send :include, Mongoid::Document
      klass.store_in collection: @key
      assign_fields klass
      klass
    end

    private

    def assign_fields klass
      @question_names.each do |name|
        name = String(name).parameterize.underscore.to_sym
        klass.field name
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid-casino-0.0.4 lib/casino/document.rb