Sha256: a71e4ccc65579be0ff89e45a40b34fd78d26be0a44b426388c68753b9fd39cd1

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

module Saasable::Railties
  module Helpers
    def self.included klass
      klass.extend ClassMethods
      klass.send(:include, InstanceMethods)
      klass.class_eval do
        helper_method :current_saas
        
        before_filter :_redirect_if_saas_not_found unless Rails.env.development?
        saas_not_found_redirect_to "/404.html"

        private
        def _skip_saasable
          current_saas.deactivate! if current_saas
        end
      end
    end

    module ClassMethods
      def saas_not_found_redirect_to path_or_url
        self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
          private
            def _redirect_if_saas_not_found
              unless current_saas
                redirect_to "#{path_or_url}"
              end
            end
        METHOD
      end

      def skip_saasable options
        skip_before_filter :_redirect_if_saas_not_found, options
        before_filter :_skip_saasable, options
      end
    end

    module InstanceMethods
      def current_saas
        @current_saas ||= request.env[:saasable][:current_saas]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
saasable-4.0.2 lib/saasable/railties/helpers.rb
saasable-4.0.1 lib/saasable/railties/helpers.rb
saasable-4.0.0 lib/saasable/railties/helpers.rb