Sha256: af83f66a7647574ba1d64c8faae4d51572121f28054ef2f5e323ac976fa4327f
Contents?: true
Size: 678 Bytes
Versions: 3
Compression:
Stored size: 678 Bytes
Contents
module Sexpr class Processor class Helper attr_accessor :next_in_chain def call(processor, sexpr, &bl) meth = :"on_#{sexpr.first}" meth = :"on_missing" unless respond_to?(meth) send(meth, processor, sexpr) do |r,n| next_call(r, n, bl) end end def on_missing(processor, sexpr) yield(processor, sexpr) end private def next_call(processor, sexpr, toplevel) if nic = next_in_chain nic.call(processor, sexpr, &toplevel) else toplevel.call(processor, sexpr) end end end # class Helper end # module Processor end # module Sexpr
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sexpr-1.1.0 | lib/sexpr/processor/helper.rb |
sexpr-1.0.0 | lib/sexpr/processor/helper.rb |
sexpr-0.6.0 | lib/sexpr/processor/helper.rb |