Module: Datasource::Adapters::ActiveRecord::Model::ClassMethods
- Defined in:
- lib/datasource/adapters/active_record.rb
Instance Method Summary collapse
- #datasource_module(&block) ⇒ Object
- #default_datasource ⇒ Object
- #for_serializer(serializer_class = nil) ⇒ Object
- #upgrade_for_serializer(records, serializer_class = nil, datasource_class = nil) ⇒ Object
- #with_datasource(datasource_class = nil) ⇒ Object
Instance Method Details
#datasource_module(&block) ⇒ Object
117 118 119 |
# File 'lib/datasource/adapters/active_record.rb', line 117 def datasource_module(&block) default_datasource.instance_exec(&block) end |
#default_datasource ⇒ Object
109 110 111 112 113 114 115 |
# 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) ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# 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) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# 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) ⇒ Object
86 87 88 |
# File 'lib/datasource/adapters/active_record.rb', line 86 def with_datasource(datasource_class = nil) scope_with_datasource_ext(datasource_class) end |