Sha256: 11d6237f2ec566319a209a24d14f29f620202c310e44891419157bbde9fcc50e

Contents?: true

Size: 995 Bytes

Versions: 11

Compression:

Stored size: 995 Bytes

Contents

module Alchemy
  module NodeDec

    extend ActiveSupport::Concern

    included do

      validates :custom_model_klass, presence: true, if: -> {
        url.blank? and not parent.nil?
      }

      before_validation :ensure_page_nil_if_custom_model, on: [:create, :update]
      before_validation :set_site, on: [:create], if: -> {site.nil?}

      def custom_model?
        !custom_model_klass.blank?
      end

      def klass_custom_model
        self.custom_model_klass.constantize
      end

      private

      def ensure_page_nil_if_custom_model
        if not url.blank? and !custom_model_klass_changed? and !custom_model_method_changed?
          self.custom_model_klass = nil
          self.custom_model_method = nil
        elsif !custom_model_klass.blank? and !url_changed?
          self.page = nil
          self.url = nil
        end

      end

      def set_site
        unless self.language.nil?
          self.site = language.site
        end
      end


    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
alchemy-custom-model-3.2 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.5 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.4 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.3 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.2 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.1 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.1.0 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-2.2.2 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-3.0.0 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-2.2.1 app/models/concerns/alchemy/node_dec.rb
alchemy-custom-model-2.2.0 app/models/concerns/alchemy/node_dec.rb