Module: Datasource::Adapters::ActiveRecord::DatasourceGenerator

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

Instance Method Summary collapse

Instance Method Details

#From(klass) ⇒ Object



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
# File 'lib/datasource/adapters/active_record.rb', line 302

def From(klass)
  if klass.ancestors.include?(::ActiveRecord::Base)
    Class.new(Datasource::Base) do
      attributes *klass.column_names
      associations *klass.reflections.keys

      define_singleton_method(:orm_klass) do
        klass
      end

      define_singleton_method(:default_adapter) do
        Datasource::Adapters::ActiveRecord
      end

      define_singleton_method(:primary_key) do
        klass.primary_key.to_sym
      end
    end
  else
    super if defined?(super)
  end
end