Class: Wallaby::ActiveRecord::ModelDecorator::FieldsBuilder
- Inherits:
-
Object
- Object
- Wallaby::ActiveRecord::ModelDecorator::FieldsBuilder
- Defined in:
- lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb,
lib/adaptors/wallaby/active_record/model_decorator/fields_builder/sti_builder.rb,
lib/adaptors/wallaby/active_record/model_decorator/fields_builder/association_builder.rb,
lib/adaptors/wallaby/active_record/model_decorator/fields_builder/polymorphic_builder.rb
Overview
To search and build the metadata for fields
Defined Under Namespace
Classes: AssociationBuilder, PolymorphicBuilder, StiBuilder
Instance Method Summary collapse
-
#association_fields ⇒ Hash<String, Hash>
A hash for general fields.
-
#general_fields ⇒ Hash<String, Hash>
A hash for general fields.
-
#initialize(model_class) ⇒ FieldsBuilder
constructor
A new instance of FieldsBuilder.
Constructor Details
#initialize(model_class) ⇒ FieldsBuilder
Returns a new instance of FieldsBuilder.
8 9 10 |
# File 'lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb', line 8 def initialize(model_class) @model_class = model_class end |
Instance Method Details
#association_fields ⇒ Hash<String, Hash>
Returns a hash for general fields.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb', line 26 def association_fields @model_class.reflections.each_with_object({}) do |(name, ref), fields| = { name: name, type: ref.macro.to_s, label: @model_class.human_attribute_name(name) } association_builder.update(, ref) polymorphic_builder.update(, ref) fields[name] = end end |
#general_fields ⇒ Hash<String, Hash>
Returns a hash for general fields.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb', line 13 def general_fields @model_class.columns.each_with_object({}) do |column, fields| = { name: column.name, type: column.type.to_s.freeze, label: @model_class.human_attribute_name(column.name) } sti_builder.update(, column) fields[column.name] = end end |