rshade 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/Gemfile.lock +23 -22
- data/README.md +74 -19
- data/lib/rshade/binding_serializer.rb +35 -0
- data/lib/rshade/config/store.rb +38 -0
- data/lib/rshade/config.rb +71 -0
- data/lib/rshade/core_extensions/object/reveal.rb +8 -0
- data/lib/rshade/event.rb +39 -14
- data/lib/rshade/event_observer.rb +45 -0
- data/lib/rshade/event_processor.rb +35 -0
- data/lib/rshade/event_tree.rb +75 -0
- data/lib/rshade/filter/abstract_filter.rb +26 -0
- data/lib/rshade/filter/default.rb +28 -0
- data/lib/rshade/filter/exclude_path_filter.rb +24 -0
- data/lib/rshade/filter/filter_builder.rb +28 -0
- data/lib/rshade/filter/filter_composition.rb +57 -0
- data/lib/rshade/filter/include_path_filter.rb +43 -0
- data/lib/rshade/filter/variable_filter.rb +33 -0
- data/lib/rshade/formatter/file.rb +6 -6
- data/lib/rshade/formatter/html.rb +9 -7
- data/lib/rshade/formatter/json.rb +14 -15
- data/lib/rshade/formatter/stdout.rb +3 -3
- data/lib/rshade/formatter/string.rb +17 -11
- data/lib/rshade/trace.rb +19 -39
- data/lib/rshade/trace_observable.rb +40 -0
- data/lib/rshade/version.rb +1 -1
- data/lib/rshade.rb +18 -20
- data/rshade.gemspec +1 -1
- metadata +22 -13
- data/lib/rshade/base.rb +0 -13
- data/lib/rshade/configuration.rb +0 -43
- data/lib/rshade/event_serializer.rb +0 -41
- data/lib/rshade/event_store.rb +0 -23
- data/lib/rshade/filter/app_filter.rb +0 -20
- data/lib/rshade/storage.rb +0 -4
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
module RShade
|
3
|
-
class EventSerializer < Base
|
4
|
-
attr_reader :evt, :level
|
5
|
-
SERIALIZE_CLASSES = [NilClass, TrueClass, FalseClass, Numeric, Time, Date, String, Symbol, Array]
|
6
|
-
def initialize(evt, level)
|
7
|
-
@evt = evt
|
8
|
-
@level = level
|
9
|
-
end
|
10
|
-
|
11
|
-
def call
|
12
|
-
{ level: @level, path: evt.path, lineno: evt.lineno, klass: evt.defined_class, method_name: evt.method_id, vars: process_locals(evt) }
|
13
|
-
end
|
14
|
-
|
15
|
-
def process_locals(evt)
|
16
|
-
vars = {}
|
17
|
-
evt.binding.local_variables.each do |var|
|
18
|
-
local_var = evt.binding.local_variable_get var
|
19
|
-
if SERIALIZE_CLASSES.any? { |klass| local_var.is_a?(klass) }
|
20
|
-
vars[var] = local_var
|
21
|
-
elsif local_var.is_a?(Hash)
|
22
|
-
vars[var] = shallow_copy_of_hash(local_var)
|
23
|
-
else
|
24
|
-
class_name = local_var.is_a?(Class) ? local_var.to_s : local_var.class.to_s
|
25
|
-
vars[var] = "FILTERED[#{class_name}]"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
vars
|
29
|
-
end
|
30
|
-
|
31
|
-
#TODO: work on more efficient way to serialize hash
|
32
|
-
def shallow_copy_of_hash(hash)
|
33
|
-
{}.tap do |new_hash|
|
34
|
-
hash.each do |k,v|
|
35
|
-
new_hash[k] = v.to_s
|
36
|
-
end
|
37
|
-
new_hash
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/lib/rshade/event_store.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module RShade
|
2
|
-
# nodoc
|
3
|
-
class EventStore
|
4
|
-
attr_reader :events
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@events = []
|
8
|
-
end
|
9
|
-
|
10
|
-
def <<(event)
|
11
|
-
events << event
|
12
|
-
end
|
13
|
-
|
14
|
-
def iterate(&block)
|
15
|
-
pos_map = {}
|
16
|
-
@events.map {|item| item.level }.uniq.sort.each_with_index { |item, index| pos_map[item] = index}
|
17
|
-
@events.uniq{|item| [item.level, "#{item.klass}##{item.method_name}"]}.sort_by { |item| item.depth }.each do |item|
|
18
|
-
item.depth = pos_map[item.level]
|
19
|
-
yield(item, item.depth)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module RShade
|
2
|
-
module Filter
|
3
|
-
class AppFilter < ::RShade::Base
|
4
|
-
attr_reader :data
|
5
|
-
|
6
|
-
def initialize(data)
|
7
|
-
@data = data
|
8
|
-
end
|
9
|
-
|
10
|
-
def call
|
11
|
-
valid?(data[:path])
|
12
|
-
end
|
13
|
-
|
14
|
-
def valid?(path)
|
15
|
-
return true if RShade.config.track_gems.any? { |item| path.include? item }
|
16
|
-
RShade.config.excluded_paths.none? { |item| path.include? item }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/lib/rshade/storage.rb
DELETED