Class: FilterTable::Trace
- Inherits:
-
Object
- Object
- FilterTable::Trace
show all
- Defined in:
- lib/utils/filter.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Trace
53
54
55
|
# File 'lib/utils/filter.rb', line 53
def initialize
@chain = []
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args) ⇒ Object
65
66
67
68
69
|
# File 'lib/utils/filter.rb', line 65
def method_missing(*args)
res = Trace.new
@chain.push([args, res])
res
end
|
Class Method Details
.to_ruby(trace) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/utils/filter.rb', line 71
def self.to_ruby(trace)
chain = trace.instance_variable_get(:@chain)
return '' if chain.empty?
' ' + chain.map do |el|
m = el[0][0]
args = el[0].drop(1)
nxt = to_ruby(el[1])
next m.to_s + nxt if args.empty?
next m.to_s + ' ' + args[0].inspect + nxt if args.length == 1
m.to_s + '(' + args.map(&:inspect).join(', ') + ')' + nxt
end.join(' ')
end
|