mireru 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/NEWS.md +9 -0
- data/lib/mireru/command.rb +8 -0
- data/lib/mireru/status_bar.rb +39 -0
- data/lib/mireru/version.rb +1 -1
- data/lib/mireru/widget.rb +44 -18
- data/lib/mireru/window.rb +19 -5
- data/mireru.gemspec +5 -6
- data/test/test-window.rb +19 -12
- metadata +25 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3092881913c725d4b4f66aaf07ce442427af5909
|
4
|
+
data.tar.gz: 0e0815117616556cf38b6e526b44ccaebedfbfbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc329b923edff0cabd97d4934764c70adb933e7a2941ffcc4247a8559baa1f0b85e35066375db61a96490c974c005219663c4447bccaca8606fd8431bbf0a236
|
7
|
+
data.tar.gz: 124ed5eb488e633a91fa455546c16cec01de2df57060a8dace25adcec8d6f16c426943f5bcc5151ea9352eaf4a23bf00ce6fd28782cc61a55c0502bb0bd34683
|
data/.travis.yml
CHANGED
data/NEWS.md
CHANGED
data/lib/mireru/command.rb
CHANGED
@@ -70,6 +70,14 @@ module Mireru
|
|
70
70
|
"Hide empty directory") do |boolean|
|
71
71
|
options[:compact] = boolean
|
72
72
|
end
|
73
|
+
parser.on("--width=WIDTH",
|
74
|
+
"Set window width", Integer) do |width|
|
75
|
+
options[:width] = width
|
76
|
+
end
|
77
|
+
parser.on("--height=HEIGHT",
|
78
|
+
"Set window height", Integer) do |height|
|
79
|
+
options[:height] = height
|
80
|
+
end
|
73
81
|
parser.parse!(arguments)
|
74
82
|
|
75
83
|
options
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Copyright (C) 2014 Masafumi Yokoyama <myokoym@gmail.com>
|
2
|
+
#
|
3
|
+
# This program is free software; you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation; either version 2 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This program is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License along
|
14
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
|
+
|
17
|
+
require "gtk3"
|
18
|
+
|
19
|
+
module Mireru
|
20
|
+
class StatusBar < Gtk::Label
|
21
|
+
def initialize
|
22
|
+
super()
|
23
|
+
@file = nil
|
24
|
+
end
|
25
|
+
|
26
|
+
def set_file(file)
|
27
|
+
@file = file
|
28
|
+
self.text = "#{modified_time_info}, #{size_info}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def modified_time_info
|
32
|
+
"updated: #{File.mtime(@file).strftime("%Y-%m-%d %H:%M:%S")}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def size_info
|
36
|
+
"size: #{File.size(@file) / 1024} KiB"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/mireru/version.rb
CHANGED
data/lib/mireru/widget.rb
CHANGED
@@ -15,10 +15,6 @@
|
|
15
15
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
16
|
|
17
17
|
require "mireru/widget/image"
|
18
|
-
require "mireru/widget/video"
|
19
|
-
require "mireru/widget/pdf"
|
20
|
-
require "mireru/widget/svg"
|
21
|
-
require "mireru/widget/extracted_text"
|
22
18
|
require "mireru/widget/text"
|
23
19
|
require "mireru/widget/binary"
|
24
20
|
|
@@ -27,21 +23,51 @@ module Mireru
|
|
27
23
|
module_function
|
28
24
|
def create(file, width, height, chupa=false)
|
29
25
|
if chupa
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
26
|
+
check do
|
27
|
+
require "mireru/widget/extracted_text"
|
28
|
+
return Widget::ExtractedText.new(file)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
if image?(file)
|
33
|
+
return Widget::Image.new(file, width, height)
|
34
|
+
end
|
35
|
+
|
36
|
+
if video?(file) or music?(file)
|
37
|
+
check do
|
38
|
+
require "mireru/widget/video"
|
39
|
+
return Widget::Video.new(file)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
if pdf?(file)
|
44
|
+
check do
|
45
|
+
require "mireru/widget/pdf"
|
46
|
+
return Widget::PDF.new(file)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
if svg?(file)
|
51
|
+
check do
|
52
|
+
require "mireru/widget/svg"
|
53
|
+
return Widget::SVG.new(file)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
if text?(file)
|
58
|
+
return Widget::Text.new(file)
|
59
|
+
end
|
60
|
+
|
61
|
+
return Widget::Binary.new(file)
|
62
|
+
end
|
63
|
+
|
64
|
+
# TODO: improve
|
65
|
+
def check
|
66
|
+
begin
|
67
|
+
yield
|
68
|
+
rescue LoadError
|
69
|
+
$stderr.puts("Warning: #{$!.message}")
|
43
70
|
end
|
44
|
-
widget
|
45
71
|
end
|
46
72
|
|
47
73
|
def image?(file)
|
data/lib/mireru/window.rb
CHANGED
@@ -17,6 +17,7 @@
|
|
17
17
|
require "gtk3"
|
18
18
|
require "mireru/widget"
|
19
19
|
require "mireru/navigator"
|
20
|
+
require "mireru/status_bar"
|
20
21
|
|
21
22
|
module Mireru
|
22
23
|
class Window < Gtk::Window
|
@@ -32,11 +33,23 @@ module Mireru
|
|
32
33
|
@navigator = Navigator.new(self, files, options)
|
33
34
|
@paned.add(@navigator)
|
34
35
|
|
36
|
+
@main_vbox = Gtk::Box.new(:vertical)
|
37
|
+
@paned.add(@main_vbox)
|
38
|
+
|
35
39
|
@scroll = Gtk::ScrolledWindow.new
|
36
40
|
@scroll.set_policy(:automatic, :automatic)
|
37
|
-
@
|
38
|
-
|
39
|
-
|
41
|
+
@main_vbox.pack_start(@scroll, :expand => true,
|
42
|
+
:fill => true,
|
43
|
+
:padding => 0)
|
44
|
+
|
45
|
+
@status_bar = StatusBar.new
|
46
|
+
@main_vbox.pack_end(@status_bar, :expand => false,
|
47
|
+
:fill => false,
|
48
|
+
:padding => 0)
|
49
|
+
|
50
|
+
@default_width = options[:width] || 800
|
51
|
+
@default_height = options[:height] || 600
|
52
|
+
set_default_size(@default_width, @default_height)
|
40
53
|
signal_connect("destroy") do
|
41
54
|
Gtk.main_quit
|
42
55
|
end
|
@@ -60,6 +73,7 @@ module Mireru
|
|
60
73
|
else
|
61
74
|
@scroll.add_with_viewport(@widget)
|
62
75
|
end
|
76
|
+
@status_bar.set_file(file)
|
63
77
|
show_all
|
64
78
|
end
|
65
79
|
|
@@ -142,13 +156,13 @@ module Mireru
|
|
142
156
|
when Gdk::Keyval::KEY_h
|
143
157
|
@scroll.hadjustment.value -= 17
|
144
158
|
when Gdk::Keyval::KEY_j
|
145
|
-
if @widget.
|
159
|
+
if @widget.class.name == "PDF" # TODO: improve
|
146
160
|
@widget.next
|
147
161
|
else
|
148
162
|
@scroll.vadjustment.value += 17
|
149
163
|
end
|
150
164
|
when Gdk::Keyval::KEY_k
|
151
|
-
if @widget.
|
165
|
+
if @widget.class.name == "PDF" # TODO: improve
|
152
166
|
@widget.prev
|
153
167
|
else
|
154
168
|
@scroll.vadjustment.value -= 17
|
data/mireru.gemspec
CHANGED
@@ -19,12 +19,11 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_runtime_dependency("
|
23
|
-
spec.add_runtime_dependency("
|
24
|
-
spec.add_runtime_dependency("clutter-
|
25
|
-
spec.add_runtime_dependency("
|
26
|
-
spec.add_runtime_dependency("
|
27
|
-
spec.add_runtime_dependency("rsvg2", "2.2.2")
|
22
|
+
spec.add_runtime_dependency("gtksourceview3", ">= 2.2.4")
|
23
|
+
spec.add_runtime_dependency("clutter-gtk", ">= 2.2.4")
|
24
|
+
spec.add_runtime_dependency("clutter-gstreamer", ">= 2.2.4")
|
25
|
+
spec.add_runtime_dependency("poppler", ">= 2.2.4")
|
26
|
+
spec.add_runtime_dependency("rsvg2", ">= 2.2.4")
|
28
27
|
spec.add_runtime_dependency("hexdump")
|
29
28
|
spec.add_runtime_dependency("chupa-text")
|
30
29
|
spec.add_runtime_dependency("chupa-text-decomposer-html")
|
data/test/test-window.rb
CHANGED
@@ -23,28 +23,35 @@ class WindowTest < Test::Unit::TestCase
|
|
23
23
|
@window = Mireru::Window.new([])
|
24
24
|
end
|
25
25
|
|
26
|
-
class AddFromFileTest
|
27
|
-
def
|
26
|
+
class AddFromFileTest < self
|
27
|
+
def test_textview
|
28
28
|
file = __FILE__
|
29
|
-
|
29
|
+
stub(Mireru::Widget).create do
|
30
30
|
Gtk::TextView.new
|
31
31
|
end
|
32
|
-
|
32
|
+
stub(@window).show_all
|
33
33
|
@window.add_from_file(file)
|
34
|
-
|
35
|
-
|
34
|
+
pane = @window.child
|
35
|
+
vbox = pane.child2
|
36
|
+
scrolled_window = vbox.children[0]
|
37
|
+
widget = scrolled_window.child
|
38
|
+
assert_kind_of(Gtk::TextView, widget)
|
36
39
|
end
|
37
40
|
|
38
|
-
def
|
41
|
+
def test_viewport
|
39
42
|
file = File.join(fixtures_dir, "nijip.png")
|
40
|
-
|
43
|
+
stub(Mireru::Widget).create do
|
41
44
|
Gtk::Image.new
|
42
45
|
end
|
43
|
-
|
46
|
+
stub(@window).show_all
|
44
47
|
@window.add_from_file(file)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
pane = @window.child
|
49
|
+
vbox = pane.child2
|
50
|
+
scrolled_window = vbox.children[0]
|
51
|
+
view_port = scrolled_window.child
|
52
|
+
assert_kind_of(Gtk::Viewport, view_port)
|
53
|
+
widget = view_port.child
|
54
|
+
assert_kind_of(Gtk::Image, widget)
|
48
55
|
end
|
49
56
|
end
|
50
57
|
end
|
metadata
CHANGED
@@ -1,99 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mireru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: gtk3
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.2.2
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 2.2.2
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: gtksourceview3
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
|
-
- -
|
17
|
+
- - ">="
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.2.
|
19
|
+
version: 2.2.4
|
34
20
|
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
|
-
- -
|
24
|
+
- - ">="
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.2.
|
26
|
+
version: 2.2.4
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: clutter-gtk
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- -
|
31
|
+
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.2.
|
33
|
+
version: 2.2.4
|
48
34
|
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- -
|
38
|
+
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.2.
|
40
|
+
version: 2.2.4
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: clutter-gstreamer
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- -
|
45
|
+
- - ">="
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.2.
|
47
|
+
version: 2.2.4
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- -
|
52
|
+
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.2.
|
54
|
+
version: 2.2.4
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: poppler
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- -
|
59
|
+
- - ">="
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.2.
|
61
|
+
version: 2.2.4
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- -
|
66
|
+
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.2.
|
68
|
+
version: 2.2.4
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rsvg2
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- -
|
73
|
+
- - ">="
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: 2.2.
|
75
|
+
version: 2.2.4
|
90
76
|
type: :runtime
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- -
|
80
|
+
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: 2.2.
|
82
|
+
version: 2.2.4
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: hexdump
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,6 +240,7 @@ files:
|
|
254
240
|
- lib/mireru/command.rb
|
255
241
|
- lib/mireru/logger.rb
|
256
242
|
- lib/mireru/navigator.rb
|
243
|
+
- lib/mireru/status_bar.rb
|
257
244
|
- lib/mireru/version.rb
|
258
245
|
- lib/mireru/widget.rb
|
259
246
|
- lib/mireru/widget/binary.rb
|
@@ -318,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
318
305
|
version: '0'
|
319
306
|
requirements: []
|
320
307
|
rubyforge_project:
|
321
|
-
rubygems_version: 2.4.
|
308
|
+
rubygems_version: 2.4.5
|
322
309
|
signing_key:
|
323
310
|
specification_version: 4
|
324
311
|
summary: Keyboard friendly multitype file viewer by Ruby/GTK3.
|
@@ -342,3 +329,4 @@ test_files:
|
|
342
329
|
- test/widget/test-svg.rb
|
343
330
|
- test/widget/test-text.rb
|
344
331
|
- test/widget/test-video.rb
|
332
|
+
has_rdoc:
|