lib/mireru/command/mireru.rb in mireru-0.0.5 vs lib/mireru/command/mireru.rb in mireru-0.0.6

- old
+ new

@@ -1,6 +1,8 @@ require 'gtk3' +require "mireru/logger" +require "mireru/widget" module Mireru module Command class Mireru USAGE = "Usage: mireru [FILE...]" @@ -10,105 +12,100 @@ new.run(arguments) end end def initialize + @logger = ::Mireru::Logger.new end def run(arguments) if arguments.empty? file_container = Dir.glob("*") elsif /\A(-h|--help)\z/ =~ arguments[0] - puts(USAGE) - puts <<-EOS + message = <<-EOM +#{USAGE} If no argument, then search current directory. Keybind: n: next p: prev q: quit - EOS + EOM + @logger.info(message) exit(true) else file_container = arguments end file_container.select! {|f| support_file?(f) } if file_container.empty? - puts("Warning: valid file not found.") - puts(USAGE) - puts("Support file types: png, gif, jpeg(jpg). The others are...yet.") + message = <<-EOM +Warning: valid file not found. +#{USAGE} +Support file types: png, gif, jpeg(jpg). The others are...yet. + EOM + @logger.error(message) exit(false) end - image = Gtk::Image.new - image.file = file_container.shift + file = file_container.shift + widget = ::Mireru::Widget.create(file) window = Gtk::Window.new - window.title = File.basename(image.file) + window.title = File.basename(file) window.signal_connect("key_press_event") do |w, e| case e.keyval when Gdk::Keyval::GDK_KEY_n - file_container.push(image.file) - image.file = file_container.shift - window.title = File.basename(image.file) + window.remove(widget) + file_container.push(file) + file = file_container.shift + widget = ::Mireru::Widget.create(file) + window.add(widget) + window.show_all + window.title = File.basename(file) window.resize(1, 1) when Gdk::Keyval::GDK_KEY_p - file_container.unshift(image.file) - image.file = file_container.pop - window.title = File.basename(image.file) + window.remove(widget) + file_container.unshift(file) + file = file_container.pop + widget = ::Mireru::Widget.create(file) + window.add(widget) + window.show_all + window.title = File.basename(file) window.resize(1, 1) + when Gdk::Keyval::GDK_KEY_r + window.remove(widget) + widget = ::Mireru::Widget.create(file) + window.add(widget) + window.show_all + window.resize(1, 1) when Gdk::Keyval::GDK_KEY_q Gtk.main_quit end end window.signal_connect("destroy") do Gtk.main_quit end - window.add(image) + window.add(widget) window.show_all Gtk.main end private - def valid?(arguments) - file = arguments[0] - - unless file - puts("Error: no argument.") - puts(USAGE) - return false - end - - unless File.file?(file) - puts("Error: missing file.") - puts(USAGE) - return false - end - - unless /\.(png|jpe?g|gif)$/i =~ file - puts("Error: this file type is not support as yet.") - puts(USAGE) - return false - end - - true - end - def support_file?(file) unless file return false end unless File.file?(file) return false end - unless /\.(png|jpe?g|gif)$/i =~ file + unless /\.(png|jpe?g|gif|txt|rb)$/i =~ file return false end true end