Module: PowerAssert

Defined in:
lib/power_assert.rb,
lib/power_assert/parser.rb,
lib/power_assert/context.rb,
lib/power_assert/version.rb,
lib/power_assert/inspector.rb,
lib/power_assert/configuration.rb,
lib/power_assert/enable_tracepoint_events.rb

Constant Summary collapse

VERSION =
"2.0.3"

Class Method Summary collapse

Class Method Details

.app_caller_locationsObject



48
49
50
# File 'lib/power_assert.rb', line 48

def app_caller_locations
  caller_locations.drop_while {|i| internal_file?(i.path) }.take_while {|i| ! internal_file?(i.path) }
end

.app_context?Boolean

Returns:

  • (Boolean)


52
53
54
55
# File 'lib/power_assert.rb', line 52

def app_context?
  top_frame = caller_locations.drop_while {|i| i.path.start_with?(POWER_ASSERT_LIB_DIR) }.first
  top_frame and ! internal_file?(top_frame.path)
end

.configurationObject



3
4
5
# File 'lib/power_assert/configuration.rb', line 3

def configuration
  @configuration ||= Configuration[false, true, false, :p]
end

.configure {|configuration| ... } ⇒ Object

Yields:



7
8
9
# File 'lib/power_assert/configuration.rb', line 7

def configure
  yield configuration
end

.start(assertion_proc_or_source, assertion_method: nil, source_binding: TOPLEVEL_BINDING) {|BlockContext.new(assertion_proc_or_source, assertion_method, source_binding)| ... } ⇒ Object

Yields:

  • (BlockContext.new(assertion_proc_or_source, assertion_method, source_binding))


30
31
32
33
34
35
# File 'lib/power_assert.rb', line 30

def start(assertion_proc_or_source, assertion_method: nil, source_binding: TOPLEVEL_BINDING)
  if respond_to?(:clear_global_method_cache, true)
    clear_global_method_cache
  end
  yield BlockContext.new(assertion_proc_or_source, assertion_method, source_binding)
end

.trace(frame) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'lib/power_assert.rb', line 37

def trace(frame)
  begin
    raise 'Byebug is not started yet' unless Byebug.started?
  rescue NameError
    raise "PowerAssert.#{__method__} requires Byebug"
  end
  ctx = TraceContext.new(frame._binding)
  ctx.enable
  ctx
end