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



221
222
223
224
225
226
227
228
229
# File 'lib/nonnative/cucumber.rb', line 221

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



231
232
233
234
235
236
237
# File 'lib/nonnative/cucumber.rb', line 231

def install!
  return if @installed
  return unless ready?

  Registration.install!
  @installed = true
end