Sha256: 2f8a886db59ef92bf0ec11251d9507f12802647064138dbc28f62e7ae436f122
Contents?: true
Size: 1.03 KB
Versions: 30
Compression:
Stored size: 1.03 KB
Contents
module ASIR module Description def describe obj, indent = "", more = nil case obj when nil, ASIR::Coder::Identity s = ""; more = nil when ASIR::Transport s = "#{describe(obj.encoder, indent, "->\n")}#{indent}#{obj.class.name}" opts = [ :file, :uri ]. select { | x | obj.respond_to?(x) && obj.send(x) != nil }. map { | x | "#{x}: #{obj.send(x).inspect}" } * "," s << "(" << opts << ")" unless opts.empty? case when obj.respond_to?(:transports) s << "->[\n" s << obj.transports.map { | x | describe(x, indent + " ") } * ",\n" s << "]" when obj.respond_to?(:transport) s << "->\n" << describe(obj.transport, indent + " ") end when ASIR::Coder::Chain s = "#{indent}Chain(\n" s << obj.encoders.map { | x | describe(x, indent + " ") } * "->\n" s << ")" else s = "#{indent}#{obj.class.name}" end s << more if more s end extend self end end
Version data entries
30 entries across 30 versions & 1 rubygems