class Shokkenki::Provider::Model::Fixture

Public Class Methods

new(name_pattern, establisher) click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 6
def initialize name_pattern, establisher
  @name_pattern = name_pattern
  @establisher = establisher
  validate!
end

Public Instance Methods

establish(required_fixture) click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 20
def establish required_fixture
  match = match(required_fixture)
  if match
    arguments = {
      :arguments => required_fixture.arguments,
      :match => match
    }
    @establisher.call arguments
  end
end
matches?(required_fixture) click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 16
def matches? required_fixture
  !match(required_fixture).nil?
end
name() click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 12
def name
  @name_pattern.inspect
end

Private Instance Methods

match(required_fixture) click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 33
def match required_fixture
  @name_pattern.match required_fixture.name
end
validate!() click to toggle source
# File lib/shokkenki/provider/model/fixture.rb, line 37
def validate!
  message = "Fixture establisher for name pattern #{@name_pattern.inspect} must only accept zero or one argument."
  raise message unless @establisher.arity <= 1
end