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_get(key) ⇒ Object



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

def datasource_get(key)
  @datasource_info[key]
end

#datasource_params(*args) ⇒ Object



28
29
30
31
# File 'lib/datasource/adapters/active_record.rb', line 28

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

#datasource_select(*args) ⇒ Object



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

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

#datasource_set(hash) ⇒ Object



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

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

#get_datasourceObject



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/datasource/adapters/active_record.rb', line 33

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_info[:serializer_class].datasource_adapter.to_datasource_select(select, klass.orm_klass, @datasource_info[:serializer_class], nil, datasource.adapter, datasource)

    datasource.select(*select)
  end
  datasource
end