def debug(msg = nil, &block)
      return unless debug?

      puts "\n[DEBUG] - #{caller.first}"
      msg.each { |m| puts(m) } if msg.is_a?(Array)

      if msg.is_a?(Hash)
        msg.each do |k, v|
          puts "[#{k.to_s}]"

          if v.is_a?(Array)
            v.each {|m| puts(m) }
          else
            puts v
          end
        end
      elsif (msg.is_a?(String) || msg.is_a?(Symbol))
        puts msg.to_s
      end

      yield if block_given?
      puts "\n"
    end
def debug(msg = nil, &block)
      return unless debug?

      puts "\n[DEBUG] - #{caller.first}"
      msg.each { |m| puts(m) } if msg.is_a?(Array)

      if msg.is_a?(Hash)
        msg.each do |k, v|
          puts "[#{k.to_s}]"

          if v.is_a?(Array)
            v.each {|m| puts(m) }
          else
            puts v
          end
        end
      elsif (msg.is_a?(String) || msg.is_a?(Symbol))
        puts msg.to_s
      end

      yield if block_given?
      puts "\n"
    end
Debug-Wrapper