Class/Module Index [+]

Quicksearch

Spec::Example::ExampleGroupFactory::ClassMethods

Public Instance Methods

[](key) click to toggle source
# File lib/spec/example/example_group_factory.rb, line 61
def [](key)
  @example_group_types[key]
end
create_example_group(*args, &block) click to toggle source
# File lib/spec/example/example_group_factory.rb, line 27
def create_example_group(*args, &block)
  raise ArgumentError if args.empty? || block.nil?
  add_options(args)
  superclass = determine_superclass(args.last)
  superclass.describe(*args, &block)
end
default(example_group_class) click to toggle source

Sets the default ExampleGroup class

# File lib/spec/example/example_group_factory.rb, line 53
def default(example_group_class)
  Spec.__send__ :remove_const, :ExampleGroup if Spec.const_defined?(:ExampleGroup)
  Spec.const_set(:ExampleGroup, example_group_class)
  old = @example_group_types
  @example_group_types = Hash.new(example_group_class)
  @example_group_types.merge!(old) if old
end
example_group_creation_listeners() click to toggle source
# File lib/spec/example/example_group_factory.rb, line 13
def example_group_creation_listeners
  @example_group_creation_listeners ||= []
end
register(key, example_group_class) click to toggle source

Registers an example group class klass with the symbol type. For example:

Spec::Example::ExampleGroupFactory.register(:farm, FarmExampleGroup)

With that you can append a hash with :type => :farm to the describe method and it will load an instance of FarmExampleGroup.

describe Pig, :type => :farm do
  ...

If you don’t use the hash explicitly, describe will implicitly use an instance of FarmExampleGroup for any file loaded from the ./spec/farm directory.

# File lib/spec/example/example_group_factory.rb, line 48
def register(key, example_group_class)
  @example_group_types[key.to_sym] = example_group_class
end
register_example_group(klass) click to toggle source
# File lib/spec/example/example_group_factory.rb, line 17
def register_example_group(klass)
  example_group_creation_listeners.each do |listener|
    listener.register_example_group(klass)
  end
end
reset() click to toggle source
# File lib/spec/example/example_group_factory.rb, line 8
def reset
  @example_group_types = nil
  default(ExampleGroup)
end

Protected Instance Methods

determine_superclass(opts) click to toggle source
# File lib/spec/example/example_group_factory.rb, line 67
def determine_superclass(opts)
  if type = opts[:type]
    self[type]
  elsif opts[:location] =~ /spec(\\|\/)(#{@example_group_types.keys.sort_by{|k| k.to_s.length}.reverse.join('|')})/
    self[$2 == '' ? nil : $2.to_sym]
  else
    self[nil]
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.