class RabbitViewer::Command::RabbitViewer

Public Class Methods

new() click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 17
def initialize
end
run(*arguments) click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 12
def run(*arguments)
  new.run(arguments)
end

Public Instance Methods

run(arguments) click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 20
def run(arguments)
  Tempfile.open(["rabbit_viewer", ".rab"]) do |tempfile|
    tempfile.puts(title)
  
    arguments.each do |viewfile_relative|
      viewfile = File.expand_path(viewfile_relative)
      next unless File.file?(viewfile)

      if Rabbit::VERSION <= "2.0.6"
        begin
          URI.parse(viewfile)
        rescue URI::InvalidURIError
          STDERR.puts($!.message)
          STDERR.puts("Support multibyte file path by Rabbit 2.0.7. Encourage update!")
          next
        end
      end

      case viewfile
      when /\.(svg|png|jpe?g|gif|eps|dia|xcf)$/i
        page = image_page(viewfile)
      else
        page = text_page(viewfile)
      end

      unless page
        page = undefind_page(viewfile)
      end

      tempfile.puts(page)
    end
  
    tempfile.flush
    Rabbit::Command::Rabbit.run(tempfile.path)
  end
end

Private Instance Methods

image_page(viewfile) click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 66
      def image_page(viewfile)
        <<-EOT
= #{File.basename(viewfile)}
  # image
  # src = #{viewfile}
        EOT
      end
text_page(viewfile) click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 74
def text_page(viewfile)
  page = "= #{File.basename(viewfile)}\n"
  File.open(viewfile) do |f|
    f.each_line.to_a[0..9].each_with_index do |line, i|
      return nil unless line.valid_encoding?
      page += "    #{i + 1}: #{line}\n"
    end
  end
  page
end
title() click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 58
      def title
        <<-EOT
= RabbitViewer
: date
   version #{::RabbitViewer::VERSION}
        EOT
      end
undefind_page(viewfile) click to toggle source
# File lib/rabbit_viewer/command/rabbit_viewer.rb, line 85
def undefind_page(viewfile)
  page = "= #{File.basename(viewfile)}\n"
  page += "Sorry, this file is don't support format...\n"
  page
end