class Expect

Public Class Methods

new(value, klass, self_klass, spec_statement, des_statement) click to toggle source
# File lib/pidgin_spec/expect.rb, line 5
def initialize(value, klass, self_klass, spec_statement, des_statement)
  @klass = klass
  @value = value
  @des_statement = des_statement
  @spec_statement = spec_statement
  @self_klass = self_klass
end

Public Instance Methods

go(matcher) click to toggle source
# File lib/pidgin_spec/expect.rb, line 13
def go(matcher)
  
  if matcher.matches?(@value)
    @klass.pass_count += 1
  else
    @klass.fail_count += 1
    @klass.failure_messages << {
      description: "#{@des_statement} #{@spec_statement}",
       message: matcher.failure_message,
       failed_code: failed_code(caller_locations[0]),
       failed_code_path: "#{caller_locations[0].path.to_s}:#{caller_locations[0].lineno.to_s}"
      }
    @self_klass.passed = false
  end
end
no_go(matcher) click to toggle source
# File lib/pidgin_spec/expect.rb, line 29
def no_go(matcher)
  if !matcher.matches?(@value)
    @klass.pass_count += 1
  else
    @klass.fail_count += 1
    @klass.failure_messages << {
      description: "#{@des_statement} #{@spec_statement}",
       message: matcher.failure_message_when_negated,
       failed_code: failed_code(caller_locations[0]),
       failed_code_path: "#{caller_locations[0].path.to_s}:#{caller_locations[0].lineno.to_s}"
      }
    @self_klass.passed = false
  end
end

Private Instance Methods

failed_code(caller_trace) click to toggle source
# File lib/pidgin_spec/expect.rb, line 45
def failed_code(caller_trace)
  File.readlines(caller_trace.absolute_path)[caller_trace.lineno - 1].strip
end