module Datasource::Adapters::Sequel::ScopeExtensions

Public Class Methods

extended(mod) click to toggle source
# File lib/datasource/adapters/sequel.rb, line 7
def self.extended(mod)
  mod.instance_exec do
    @datasource_info ||= { select: [], params: [] }
  end
end

Public Instance Methods

datasource_get(key) click to toggle source
# File lib/datasource/adapters/sequel.rb, line 13
def datasource_get(key)
  @datasource_info[key]
end
datasource_params(*args) click to toggle source
# File lib/datasource/adapters/sequel.rb, line 27
def datasource_params(*args)
  @datasource_info[:params] += args
  self
end
datasource_select(*args) click to toggle source
# File lib/datasource/adapters/sequel.rb, line 22
def datasource_select(*args)
  @datasource_info[:select] += args
  self
end
datasource_set(hash) click to toggle source
# File lib/datasource/adapters/sequel.rb, line 17
def datasource_set(hash)
  @datasource_info.merge!(hash)
  self
end
each(&block) click to toggle source
Calls superclass method
# File lib/datasource/adapters/sequel.rb, line 46
def each(&block)
  if @datasource_info[:datasource_class]
    datasource = get_datasource

    datasource.results.each(&block)
  else
    super
  end
end
get_datasource() click to toggle source
# File lib/datasource/adapters/sequel.rb, line 32
def get_datasource
  klass = @datasource_info[:datasource_class]
  datasource = klass.new(self)
  datasource.select(*Array(@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