class Shokkenki::Provider::Model::Provider

Attributes

fixtures[R]
http_client[RW]
name[R]

Public Class Methods

new(name) click to toggle source
# File lib/shokkenki/provider/model/provider.rb, line 12
def initialize name
  @name = name
  @fixtures = []
end

Public Instance Methods

add_fixture(name_pattern, fixture) click to toggle source
# File lib/shokkenki/provider/model/provider.rb, line 17
def add_fixture name_pattern, fixture
  @fixtures << Fixture.new(name_pattern, fixture)
end
establish(required_fixtures) click to toggle source
# File lib/shokkenki/provider/model/provider.rb, line 21
def establish required_fixtures
  required_fixtures.each do |required_fixture|
    fixtures = @fixtures.select {|f| f.matches?(required_fixture) }
    assert_single_match! required_fixture, fixtures
    fixtures.first.establish required_fixture
  end
end

Private Instance Methods

assert_single_match!(required_fixture, fixtures) click to toggle source
# File lib/shokkenki/provider/model/provider.rb, line 31
def assert_single_match! required_fixture, fixtures
  if fixtures.length > 1
    fixture_names = fixtures.map(&:name).join(', ')
    raise "Multiple fixtures found to match '#{required_fixture.name}' (#{fixture_names}): Do you need to make your fixture matchers stricter?"
  end

  if fixtures.length == 0
    raise "No fixture found to match '#{required_fixture.name}': Did you define one in the provider configuration?"
  end
end