Sha256: 0b607405282297927b091606062a8ab211cf3174510c76c6f02d52c42a22fe80
Contents?: true
Size: 1.62 KB
Versions: 3
Compression:
Stored size: 1.62 KB
Contents
# frozen_string_literal: true require_relative 'model/collections' require_relative 'model/dirty' require_relative 'model/enhancements' require_relative 'model/filtering' require_relative 'model/indexable' require_relative 'model/iri' require_relative 'model/iri_mapping' require_relative 'model/serialization' require_relative 'model/sorting' module LinkedRails module Model extend ActiveSupport::Concern include Collections include Dirty include Enhancements include Filtering include Indexable include Iri include IriMapping include Serialization include Sorting def build_child(klass, user_context: nil) klass.build_new(parent: self, user_context: user_context) end def singular_resource? false end module ClassMethods def build_new(parent: nil, user_context: nil) new(attributes_for_new(parent: parent, user_context: user_context)) end def form_class @form_class ||= "#{name}Form".safe_constantize || superclass.try(:form_class) end def label obj = iri.is_a?(Array) ? iri.first : iri LinkedRails.translate(:class, :label, obj) if obj end def plural_label obj = iri.is_a?(Array) ? iri.first : iri LinkedRails.translate(:class, :plural_label, obj) if obj end def policy_class @policy_class ||= "#{name}Policy".safe_constantize || superclass.try(:policy_class) end private def attribute_from_filter(filter, predicate) filter[predicate]&.first if filter end def attributes_for_new(_opts) {} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
linked_rails-0.0.3 | lib/linked_rails/model.rb |
linked_rails-0.0.2 | lib/linked_rails/model.rb |
linked_rails-0.0.1 | lib/linked_rails/model.rb |