Sha256: d9a6b3da2a01614f6d4f46a073aa435cfce2b45b19f3a140b2dd77d607fe9ec1
Contents?: true
Size: 1.45 KB
Versions: 11
Compression:
Stored size: 1.45 KB
Contents
module Klastera::Concerns::Organization extend ActiveSupport::Concern included do serialize :cluster_config has_many :clusters validates :use_cluster_as, inclusion: { in: ::Cluster::MODES.map{|m|m.to_s}, message: I18n.t('klastera.clusters.wrong_option') }, if: proc{ use_cluster_as.present? } # Return a symbol version of use_cluster_as value def cluster_mode self.use_cluster_as.to_s.to_sym end def cluster_cardinality_of(entity, default: :many) if cluster_config.is_a?(Hash) entities_cardinality = cluster_config[:entities]&.[](:cardinality)||{} entity = entity.to_s.to_sym if entities_cardinality.has_key?(entity) default = entities_cardinality[entity] end end default.to_s.to_sym end ## # Return a boolean if one of three of options was set in organization # As useless option you can retrieve the value passing false as argument. # ## def is_in_cluster_mode?(return_the_mode=false) is_active = cluster_mode.present? && ::Cluster::MODES.include?(cluster_mode) ( return_the_mode ? ( is_active ? cluster_mode : false ) : is_active ) end def required_suborganization_mode? cluster_mode == ::Cluster::REQUIRED_MODE end def optional_suborganization_mode? cluster_mode == ::Cluster::OPTIONAL_MODE end end module ClassMethods def cluster_params [ :use_cluster_as ] end end end
Version data entries
11 entries across 11 versions & 1 rubygems