Module: Mimi::DB::Dictate::DSL
- Defined in:
- lib/mimi/db/dictate/dsl.rb
Instance Method Summary collapse
-
#field(name, opts = {}) ⇒ Object
Declares a field on a model.
-
#index(columns, opts = {}) ⇒ Object
Declares and index on one or several columns.
- #schema_definition ⇒ Object
Instance Method Details
#field(name, opts = {}) ⇒ Object
Declares a field on a model
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mimi/db/dictate/dsl.rb', line 17 def field(name, opts = {}) opts = opts.dup # alter model behaviour based on field properties if opts[:default].is_a?(Proc) field_setup_default(name, opts[:default]) opts.delete(:default) end # register field in the schema schema_definition.field(name, opts) end |
#index(columns, opts = {}) ⇒ Object
Declares and index on one or several columns
38 39 40 |
# File 'lib/mimi/db/dictate/dsl.rb', line 38 def index(columns, opts = {}) schema_definition.index(columns, opts) end |
#schema_definition ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/mimi/db/dictate/dsl.rb', line 42 def schema_definition unless self.respond_to?(:table_name) raise 'Mimi::DB::Dictate.schema_definition() expects .table_name, not invoked on a Model?' end Mimi::DB::Dictate.schema_definitions[table_name] ||= Mimi::DB::Dictate::SchemaDefinition.new(table_name) end |