class Katapult::Model
Constants
- MissingLabelAttributeError
- UnknownAttributeError
Attributes
_belongs_tos[RW]
attrs[RW]
belongs_tos[RW]
has_manys[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
Katapult::Element::new
# File lib/katapult/elements/model.rb, line 15 def initialize(*args) self.attrs = [] self._belongs_tos = [] self.belongs_tos = [] self.has_manys = [] super end
Public Instance Methods
add_foreign_key_attrs(belongs_tos)
click to toggle source
# File lib/katapult/elements/model.rb, line 62 def add_foreign_key_attrs(belongs_tos) belongs_tos.each do |other_model| attr "#{ other_model.name :variable }_id", type: :foreign_key, assignable_values: "#{ other_model.name(:class) }.all.to_a", allow_blank: true, associated_model: other_model end end
attr(attr_name, options = {})
click to toggle source
DSL
# File lib/katapult/elements/model.rb, line 25 def attr(attr_name, options = {}) options[:model] = self attrs << Attribute.new(attr_name, options) end
belongs_to(model_name)
click to toggle source
DSL
# File lib/katapult/elements/model.rb, line 31 def belongs_to(model_name) application_model.association name, belongs_to: model_name end
db_fields()
click to toggle source
# File lib/katapult/elements/model.rb, line 46 def db_fields attrs.reject(&:skip_db) end
editable_attrs()
click to toggle source
# File lib/katapult/elements/model.rb, line 54 def editable_attrs attrs.select &:editable? end
label_attr()
click to toggle source
# File lib/katapult/elements/model.rb, line 36 def label_attr renderable_attrs.first.presence or raise MissingLabelAttributeError end
label_attr?()
click to toggle source
# File lib/katapult/elements/model.rb, line 40 def label_attr? label_attr.present? rescue MissingLabelAttributeError false end
render(options = {})
click to toggle source
# File lib/katapult/elements/model.rb, line 71 def render(options = {}) Generators::ModelGenerator.new(self, options).invoke_all end
renderable_attrs()
click to toggle source
# File lib/katapult/elements/model.rb, line 50 def renderable_attrs attrs.select &:renderable? end
required_attrs()
click to toggle source
# File lib/katapult/elements/model.rb, line 58 def required_attrs attrs.select &:required? end