lib/mireru/command/mireru.rb in mireru-0.1.1 vs lib/mireru/command/mireru.rb in mireru-0.1.2
- old
+ new
@@ -26,30 +26,32 @@
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 = ::Mireru::Container.new(files)
if file_container.empty?
write_empty_message
exit(false)
end
window = ::Mireru::Window.new
+ window.font = font if font
window.add_container(file_container)
Gtk.main
end
private
def files_from_arguments(arguments)
if arguments.empty?
files = Dir.glob("*")
- elsif /\A(-d|--deep)\z/ =~ arguments[0]
- arguments.shift
+ elsif purge_option(arguments, /\A(-d|--deep)\z/)
if arguments.empty?
files = Dir.glob("**/*")
else
files = []
arguments.each do |f|
@@ -71,16 +73,30 @@
files = arguments
end
files
end
+ 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
+
def write_help_message
message = <<-EOM
#{USAGE}
If no argument, then search current directory.
Options:
- -d, --deep: deep search
+ -d, --deep
+ deep search as "**/*"
+ -f, --font
+ set font such as "Monospace 16"
Keybind:
n: next
p: prev
r: reload
e: expand path
@@ -110,10 +126,13 @@
message = <<-EOM
Warning: file not found.
#{USAGE}
If no argument, then search current directory.
Options:
- -d, --deep: deep search
+ -d, --deep
+ deep search as "**/*"
+ -f, --font
+ set font such as "Monospace 16"
EOM
@logger.error(message)
end
end
end