module EmojiTestLove

Constants

VERSION

Public Class Methods

RSpecFormatter(display_provider, formatter_name = display_provider.class.name) click to toggle source
# File lib/emoji_test_love/rspec/rspec_integration.rb, line 47
def self.RSpecFormatter(display_provider, formatter_name = display_provider.class.name)
  base                       = new_formatter display_provider
  formatter_name, namespaces = *split_by_namespace(formatter_name)
  scope                      = ensure_namespace_exists namespaces
  formatter_class_name       = "%sFormatter"%formatter_name

  scope.const_set(formatter_class_name, base)
end

Private Class Methods

ensure_namespace_exists(namespaces) click to toggle source
# File lib/emoji_test_love/rspec/rspec_integration.rb, line 67
def self.ensure_namespace_exists(namespaces)
  namespaces.inject(self) do |scope, name|
    scope.const_set(name, Module.new) unless scope.const_defined?(name, false)

    scope.const_get(name, false)
  end
end
new_formatter(delegator) click to toggle source
# File lib/emoji_test_love/rspec/rspec_integration.rb, line 63
def self.new_formatter(delegator)
  Class.new(RSpecIntegration).tap{ |base| base.display_provider = delegator }
end
split_by_namespace(formatter_name) click to toggle source
# File lib/emoji_test_love/rspec/rspec_integration.rb, line 58
def self.split_by_namespace(formatter_name)
  namespaces = formatter_name.split('::')
  [namespaces.pop, namespaces]
end