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