Class: Cucumber::Wire::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/wire/plugin.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, registry) ⇒ Plugin

Returns a new instance of Plugin.



15
16
17
18
# File 'lib/cucumber/wire/plugin.rb', line 15

def initialize(config, registry)
  @config = config
  @registry = registry
end

Class Method Details

.installed?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/cucumber/wire/plugin.rb', line 11

def self.installed?
  @@installed ||= false
end

Instance Method Details

#create_connection(wire_file) ⇒ Object



29
30
31
# File 'lib/cucumber/wire/plugin.rb', line 29

def create_connection(wire_file)
  Connection.new(Configuration.from_file(wire_file))
end

#installObject



20
21
22
23
24
25
26
27
# File 'lib/cucumber/wire/plugin.rb', line 20

def install
  connections = Connections.new(wire_files.map { |f| create_connection(f) }, config, registry)
  config.filters << Filters::ActivateSteps.new(StepMatchSearch.new(connections.method(:step_matches), @config), @config)
  config.filters << AddHooksFilter.new(connections) unless @config.dry_run?
  config.register_snippet_generator Snippet::Generator.new(connections)

  @@installed = true
end

#wire_filesObject



33
34
35
36
# File 'lib/cucumber/wire/plugin.rb', line 33

def wire_files
  # TODO: change Cucumber's config object to allow us to get this information
  config.send(:require_dirs).map { |dir| Dir.glob("#{dir}/**/*.wire") }.flatten
end