mireru 0.2.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.md +21 -0
- data/README.md +33 -17
- data/lib/mireru.rb +1 -1
- data/lib/mireru/command/mireru.rb +33 -55
- data/lib/mireru/navigator.rb +166 -0
- data/lib/mireru/version.rb +1 -1
- data/lib/mireru/widget.rb +18 -12
- data/lib/mireru/widget/binary.rb +16 -22
- data/lib/mireru/widget/image.rb +11 -7
- data/lib/mireru/widget/pdf.rb +38 -20
- data/lib/mireru/widget/svg.rb +20 -16
- data/lib/mireru/widget/text.rb +22 -24
- data/lib/mireru/widget/video.rb +35 -34
- data/lib/mireru/window.rb +149 -90
- data/mireru.gemspec +3 -2
- data/test/test-logger.rb +2 -1
- data/test/test-mireru.rb +4 -53
- data/test/test-window.rb +3 -16
- data/test/widget/test-binary.rb +3 -3
- data/test/widget/test-pdf.rb +3 -3
- data/test/widget/test-svg.rb +3 -3
- data/test/widget/test-text.rb +10 -6
- data/test/widget/test-video.rb +3 -3
- data/website/locales/en.yml +8 -7
- data/website/locales/ja.yml +5 -4
- data/website/source/localizable/index.haml +2 -2
- data/website/source/localizable/usage.html.erb +11 -10
- metadata +6 -11
- data/lib/mireru/container.rb +0 -38
- data/lib/mireru/widget/thumbnail.rb +0 -43
- data/test/test-container.rb +0 -52
- data/test/widget/test-thumbnail.rb +0 -18
data/mireru.gemspec
CHANGED
@@ -8,8 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Mireru::VERSION
|
9
9
|
spec.authors = ["Masafumi Yokoyama"]
|
10
10
|
spec.email = ["myokoym@gmail.com"]
|
11
|
-
spec.summary = %q{
|
12
|
-
spec.description = %q{
|
11
|
+
spec.summary = %q{Keyboard friendly multitype file viewer by Ruby/GTK3.}
|
12
|
+
spec.description = %q{Mireru is a keyboard friendly file viewer by Ruby/GTK3. It can handle a variety of file types (Picture, Text, PDF, Video and etc.).}
|
13
|
+
|
13
14
|
spec.homepage = "https://github.com/myokoym/mireru"
|
14
15
|
spec.license = "GPLv2 or later"
|
15
16
|
|
data/test/test-logger.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "mireru/logger"
|
2
|
+
require "mireru/command/mireru"
|
2
3
|
require "stringio"
|
3
4
|
|
4
5
|
class LoggerTest < Test::Unit::TestCase
|
@@ -14,7 +15,7 @@ class LoggerTest < Test::Unit::TestCase
|
|
14
15
|
$stdout = io
|
15
16
|
message = <<-EOM
|
16
17
|
#{Mireru::Command::Mireru::USAGE}
|
17
|
-
If no argument, then
|
18
|
+
If no argument, then open the current directory.
|
18
19
|
Keybind:
|
19
20
|
n: next
|
20
21
|
p: prev
|
data/test/test-mireru.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "mireru/command/mireru"
|
2
|
-
require "mireru/container"
|
3
2
|
|
4
3
|
class MireruTest < Test::Unit::TestCase
|
5
4
|
include MireruTestUtils
|
@@ -32,70 +31,22 @@ class MireruTest < Test::Unit::TestCase
|
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
35
|
-
def test_run_empty
|
36
|
-
arguments = %w(hoge)
|
37
|
-
stub(@mireru).files_from_arguments { arguments }
|
38
|
-
mock.instance_of(Mireru::Container).empty? { true }
|
39
|
-
mock(@mireru).write_empty_message
|
40
|
-
assert_raise SystemExit do
|
41
|
-
@mireru.run(arguments)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
34
|
def test_files_from_arguments_no_argument
|
46
35
|
arguments = %w()
|
47
|
-
expected =
|
48
|
-
mock(Dir).glob("*") { expected }
|
49
|
-
files = @mireru.__send__(:files_from_arguments, arguments)
|
50
|
-
assert_equal(files, expected)
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_files_from_arguments_recursive_option_only
|
54
|
-
arguments = %w(-R)
|
55
|
-
expected = %w(dir1 file1 dir2 dir1/file1 dir1/file2 dir2/file1)
|
56
|
-
mock(Dir).glob("**/*") { expected }
|
57
|
-
files = @mireru.__send__(:files_from_arguments, arguments)
|
58
|
-
assert_equal(files, expected)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_files_from_arguments_recursive_option_and_dir
|
62
|
-
arguments = %w(-R dir1 file1 dir2)
|
63
|
-
expected_dir1 = %w(dir1/file1 dir1/file2)
|
64
|
-
expected_dir2 = %w(dir2/file1)
|
65
|
-
expected = [expected_dir1, "file1", expected_dir2].flatten
|
66
|
-
mock(File).directory?("dir1") { true }
|
67
|
-
mock(File).directory?("file1") { false }
|
68
|
-
mock(File).directory?("dir2") { true }
|
69
|
-
mock(Dir).glob("dir1/**/*") { expected_dir1 }
|
70
|
-
mock(Dir).glob("dir2/**/*") { expected_dir2 }
|
36
|
+
expected = [Dir.pwd]
|
71
37
|
files = @mireru.__send__(:files_from_arguments, arguments)
|
72
38
|
assert_equal(files, expected)
|
73
39
|
end
|
74
40
|
|
75
|
-
def
|
41
|
+
def test_files_from_arguments
|
76
42
|
arguments = %w(dir1 dir2)
|
77
|
-
|
78
|
-
expected_dir2 = %w(dir2/file1)
|
79
|
-
expected = [expected_dir1, expected_dir2].flatten
|
80
|
-
mock(File).directory?("dir1") { true }
|
81
|
-
mock(File).directory?("dir2") { true }
|
82
|
-
mock(Dir).glob("dir1/*") { expected_dir1 }
|
83
|
-
mock(Dir).glob("dir2/*") { expected_dir2 }
|
43
|
+
expected = %w(dir1 dir2)
|
84
44
|
files = @mireru.__send__(:files_from_arguments, arguments)
|
85
45
|
assert_equal(files, expected)
|
86
46
|
end
|
87
47
|
|
88
|
-
def test_files_from_arguments_else
|
89
|
-
arguments = %w(dir1 file1 dir2)
|
90
|
-
files = @mireru.__send__(:files_from_arguments, arguments)
|
91
|
-
assert_equal(files, arguments)
|
92
|
-
end
|
93
|
-
|
94
48
|
def test_purge_option
|
95
|
-
arguments = %w(-
|
96
|
-
flag = @mireru.__send__(:purge_option, arguments, /\A(-R|--recursive)\z/)
|
97
|
-
assert_not_nil(flag)
|
98
|
-
assert_equal(%w(-f ubuntu dir1 file1 dir2), arguments)
|
49
|
+
arguments = %w(-f ubuntu dir1 file1 dir2)
|
99
50
|
value = @mireru.__send__(:purge_option, arguments, /\A-f\z/, true)
|
100
51
|
assert_equal("ubuntu", value)
|
101
52
|
assert_equal(%w(dir1 file1 dir2), arguments)
|
data/test/test-window.rb
CHANGED
@@ -4,20 +4,13 @@ class WindowTest < Test::Unit::TestCase
|
|
4
4
|
include MireruTestUtils
|
5
5
|
|
6
6
|
def setup
|
7
|
-
@window = Mireru::Window.new
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_add_container
|
11
|
-
container = %w(a, b, c)
|
12
|
-
mock(container).shift { "a" }
|
13
|
-
mock(@window).add_from_file("a")
|
14
|
-
@window.add_container(container)
|
7
|
+
@window = Mireru::Window.new([])
|
15
8
|
end
|
16
9
|
|
17
10
|
class AddFromFileTest
|
18
11
|
def test_scrollable
|
19
12
|
file = __FILE__
|
20
|
-
mock(Mireru::Widget).
|
13
|
+
mock(Mireru::Widget).new(file, *@window.size) do
|
21
14
|
Gtk::TextView.new
|
22
15
|
end
|
23
16
|
mock(@window).show_all
|
@@ -28,7 +21,7 @@ class WindowTest < Test::Unit::TestCase
|
|
28
21
|
|
29
22
|
def test_no_scrollable
|
30
23
|
file = File.join(fixtures_dir, "nijip.png")
|
31
|
-
mock(Mireru::Widget).
|
24
|
+
mock(Mireru::Widget).new(file, *@window.size) do
|
32
25
|
Gtk::Image.new
|
33
26
|
end
|
34
27
|
mock(@window).show_all
|
@@ -37,11 +30,5 @@ class WindowTest < Test::Unit::TestCase
|
|
37
30
|
assert_equal(Gtk::Viewport, @window.child.child.class)
|
38
31
|
assert_equal(Gtk::Image, @window.child.child.child.class)
|
39
32
|
end
|
40
|
-
|
41
|
-
def test_enumable
|
42
|
-
file = [__FILE__]
|
43
|
-
@window.add_from_file(file)
|
44
|
-
assert_equal(Mireru::Widget::Thumbnail, @window.child.child.class)
|
45
|
-
end
|
46
33
|
end
|
47
34
|
end
|
data/test/widget/test-binary.rb
CHANGED
@@ -3,11 +3,11 @@ require "mireru/widget/binary"
|
|
3
3
|
class BinaryTest < Test::Unit::TestCase
|
4
4
|
include MireruTestUtils
|
5
5
|
|
6
|
-
def
|
6
|
+
def test_new
|
7
7
|
file = File.join(fixtures_dir, "Gemfile.gz")
|
8
|
-
widget = Mireru::Widget::Binary.
|
8
|
+
widget = Mireru::Widget::Binary.new(file)
|
9
9
|
assert_not_nil(widget)
|
10
|
-
|
10
|
+
assert_kind_of(Gtk::TextView, widget)
|
11
11
|
widget.destroy
|
12
12
|
end
|
13
13
|
end
|
data/test/widget/test-pdf.rb
CHANGED
@@ -3,11 +3,11 @@ require "mireru/widget/pdf"
|
|
3
3
|
class PDFTest < Test::Unit::TestCase
|
4
4
|
include MireruTestUtils
|
5
5
|
|
6
|
-
def
|
6
|
+
def test_new
|
7
7
|
file = File.join(fixtures_dir, "sample.pdf")
|
8
|
-
widget = Mireru::Widget::PDF.
|
8
|
+
widget = Mireru::Widget::PDF.new(file)
|
9
9
|
assert_not_nil(widget)
|
10
|
-
|
10
|
+
assert_kind_of(Gtk::DrawingArea, widget)
|
11
11
|
widget.destroy
|
12
12
|
end
|
13
13
|
end
|
data/test/widget/test-svg.rb
CHANGED
@@ -3,11 +3,11 @@ require "mireru/widget/svg"
|
|
3
3
|
class SVGTest < Test::Unit::TestCase
|
4
4
|
include MireruTestUtils
|
5
5
|
|
6
|
-
def
|
6
|
+
def test_new
|
7
7
|
file = File.join(File.dirname(__FILE__), "..", "fixtures", "sample.svg")
|
8
|
-
widget = Mireru::Widget::SVG.
|
8
|
+
widget = Mireru::Widget::SVG.new(file)
|
9
9
|
assert_not_nil(widget)
|
10
|
-
|
10
|
+
assert_kind_of(Gtk::DrawingArea, widget)
|
11
11
|
widget.destroy
|
12
12
|
end
|
13
13
|
end
|
data/test/widget/test-text.rb
CHANGED
@@ -4,18 +4,22 @@ require "mireru/widget/text"
|
|
4
4
|
class TextTest < Test::Unit::TestCase
|
5
5
|
include MireruTestUtils
|
6
6
|
|
7
|
+
def setup
|
8
|
+
@view = Mireru::Widget::Text.new(__FILE__)
|
9
|
+
end
|
10
|
+
|
7
11
|
def test_buffer_from_file_of_text
|
8
|
-
|
9
|
-
|
12
|
+
buffer = @view.__send__(:buffer_from_file, __FILE__)
|
13
|
+
assert_kind_of(GtkSource::Buffer, buffer)
|
10
14
|
end
|
11
15
|
|
12
16
|
def test_buffer_from_text_of_utf8
|
13
|
-
|
14
|
-
|
17
|
+
buffer = @view.__send__(:buffer_from_text, "御庭番")
|
18
|
+
assert_kind_of(GtkSource::Buffer, buffer)
|
15
19
|
end
|
16
20
|
|
17
21
|
def test_buffer_from_text_of_sjis
|
18
|
-
|
19
|
-
|
22
|
+
buffer = @view.__send__(:buffer_from_text, "御庭番".encode("SJIS"))
|
23
|
+
assert_kind_of(GtkSource::Buffer, buffer)
|
20
24
|
end
|
21
25
|
end
|
data/test/widget/test-video.rb
CHANGED
@@ -5,13 +5,13 @@ class VideoTest < Test::Unit::TestCase
|
|
5
5
|
include MireruTestUtils
|
6
6
|
include ClutterTestUtils
|
7
7
|
|
8
|
-
def
|
8
|
+
def test_new
|
9
9
|
omit_if_clutter_color_hash_expect_arguments
|
10
10
|
|
11
11
|
filename = "XXX.ogm"
|
12
|
-
widget = Mireru::Widget::Video.
|
12
|
+
widget = Mireru::Widget::Video.new(filename)
|
13
13
|
assert_not_nil(widget)
|
14
|
-
|
14
|
+
assert_kind_of(ClutterGtk::Embed, widget)
|
15
15
|
widget.destroy
|
16
16
|
end
|
17
17
|
end
|
data/website/locales/en.yml
CHANGED
@@ -4,14 +4,14 @@ en:
|
|
4
4
|
Launch: "Launch"
|
5
5
|
if_no_argument: "If no argument, then search current directory."
|
6
6
|
Options: "Options"
|
7
|
-
|
8
|
-
set_font: "set font such as “Monospace 16”"
|
7
|
+
show_help_message: "show help message"
|
8
|
+
set_font: "set a font such as “Monospace 16”"
|
9
9
|
Keybind: "Keybind"
|
10
10
|
Common: "Common"
|
11
11
|
next: "next"
|
12
12
|
prev: "prev"
|
13
13
|
reload: "reload"
|
14
|
-
expand_path: "expand
|
14
|
+
expand_path: "expand/collpse"
|
15
15
|
quit: "quit"
|
16
16
|
Scroll: "Scroll"
|
17
17
|
left: "left"
|
@@ -21,12 +21,13 @@ en:
|
|
21
21
|
Scale: "Scale"
|
22
22
|
larger: "larger"
|
23
23
|
smaller: "smaller"
|
24
|
-
Special: "Special"
|
25
|
-
thumbnail: "thumbnail"
|
26
24
|
Image: "Image"
|
27
|
-
fits_window: "
|
28
|
-
original_size: "original size"
|
25
|
+
fits_window: "fit window size"
|
26
|
+
original_size: "scale to the original size"
|
29
27
|
Text: "Text"
|
30
28
|
change_font: "change font (at random)"
|
31
29
|
Video: "Video"
|
32
30
|
play_pause: "play/pause"
|
31
|
+
PDF: "PDF"
|
32
|
+
pdf_next: "next page"
|
33
|
+
pdf_prev: "prev page"
|
data/website/locales/ja.yml
CHANGED
@@ -4,14 +4,14 @@ ja:
|
|
4
4
|
Launch: "起動"
|
5
5
|
if_no_argument: "引数が指定されなかった場合、カレントディレクトリを検索します。"
|
6
6
|
Options: "オプション"
|
7
|
-
|
7
|
+
show_help_message: "ヘルプメッセージを表示します。"
|
8
8
|
set_font: "例えば、“Monospace 16”のように指定します。"
|
9
9
|
Keybind: "キーバインド"
|
10
10
|
Common: "共通"
|
11
11
|
next: "次のファイルへ"
|
12
12
|
prev: "前のファイルへ"
|
13
13
|
reload: "再読み込み"
|
14
|
-
expand_path: "
|
14
|
+
expand_path: "ツリービューを展開/収縮"
|
15
15
|
quit: "終了"
|
16
16
|
Scroll: "スクロール"
|
17
17
|
left: "左"
|
@@ -21,8 +21,6 @@ ja:
|
|
21
21
|
Scale: "拡大・縮小"
|
22
22
|
larger: "拡大"
|
23
23
|
smaller: "縮小"
|
24
|
-
Special: "ファイル種類別のキーバインド"
|
25
|
-
thumbnail: "サムネイルを表示"
|
26
24
|
Image: "画像ファイル用"
|
27
25
|
fits_window: "ウィンドウサイズ"
|
28
26
|
original_size: "オリジナルサイズ"
|
@@ -30,3 +28,6 @@ ja:
|
|
30
28
|
change_font: "フォントを変更(ランダム)"
|
31
29
|
Video: "ビデオファイル用"
|
32
30
|
play_pause: "再生/一時停止"
|
31
|
+
PDF: "PDFファイル用"
|
32
|
+
pdf_next: "次のページ"
|
33
|
+
pdf_prev: "前のページ"
|
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
<h3><%= t(:Launch) %></h3>
|
4
4
|
|
5
|
-
<pre> $ mireru [OPTION]... [
|
5
|
+
<pre> $ mireru [OPTION]... [FILE_OR_DIRECTORY]...</pre>
|
6
6
|
<%= t(:if_no_argument) %>
|
7
7
|
|
8
8
|
<h3><%= t(:Options) %></h3>
|
9
9
|
|
10
|
-
<pre>-
|
11
|
-
<%= t(:
|
10
|
+
<pre>-h, --help
|
11
|
+
<%= t(:show_help_message) %></pre>
|
12
12
|
<pre>-f, --font NAME
|
13
13
|
<%= t(:set_font) %></pre>
|
14
14
|
|
@@ -19,8 +19,8 @@
|
|
19
19
|
<ul>
|
20
20
|
<li>n: <%= t(:next) %></li>
|
21
21
|
<li>p: <%= t(:prev) %></li>
|
22
|
-
<li>r: <%= t(:reload) %></li>
|
23
22
|
<li>e: <%= t(:expand_path) %></li>
|
23
|
+
<li>r: <%= t(:reload) %></li>
|
24
24
|
<li>q: <%= t(:quit) %></li>
|
25
25
|
</ul>
|
26
26
|
</p>
|
@@ -43,12 +43,6 @@
|
|
43
43
|
</ul>
|
44
44
|
</p>
|
45
45
|
|
46
|
-
<p><%= t(:Special) %>
|
47
|
-
<ul>
|
48
|
-
<li>T: <%= t(:thumbnail) %></li>
|
49
|
-
</ul>
|
50
|
-
</p>
|
51
|
-
|
52
46
|
<p><%= t(:Image) %>
|
53
47
|
<ul>
|
54
48
|
<li>f: <%= t(:fits_window) %></li>
|
@@ -67,3 +61,10 @@
|
|
67
61
|
<li>space: <%= t(:play_pause) %></li>
|
68
62
|
</ul>
|
69
63
|
</p>
|
64
|
+
|
65
|
+
<p><%= t(:PDF) %>
|
66
|
+
<ul>
|
67
|
+
<li>j: <%= t(:pdf_next) %></li>
|
68
|
+
<li>k: <%= t(:pdf_prev) %></li>
|
69
|
+
</ul>
|
70
|
+
</p>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mireru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gtk3
|
@@ -178,8 +178,8 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
|
-
description:
|
182
|
-
|
181
|
+
description: Mireru is a keyboard friendly file viewer by Ruby/GTK3. It can handle
|
182
|
+
a variety of file types (Picture, Text, PDF, Video and etc.).
|
183
183
|
email:
|
184
184
|
- myokoym@gmail.com
|
185
185
|
executables:
|
@@ -196,8 +196,8 @@ files:
|
|
196
196
|
- bin/mireru
|
197
197
|
- lib/mireru.rb
|
198
198
|
- lib/mireru/command/mireru.rb
|
199
|
-
- lib/mireru/container.rb
|
200
199
|
- lib/mireru/logger.rb
|
200
|
+
- lib/mireru/navigator.rb
|
201
201
|
- lib/mireru/version.rb
|
202
202
|
- lib/mireru/widget.rb
|
203
203
|
- lib/mireru/widget/binary.rb
|
@@ -205,7 +205,6 @@ files:
|
|
205
205
|
- lib/mireru/widget/pdf.rb
|
206
206
|
- lib/mireru/widget/svg.rb
|
207
207
|
- lib/mireru/widget/text.rb
|
208
|
-
- lib/mireru/widget/thumbnail.rb
|
209
208
|
- lib/mireru/widget/video.rb
|
210
209
|
- lib/mireru/window.rb
|
211
210
|
- license/gpl-2.0.txt
|
@@ -220,7 +219,6 @@ files:
|
|
220
219
|
- test/fixtures/sample.svg
|
221
220
|
- test/mireru-test-utils.rb
|
222
221
|
- test/run-test.rb
|
223
|
-
- test/test-container.rb
|
224
222
|
- test/test-logger.rb
|
225
223
|
- test/test-mireru.rb
|
226
224
|
- test/test-widget.rb
|
@@ -229,7 +227,6 @@ files:
|
|
229
227
|
- test/widget/test-pdf.rb
|
230
228
|
- test/widget/test-svg.rb
|
231
229
|
- test/widget/test-text.rb
|
232
|
-
- test/widget/test-thumbnail.rb
|
233
230
|
- test/widget/test-video.rb
|
234
231
|
- travis-before-script.sh
|
235
232
|
- website/.gitignore
|
@@ -267,7 +264,7 @@ rubyforge_project:
|
|
267
264
|
rubygems_version: 2.2.2
|
268
265
|
signing_key:
|
269
266
|
specification_version: 4
|
270
|
-
summary:
|
267
|
+
summary: Keyboard friendly multitype file viewer by Ruby/GTK3.
|
271
268
|
test_files:
|
272
269
|
- test/clutter-test-utils.rb
|
273
270
|
- test/fixtures/Gemfile.gz
|
@@ -279,7 +276,6 @@ test_files:
|
|
279
276
|
- test/fixtures/sample.svg
|
280
277
|
- test/mireru-test-utils.rb
|
281
278
|
- test/run-test.rb
|
282
|
-
- test/test-container.rb
|
283
279
|
- test/test-logger.rb
|
284
280
|
- test/test-mireru.rb
|
285
281
|
- test/test-widget.rb
|
@@ -288,6 +284,5 @@ test_files:
|
|
288
284
|
- test/widget/test-pdf.rb
|
289
285
|
- test/widget/test-svg.rb
|
290
286
|
- test/widget/test-text.rb
|
291
|
-
- test/widget/test-thumbnail.rb
|
292
287
|
- test/widget/test-video.rb
|
293
288
|
has_rdoc:
|