Sha256: eac31b0069c38be9944f1cc61d182a44ed9198d74024cea52d9dd8367828b199
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module RShade # nodoc class Event attr_reader :hash, :skipped RETURN_EVENTS = [:return, :b_return, :c_return] def initialize(hash) @hash = hash end [:klass, :path, :lineno, :method_name, :vars, :level, :return_value].each do |method_name| define_method method_name do fetch method_name end end def with_level!(level) @hash[:level] = level self end def set_return_value!(return_value) @hash[:return_value] = return_value self end def with_serialized_return!(serializer) @hash[:return_value] = serializer.call(@hash[:return_value]) self end def with_serialized_vars!(serializer) @hash[:vars] = serializer.call(@hash[:vars]) self end def self.from_trace_point(evt) vars = {} evt.binding.local_variables.each do |var_name| vars[var_name] = evt.binding.local_variable_get var_name end hash = { path: evt.path, lineno: evt.lineno, klass: evt.defined_class, method_name: evt.method_id, vars: vars, event_type: evt.event } hash.merge!({return_value: evt.return_value}) if RETURN_EVENTS.include?(evt.event) new(hash) end def self.create_blank(level) new({level: level}, true) end private def fetch(key) @hash[key] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rshade-0.1.9 | lib/rshade/event.rb |