Module: Spinach::FeatureSteps::Capybara

Defined in:
lib/spinach/capybara.rb

Overview

Spinach’s capybara module makes Capybara DSL available in all features.

Examples:

require 'spinach/capybara'
class CapybaraFeature < Spinach::FeatureSteps
  Given "I go to the home page" do
    visit '/'
  end
end

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object

Enhances a FeatureSteps with Capybara goodness.

Parameters:

  • base (Class)

    The host class.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/spinach/capybara.rb', line 25

def self.included(base)
  base.class_eval do
    include ::Capybara::DSL
    if defined?(RSpec)
      require 'rspec/matchers'
      require 'capybara/rspec'
      include ::Capybara::RSpecMatchers
    end

    def visit(*args)
      stream = STDOUT
      old_stream = stream.dup
      stream.reopen(null_device)
      stream.sync = true
      super
    ensure
      stream.reopen(old_stream)
    end

    def null_device
      return @null_device if defined?(@null_device)

      if RbConfig::CONFIG["host_os"] =~ /mingw|mswin/
        @null_device = "NUL"
      else
        @null_device = "/dev/null"
      end

      @null_device
    end
  end
end