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



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/datasource/adapters/active_record.rb', line 203

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_method(:primary_key) do
        klass.primary_key.to_sym
      end
    end
  else
    super if defined?(super)
  end
end