Sha256: 9264a1dcb433d1885846df760f810f7c8f1096bb0fcd1a1706104a6136595b95

Contents?: true

Size: 951 Bytes

Versions: 3

Compression:

Stored size: 951 Bytes

Contents

require 'happy/request'
require 'happy/context/helpers'

module Happy
  class Context
    include Helpers

    attr_reader   :request, :previous_path, :remaining_path
    attr_accessor :layout, :controller, :response
    delegate      :params, :session, :to => :request

    def initialize(request, response)
      @request    = request
      @response   = response
      @remaining_path = @request.path.split('/').reject {|s| s.blank? }
      @previous_path = []
      @layout     = nil
      @controller = nil
    end

    def with_controller(new_controller)
      # remember previous controller
      old_controller = self.controller
      self.controller = new_controller

      # execute block
      yield
    ensure
      # switch back to previous controller
      self.controller = old_controller
    end

  private

    class << self
      def from_env(env)
        new(Happy::Request.new(env), Rack::Response.new)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
happy-0.1.0.pre16 lib/happy/context.rb
happy-0.1.0.pre15 lib/happy/context.rb
happy-0.1.0.pre14 lib/happy/context.rb