def log(opt = nil)
      if opt == :tree
        puts tree_to_s(selected)
        return
      end

      wide = (opt == :wide)
      out =  "\n object_id   | class                 | style_name              | frame                           |"
      out << "\n" unless wide
      out <<   " sv id       | superview             | subviews count          | tags                            |"
      line =   " - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |\n"
      out << "\n"
      out << line.chop if wide
      out << line

      selected.each do |view|
        out << " #{view.object_id.to_s.ljust(12)}|"
        out << " #{view.class.name[0..21].ljust(22)}|"
        out << " #{(view.rmq_data.style_name || '')[0..23].ljust(24)}|"

        s = ""
        if view.origin
          format = '#0.#'
          s = " {l: #{RMQ.format.numeric(view.origin.x, format)}"
          s << ", t: #{RMQ.format.numeric(view.origin.y, format)}"
          s << ", w: #{RMQ.format.numeric(view.size.width, format)}"
          s << ", h: #{RMQ.format.numeric(view.size.height, format)}}"
        end
        out << s.ljust(33)
        out << '|'

        out << "\n" unless wide
        out << " #{view.superview.object_id.to_s.ljust(12)}|"
        out << " #{(view.superview ? view.superview.class.name : '')[0..21].ljust(22)}|"
        out << " #{view.subviews.length.to_s.ljust(23)} |"
        #out << "  #{view.subviews.length.to_s.rjust(8)} #{view.superview.class.name.ljust(20)} #{view.superview.object_id.to_s.rjust(10)}"
        out << " #{view.rmq_data.tag_names.join(',').ljust(32)}|"
        out << "\n"
        out << line unless wide
      end

      out << "RMQ #{self.object_id}. #{self.count} selected. selectors: #{self.selectors}"

      puts out
    end
def log(opt = nil)
      if opt == :tree
        puts tree_to_s(selected)
        return
      end

      wide = (opt == :wide)
      out =  "\n object_id   | class                 | style_name              | frame                           |"
      out << "\n" unless wide
      out <<   " sv id       | superview             | subviews count          | tags                            |"
      line =   " - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |\n"
      out << "\n"
      out << line.chop if wide
      out << line

      selected.each do |view|
        out << " #{view.object_id.to_s.ljust(12)}|"
        out << " #{view.class.name[0..21].ljust(22)}|"
        out << " #{(view.rmq_data.style_name || '')[0..23].ljust(24)}|"

        s = ""
        if view.origin
          format = '#0.#'
          s = " {l: #{RMQ.format.numeric(view.origin.x, format)}"
          s << ", t: #{RMQ.format.numeric(view.origin.y, format)}"
          s << ", w: #{RMQ.format.numeric(view.size.width, format)}"
          s << ", h: #{RMQ.format.numeric(view.size.height, format)}}"
        end
        out << s.ljust(33)
        out << '|'

        out << "\n" unless wide
        out << " #{view.superview.object_id.to_s.ljust(12)}|"
        out << " #{(view.superview ? view.superview.class.name : '')[0..21].ljust(22)}|"
        out << " #{view.subviews.length.to_s.ljust(23)} |"
        #out << "  #{view.subviews.length.to_s.rjust(8)} #{view.superview.class.name.ljust(20)} #{view.superview.object_id.to_s.rjust(10)}"
        out << " #{view.rmq_data.tag_names.join(',').ljust(32)}|"
        out << "\n"
        out << line unless wide
      end

      out << "RMQ #{self.object_id}. #{self.count} selected. selectors: #{self.selectors}"

      puts out
    end
Super useful in the console. log outputs to the console a table of the selected views

 @param :wide outputs wide format (really wide, but awesome: rmq.all.log :wide). :tree outputs the
 log in a tree form

 @return [String]

 @example
    (main)> rmq(UIImageView).log

    object_id   | class                 | style_name              | frame                           |
    sv id       | superview             | subviews count          | tags                            |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    168150976   | UIImageView           | logo                    | {l: 60, t: 10, w: 200, h: 95.5} |
    168128784   | UIView                | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    168180640   | UIImageView           |                         | {l: 1, t: 1, w: 148, h: 19}     |
    168173616   | UIRoundedRectButton   | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    168204336   | UIImageView           |                         | {l: 1, t: 0, w: 77, h: 27}      |
    168201952   | _UISwitchInternalView | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    172600352   | UIImageView           |                         | {l: -2, t: 0, w: 79, h: 27}     |
    168204512   | UIView                | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    168205504   | UIImageView           |                         | {l: -2, t: 0, w: 131, h: 27}    |
    168204512   | UIView                | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    168205600   | UIImageView           |                         | {l: 49, t: 0, w: 29, h: 27}     |
    168204512   | UIView                | 0                       |                                 |
    - - - - - - | - - - - - - - - - - - | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - |
    RMQ 278442176. 6 selected. selectors: [UIImageView]

 @example
   rmq.log :tree

 @example
   rmq.all.log :wide