Module: Croods::Resource::Model

Defined in:
lib/croods/resource/model.rb

Instance Method Summary collapse

Instance Method Details

#configure_searchObject



20
21
22
23
24
25
26
27
# File 'lib/croods/resource/model.rb', line 20

def configure_search
  return unless table_exists?

  model.send(:include, PgSearch::Model)
  model.send(:pg_search_scope,
             search_method_name,
             search_options)
end

#create_model!Object



29
30
31
32
33
34
35
36
37
# File 'lib/croods/resource/model.rb', line 29

def create_model!
  Object.const_set(model_name, Class.new(Croods::Model))

  configure_search unless model.resource.skip_search?

  model_blocks.each do |block|
    model.instance_eval(&block)
  end
end

#extend_model(&block) ⇒ Object



6
7
8
9
10
# File 'lib/croods/resource/model.rb', line 6

def extend_model(&block)
  return unless block

  model_blocks << block
end

#modelObject



16
17
18
# File 'lib/croods/resource/model.rb', line 16

def model
  model_name.constantize
end

#model_blocksObject



12
13
14
# File 'lib/croods/resource/model.rb', line 12

def model_blocks
  @model_blocks ||= []
end

#table_exists?Boolean

Returns:

  • (Boolean)


39
40
41
42
43
# File 'lib/croods/resource/model.rb', line 39

def table_exists?
  ActiveRecord::Base.connection.table_exists? route_name
rescue ActiveRecord::NoDatabaseError
  false
end