class Mireru2::Command::Mireru2
Constants
- USAGE
Public Class Methods
new()
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 18 def initialize @logger = ::Mireru2::Logger.new end
run(*arguments)
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 13 def run(*arguments) new.run(arguments) end
Public Instance Methods
run(arguments)
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 22 def run(arguments) if /\A(-h|--help)\z/ =~ arguments[0] write_help_message exit(true) elsif /\A(-v|--version)\z/ =~ arguments[0] write_version_message exit(true) end font = purge_option(arguments, /\A(-f|--font)\z/, true) files = files_from_arguments(arguments) file_container = ::Mireru2::Container.new(files) if file_container.empty? write_empty_message exit(false) end window = ::Mireru2::Window.new window.font = font if font window.add_container(file_container) Gtk.main end
Private Instance Methods
files_from_arguments(arguments)
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 49 def files_from_arguments(arguments) if arguments.empty? files = Dir.glob("*") elsif purge_option(arguments, /\A(-R|--recursive|-d|--deep)\z/) if arguments.empty? files = Dir.glob("**/*") else files = [] arguments.each do |f| if File.directory?(f) files << Dir.glob("#{f}/**/*") else files << f end end files.flatten! end elsif arguments.all? {|v| File.directory?(v) } files = [] arguments.each do |f| files << Dir.glob("#{f}/*") end files.flatten! else files = arguments end files end
purge_option(arguments, regexp, has_value=false)
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 78 def purge_option(arguments, regexp, has_value=false) index = arguments.find_index {|arg| regexp =~ arg } return false unless index if has_value arguments.delete_at(index) # flag arguments.delete_at(index) # value else arguments.delete_at(index) end end
write_empty_message()
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 132 def write_empty_message message = <<-EOM Warning: file not found. #{USAGE} If no argument, then search current directory. Options: -R, --recursive recursive search as "**/*" -f, --font NAME set font such as "Monospace 16" EOM @logger.error(message) end
write_help_message()
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 89 def write_help_message message = <<-EOM #{USAGE} If no argument, then search current directory. Options: -R, --recursive recursive search as "**/*" -f, --font NAME set font such as "Monospace 16" Keybind: n: next p: prev r: reload e: expand path q: quit scroll: h: left j: down k: up l: right scale: +: larger -: smaller image: f: fits window size o: original size text: f: change font (at random) EOM @logger.info(message) end
write_version_message()
click to toggle source
# File lib/mireru2/command/mireru2.rb, line 125 def write_version_message message = <<-EOM #{::Mireru2::VERSION} EOM @logger.info(message) end