module ActiveScaffold::OrmChecks

Public Class Methods

active_record?(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 4
def active_record?(klass)
  return unless defined? ActiveRecord
  klass < ActiveRecord::Base
end
cast(klass, column_name, value) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 94
def cast(klass, column_name, value)
  if active_record? klass
    type_for_attribute(klass, column_name).cast value
  elsif mongoid? klass
    type_for_attribute(klass, column_name)&.evolve value
  end
end
column_type(klass, column_name) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 78
def column_type(klass, column_name)
  if active_record? klass
    type_for_attribute(klass, column_name).type
  elsif mongoid? klass
    type_for_attribute(klass, column_name)
  end
end
columns(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 30
def columns(klass)
  if active_record? klass
    klass.columns
  elsif mongoid? klass
    klass.fields.values
  else
    []
  end
end
columns_hash(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 40
def columns_hash(klass)
  if active_record? klass
    klass.columns_hash
  elsif mongoid? klass
    klass.fields
  else
    {}
  end
end
content_columns(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 60
def content_columns(klass)
  if active_record? klass
    klass.content_columns
  elsif mongoid? klass
    klass.fields.reject { |field, _| field == '_id' }.values
  else
    []
  end
end
default_value(klass, column_name) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 86
def default_value(klass, column_name)
  if ActiveScaffold::OrmChecks.mongoid? klass
    columns_hash(klass)[column_name]&.default_val
  elsif ActiveScaffold::OrmChecks.active_record? klass
    klass._default_attributes[column_name]&.value
  end
end
mongoid?(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 9
def mongoid?(klass)
  return unless defined? Mongoid
  klass < Mongoid::Document
end
quoted_table_name(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 26
def quoted_table_name(klass)
  klass.quoted_table_name if active_record? klass
end
reflect_on_all_associations(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 50
def reflect_on_all_associations(klass)
  if active_record? klass
    klass.reflect_on_all_associations
  elsif mongoid? klass
    klass.relations.values
  else
    []
  end
end
table_name(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 18
def table_name(klass)
  if active_record? klass
    klass.table_name
  elsif mongoid? klass
    klass.collection.name
  end
end
tableless?(klass) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 14
def tableless?(klass)
  klass < ActiveScaffold::Tableless
end
type_for_attribute(klass, column_name) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 70
def type_for_attribute(klass, column_name)
  if active_record? klass
    klass.type_for_attribute column_name.to_s
  elsif mongoid? klass
    klass.fields[column_name.to_s]&.type
  end
end

Public Instance Methods

cast(column_name, value) click to toggle source
# File lib/active_scaffold/orm_checks.rb, line 121
def cast(column_name, value)
  ActiveScaffold::OrmChecks.cast active_record_class, column_name, value
end