Module: Datasource::Adapters::ActiveRecord::ScopeExtensions

Defined in:
lib/datasource/adapters/active_record.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(mod) ⇒ Object



8
9
10
11
12
# File 'lib/datasource/adapters/active_record.rb', line 8

def self.extended(mod)
  mod.instance_exec do
    @datasource_info ||= { select: [], params: [] }
  end
end

Instance Method Details

#datasource_params(*args) ⇒ Object



24
25
26
27
# File 'lib/datasource/adapters/active_record.rb', line 24

def datasource_params(*args)
  @datasource_info[:params] += args
  self
end

#datasource_select(*args) ⇒ Object



19
20
21
22
# File 'lib/datasource/adapters/active_record.rb', line 19

def datasource_select(*args)
  @datasource_info[:select] += args
  self
end

#datasource_set(hash) ⇒ Object



14
15
16
17
# File 'lib/datasource/adapters/active_record.rb', line 14

def datasource_set(hash)
  @datasource_info.merge!(hash)
  self
end

#get_datasourceObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/datasource/adapters/active_record.rb', line 29

def get_datasource
  klass = @datasource_info[:datasource_class]
  datasource = klass.new(self)
  datasource.select(*@datasource_info[:select])
  datasource.params(*@datasource_info[:params])
  if @datasource_info[:serializer_class]
    select = []
    Datasource::Base.consumer_adapter.to_datasource_select(select, klass.orm_klass, @datasource_info[:serializer_class], nil, datasource.adapter)

    datasource.select(*select)
  end
  datasource
end