Module: Nonnative::Cucumber

Defined in:
lib/nonnative/cucumber.rb

Overview

Lazily installs the Cucumber integration once the Cucumber Ruby DSL is ready.

Requiring ‘nonnative` outside a running Cucumber environment should not fail, but when Cucumber does finish booting its support-code registry this installer still needs to register the hooks and step definitions defined here.

Defined Under Namespace

Modules: Assertions, LanguageHook, LifecycleSteps, ProxySteps, Registration, WorldHooks

Class Method Summary collapse

Class Method Details

.bootstrap!Object



201
202
203
204
205
206
207
208
209
# File 'lib/nonnative/cucumber.rb', line 201

def bootstrap!
  return if @bootstrapped

  dsl_singleton = ::Cucumber::Glue::Dsl.singleton_class
  dsl_singleton.prepend(LanguageHook) unless dsl_singleton.ancestors.include?(LanguageHook)

  @bootstrapped = true
  install!
end

.install!Object



211
212
213
214
215
216
217
# File 'lib/nonnative/cucumber.rb', line 211

def install!
  return if @installed
  return unless ready?

  Registration.install!
  @installed = true
end