module Datasource::Adapters::ActiveRecord::Model::ClassMethods
Public Instance Methods
datasource_module(&block)
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 117 def datasource_module(&block) default_datasource.instance_exec(&block) end
default_datasource()
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 109 def default_datasource @default_datasource ||= begin "#{name}Datasource".constantize rescue NameError Datasource::From(self) end end
for_serializer(serializer_class = nil)
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 75 def for_serializer(serializer_class = nil) if Datasource::Base.default_consumer_adapter.nil? fail Datasource::Error, "No serializer adapter loaded, see the active_loaders gem." end serializer_class ||= Datasource::Base.default_consumer_adapter.get_serializer_for( Adapters::ActiveRecord.scope_to_class(all)) scope = scope_with_datasource_ext(serializer_class.use_datasource) scope.datasource_set(serializer_class: serializer_class) end
upgrade_for_serializer(records, serializer_class = nil, datasource_class = nil) { |scope| ... }
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 90 def upgrade_for_serializer(records, serializer_class = nil, datasource_class = nil) scope = with_datasource(datasource_class).for_serializer(serializer_class) records = Array(records) pk = scope.datasource_get(:datasource_class).primary_key.to_sym if primary_keys = records.map(&pk) scope = scope.where(pk => primary_keys.compact) end scope = yield(scope) if block_given? datasource = scope.get_datasource if datasource.can_upgrade?(records) datasource.upgrade_records(records) else scope.to_a end end
with_datasource(datasource_class = nil)
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 86 def with_datasource(datasource_class = nil) scope_with_datasource_ext(datasource_class) end
Private Instance Methods
scope_with_datasource_ext(datasource_class = nil)
click to toggle source
# File lib/datasource/adapters/active_record.rb, line 122 def scope_with_datasource_ext(datasource_class = nil) if all.respond_to?(:datasource_set) if datasource_class all.datasource_set(datasource_class: datasource_class) else all end else datasource_class ||= default_datasource all.extending(ScopeExtensions) .datasource_set(datasource_class: datasource_class) end end