module Erlash::Testing

Public Class Methods

messages_path() click to toggle source
# File lib/erlash/testing.rb, line 27
def self.messages_path
  @messages_path
end
messages_path=(path) click to toggle source
# File lib/erlash/testing.rb, line 23
def self.messages_path=(path)
  @messages_path = path
end

Public Instance Methods

erlash_messages_path() click to toggle source
# File lib/erlash/testing.rb, line 31
def erlash_messages_path
  @erlash_messages_path ||= Pathname.new(Erlash::Testing.messages_path)
end
expected_message(name, message = nil, &block) click to toggle source
# File lib/erlash/testing.rb, line 35
def expected_message(name, message = nil, &block)
  filename = erlash_filename(name)
  file_exists = File.exists?(filename)
  if message
    if file_exists
      raise OverrideFileNotAllowedError, { filename: filename }
    else
      File.open(filename, 'w') { |f| f.write(message) }
      raise FileAlreadyWrittenError, { filename: filename }
    end
  else
    if file_exists
      block.call(File.read(filename))
    else
      raise MessageNotRegisteredError, { filename: filename }
    end
  end
end

Private Instance Methods

erlash_filename(input) click to toggle source
# File lib/erlash/testing.rb, line 56
def erlash_filename(input)
  erlash_messages_path.join("#{input}.error")
end