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
4 5 6 7 8 |
# File 'lib/active_scaffold/orm_checks.rb', line 4 def active_record?(klass) return false unless defined? ActiveRecord klass < ActiveRecord::Base end |
.cast(klass, column_name, value) ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/active_scaffold/orm_checks.rb', line 96 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
80 81 82 83 84 85 86 |
# File 'lib/active_scaffold/orm_checks.rb', line 80 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
32 33 34 35 36 37 38 39 40 |
# File 'lib/active_scaffold/orm_checks.rb', line 32 def columns(klass) if active_record? klass klass.columns elsif mongoid? klass klass.fields.values else [] end end |
.columns_hash(klass) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/active_scaffold/orm_checks.rb', line 42 def columns_hash(klass) if active_record? klass klass.columns_hash elsif mongoid? klass klass.fields else {} end end |
.content_columns(klass) ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'lib/active_scaffold/orm_checks.rb', line 62 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
88 89 90 91 92 93 94 |
# File 'lib/active_scaffold/orm_checks.rb', line 88 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
10 11 12 13 14 |
# File 'lib/active_scaffold/orm_checks.rb', line 10 def mongoid?(klass) return false unless defined? Mongoid klass < Mongoid::Document end |
.quoted_table_name(klass) ⇒ Object
28 29 30 |
# File 'lib/active_scaffold/orm_checks.rb', line 28 def quoted_table_name(klass) klass.quoted_table_name if active_record? klass end |
.reflect_on_all_associations(klass) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/active_scaffold/orm_checks.rb', line 52 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
20 21 22 23 24 25 26 |
# File 'lib/active_scaffold/orm_checks.rb', line 20 def table_name(klass) if active_record? klass klass.table_name elsif mongoid? klass klass.collection.name end end |
.tableless?(klass) ⇒ Boolean
16 17 18 |
# File 'lib/active_scaffold/orm_checks.rb', line 16 def tableless?(klass) klass < ActiveScaffold::Tableless end |
.type_for_attribute(klass, column_name) ⇒ Object
72 73 74 75 76 77 78 |
# File 'lib/active_scaffold/orm_checks.rb', line 72 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
123 124 125 |
# File 'lib/active_scaffold/orm_checks.rb', line 123 def cast(column_name, value) ActiveScaffold::OrmChecks.cast active_record_class, column_name, value end |