Sha256: 6f594c35cd2486784adbb4de094872b6cf99aaf2e62daadbb1f01d6ce6d014a3

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require "phenomenal"
require "phenomenal_rails/context"
require "phenomenal_rails/middleware"
require "phenomenal_rails/engine"
require "singleton"
require "phenomenal_rails/resolver"

# Set default context as persistent
phen_default_context.persistent=true

module PhenomenalRails
  def self.load_dir(path)
    if Dir.exist? path
      Dir.entries(path).each do |entry|
        if entry!="." && entry !=".."
          filepath=File.join(path,entry)
          if File.file?(filepath) && entry.match(/.*\.rb/)
            load filepath 
          elsif File.directory?(filepath)
            load_dir(filepath)
          end
        end
      end
    end
  end
  
  ActionDispatch::Callbacks.before do
    phen_defined_contexts.reverse.each do |context|
      if !context.forgotten && (!context.persistent || !Rails.configuration.cache_classes)
        while phen_context_active?(context) do
          phen_deactivate_context(context) 
        end
        # Fix problem without page caching
        if !Rails.configuration.cache_classes
          phen_forget_context(context)
        end
      end
    end
    if !Rails.configuration.cache_classes
      PhenomenalRails.load_dir("#{Rails.root}/app/contexts")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
phenomenal_rails-1.0.0 lib/phenomenal_rails.rb