Sha256: 06e542efdc8773fb148cb685563567cd2923e9f4972ef06266f01491635fa628
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
module Neoid class ModelConfig attr_reader :properties attr_reader :search_options attr_reader :relationship_options attr_accessor :enable_model_index attr_accessor :auto_index def initialize(klass) @klass = klass end def stored_fields @stored_fields ||= {} end def field(name, &block) stored_fields[name] = block end def relationship(options) @relationship_options = options end def search(&block) raise 'search needs a block' unless block_given? @search_options = SearchConfig.new block.call(@search_options) end def inspect "#<Neoid::ModelConfig @properties=#{properties.inspect} @search_options=#{@search_options.inspect}>" end end class SearchConfig def index_fields @index_fields ||= {} end def fulltext_fields @fulltext_fields ||= {} end def index(field, options = {}, &block) index_fields[field] = options.merge(block: block) end def fulltext(field, options = {}, &block) fulltext_fields[field] = options.merge(block: block) end def inspect "#<Neoid::SearchConfig @index_fields=#{index_fields.inspect} @fulltext_fields=#{fulltext_fields.inspect}>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
neoid-0.2.1 | lib/neoid/model_config.rb |
neoid-0.2.0 | lib/neoid/model_config.rb |