Module: ActiveScaffold::OrmChecks
- Included in:
- Config::Core, DataStructures::Column, DataStructures::Sorting
- Defined in:
- lib/active_scaffold/orm_checks.rb
Class Method Summary collapse
- .active_record?(klass) ⇒ Boolean
- .cast(klass, column_name, value) ⇒ Object
- .column_type(klass, column_name) ⇒ Object
- .columns(klass) ⇒ Object
- .columns_hash(klass) ⇒ Object
- .content_columns(klass) ⇒ Object
- .default_value(klass, column_name) ⇒ Object
- .mongoid?(klass) ⇒ Boolean
- .quoted_table_name(klass) ⇒ Object
- .reflect_on_all_associations(klass) ⇒ Object
- .table_name(klass) ⇒ Object
- .tableless?(klass) ⇒ Boolean
- .type_for_attribute(klass, column_name) ⇒ Object
Instance Method Summary collapse
Class Method Details
.active_record?(klass) ⇒ Boolean
6 7 8 9 10 |
# File 'lib/active_scaffold/orm_checks.rb', line 6 def active_record?(klass) return false unless defined? ActiveRecord klass < ActiveRecord::Base end |
.cast(klass, column_name, value) ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/active_scaffold/orm_checks.rb', line 98 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) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/active_scaffold/orm_checks.rb', line 82 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) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/active_scaffold/orm_checks.rb', line 34 def columns(klass) if active_record? klass klass.columns elsif mongoid? klass klass.fields.values else [] end end |
.columns_hash(klass) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/active_scaffold/orm_checks.rb', line 44 def columns_hash(klass) if active_record? klass klass.columns_hash elsif mongoid? klass klass.fields else {} end end |
.content_columns(klass) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/active_scaffold/orm_checks.rb', line 64 def content_columns(klass) if active_record? klass klass.content_columns elsif mongoid? klass klass.fields.except('_id').values else [] end end |
.default_value(klass, column_name) ⇒ Object
90 91 92 93 94 95 96 |
# File 'lib/active_scaffold/orm_checks.rb', line 90 def default_value(klass, column_name) if ActiveScaffold::OrmChecks.mongoid? klass columns_hash(klass)[column_name.to_s]&.default_val elsif ActiveScaffold::OrmChecks.active_record? klass klass._default_attributes[column_name.to_s]&.value end end |
.mongoid?(klass) ⇒ Boolean
12 13 14 15 16 |
# File 'lib/active_scaffold/orm_checks.rb', line 12 def mongoid?(klass) return false unless defined? Mongoid klass < Mongoid::Document end |
.quoted_table_name(klass) ⇒ Object
30 31 32 |
# File 'lib/active_scaffold/orm_checks.rb', line 30 def quoted_table_name(klass) klass.quoted_table_name if active_record? klass end |
.reflect_on_all_associations(klass) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/active_scaffold/orm_checks.rb', line 54 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) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/active_scaffold/orm_checks.rb', line 22 def table_name(klass) if active_record? klass klass.table_name elsif mongoid? klass klass.collection.name end end |
.tableless?(klass) ⇒ Boolean
18 19 20 |
# File 'lib/active_scaffold/orm_checks.rb', line 18 def tableless?(klass) klass < ActiveScaffold::Tableless end |
.type_for_attribute(klass, column_name) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/active_scaffold/orm_checks.rb', line 74 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 |
Instance Method Details
#cast(column_name, value) ⇒ Object
125 126 127 |
# File 'lib/active_scaffold/orm_checks.rb', line 125 def cast(column_name, value) ActiveScaffold::OrmChecks.cast active_record_class, column_name, value end |