module Spectre::Mixin

Public Class Methods

also(desc, with: [])
Alias for: run
mixin(desc, &block) click to toggle source
# File lib/spectre/mixin.rb, line 9
def mixin desc, &block
  @@mixins[desc] = block
end
run(desc, with: []) click to toggle source
# File lib/spectre/mixin.rb, line 13
def run desc, with: []
  raise "no mixin with desc '#{desc}' defined" unless @@mixins.key? desc
  Spectre::Logger.log_debug "running mixin '#{desc}'"

  params = with || {}

  if params.is_a? Array
    @@mixins[desc].call *params
  elsif params.is_a? Hash
    @@mixins[desc].call OpenStruct.new(params)
  else
    @@mixins[desc].call params
  end
end
Also aliased as: also, step
step(desc, with: [])
Alias for: run