class Rails_helper

Attributes

controller[RW]

Public Class Methods

current_controller() click to toggle source
# File lib/rails_helper.rb, line 118
def Helper.current_controller
  Current.controller
end
dependencies() click to toggle source
# File lib/rails_helper.rb, line 6
def Helper.dependencies
  {
    'rails_current'             => [ 'rails_current',             ' >= 1.0' ],
    'rails_default_url_options' => [ 'rails_default_url_options', ' >= 1.0' ]
  }
end
helpers=(*args) click to toggle source
# File lib/rails_helper.rb, line 64
def Helper.helpers=(*args)
  :noop
end
mock_controller() click to toggle source

see ./actionpack/test/controller/caching_test.rb OUCH!

# File lib/rails_helper.rb, line 71
def Helper.mock_controller
  require 'rails'
  require 'action_controller'
  require 'action_dispatch/testing/test_request.rb'
  require 'action_dispatch/testing/test_response.rb'

  store = ActiveSupport::Cache::MemoryStore.new

  controller = mock_controller_class.new
  controller.perform_caching = true
  controller.cache_store = store

  request = ActionDispatch::TestRequest.new
  response = ActionDispatch::TestResponse.new

  controller.request = request
  controller.response = response

  singleton_class =
    class << controller
      self
    end

  singleton_class.module_eval do
    define_method(:default_url_options) do
      @default_url_options ||= (
        defined?(DefaultUrlOptions) ? DefaultUrlOptions.dup : {}
      )
    end
  end

  controller
end
mock_controller_class() click to toggle source
# File lib/rails_helper.rb, line 105
def Helper.mock_controller_class
  unless const_defined?(:Controller)
    controller_class =
      if defined?(::ApplicationController)
        Class.new(::ApplicationController)
      else
        Class.new(::ActionController::Base)
      end
    const_set(:Controller, controller_class)
  end
  return const_get(:Controller)
end
new(*args, &block) click to toggle source
# File lib/rails_helper.rb, line 13
def Helper.new(*args, &block)
  options = args.extract_options!.to_options!
  controllers, args = args.partition{|arg| ActionController::Base === arg}
  controller = controllers.first || Helper.current_controller || Helper.mock_controller

  controller_class = controller.send(:class)

  helpers = args
  helpers.push(nil) if helpers.empty?

  helpers.flatten!
  helpers.uniq!

  modules = []

  helpers.each do |mod|
    case mod
      when NilClass, :all, 'all'
        controller_class.send(:all_application_helpers).each do |name|
          file_name  = name.to_s.underscore + '_helper'
          mod = file_name.camelize.constantize
          modules.push(mod)
        end
      when Module
        modules.push(mod)
      else
        raise(ArgumentError, mod.inspect)
    end
  end

  view_class =
    Class.new(self) do
      modules.each do |mod|
        include mod
      end
      self.helpers = helpers
    end

  view_class.allocate.tap do |helper|
    helper.send(:initialize, context=nil, assigns={}, controller, formats=nil)
    helper
  end
end
new(*args, &block) click to toggle source
# File lib/rails_helper.rb, line 60
def initialize(*args, &block)
  :noop
end
version() click to toggle source
# File lib/rails_helper.rb, line 2
def Helper.version
  '2.2.2'
end

Public Instance Methods

_routes() click to toggle source
# File lib/rails_helper.rb, line 122
def _routes
  Rails.application.routes
end
default_url_options() click to toggle source
# File lib/rails_helper.rb, line 126
def default_url_options
  defined?(DefaultUrlOptions) ? DefaultUrlOptions : {}
end
session() click to toggle source
# File lib/rails_helper.rb, line 130
def session
  controller.session
end