Class: Metka::Model

Inherits:
Module
  • Object
show all
Defined in:
lib/metka/model.rb

Constant Summary collapse

TAGGED_WITH_OPTIONS =
%i[any exclude join_operator on].freeze

Instance Method Summary collapse

Constructor Details

#initialize(columns:, **options) ⇒ Model

Returns a new instance of Model.



16
17
18
19
20
21
22
23
24
# File 'lib/metka/model.rb', line 16

def initialize(columns:, **options)
  @columns = columns.dup.freeze
  @options = options.dup.freeze

  unknown = index_tables.keys - @columns
  if unknown.any?
    raise ArgumentError, "index_tables declared for unknown columns #{unknown.inspect}, expected #{@columns.inspect}"
  end
end

Instance Method Details

#included(base) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/metka/model.rb', line 26

def included(base)
  define_column_scopes(base)
  define_tagged_with_scope(base)
  define_index_tables(base)
  define_tag_clouds(base)
  define_tag_list_accessors(base)
end