Class: Naught::NullClassBuilder::Commands::Traceable

Inherits:
Naught::NullClassBuilder::Command show all
Defined in:
lib/naught/null_class_builder/commands/traceable.rb

Instance Attribute Summary

Attributes inherited from Naught::NullClassBuilder::Command

#builder

Instance Method Summary collapse

Methods inherited from Naught::NullClassBuilder::Command

#defer, #initialize

Constructor Details

This class inherits a constructor from Naught::NullClassBuilder::Command

Instance Method Details

#callObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/naught/null_class_builder/commands/traceable.rb', line 5

def call
  defer do |subject|
    subject.module_eval do
      attr_reader :__file__, :__line__

      def initialize(options = {})
        range = (RUBY_VERSION.to_f == 1.9 && RUBY_PLATFORM != 'java') ? 4 : 3
        backtrace = options.fetch(:caller) { Kernel.caller(range) }
        @__file__, line, _ = backtrace[0].split(':')
        @__line__ = line.to_i
      end
    end
  end
end