Sha256: 4f37ed9143d58c0819ecf9c5e337427381765b7addb9099e12462f58483bed71
Contents?: true
Size: 1.89 KB
Versions: 20
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true module Tramway::Core::Associations::ObjectHelper def class_name(association) if association.polymorphic? object.send(association.name).class else unless association.options[:class_name] Tramway::Error.raise_error( :tramway, :core, :associations, :object_helper, :please_specify_association_name, association_name: association.name, object_class: object.class, association_class_name: association.name.to_s.singularize.camelize ) end association.options[:class_name] end end def check_association(object, association_name, association) return unless association.nil? Tramway::Error.raise_error( :tramway, :core, :associations, :class_helper, :model_does_not_have_association, object_class: object.class, association_name: association_name ) end def association_type(association) association.class.to_s.split('::').last.sub(/Reflection$/, '').underscore.to_sym end def associations_collection(object, association_name, decorator_class_name) object.send(association_name).map do |association_object| decorator_class_name.decorate association_object end end def add_association_form_class_name(object, association_name) form_class = "Admin::#{object.class.to_s.pluralize}::Add#{association_name.to_s.camelize.singularize}Form" begin form_class.constantize rescue StandardError Tramway::Error.raise_error( :tramway, :core, :associations, :object_helper, :habtm_add_class_not_defined, class: form_class, association_name: association_name ) end end def association_has_one_without_object(object, association_name, association_type) association_type == :has_one && object.send(association_name).nil? end def association_object(object, association_name) object.send association_name end end
Version data entries
20 entries across 20 versions & 1 rubygems