mireru 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|