mdv 0.5.1 → 0.6.0
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/Changelog.md +6 -0
- data/bin/mdv +50 -6
- data/lib/mdv/markdown_viewer.rb +10 -27
- metadata +135 -22
- data/Gemfile +0 -5
- data/Rakefile +0 -25
- data/test/end_to_end/basic_run_test.rb +0 -34
- data/test/mdv/document_test.rb +0 -16
- data/test/test_helper.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb3eb712bbc1f685d269a4e97421efb66ff9416700159a90ec4cf5d1f24c2d72
|
4
|
+
data.tar.gz: 666ab4a8cc091d8bbe702385e43c6d96017a718a35efe19a131372abf1515b70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c6cd510080c885c528a62684a1b5571e3798da209bde4bedac13ea780aa0af2c2b37c5bd87a8e38b3770fbcefae7ba79f3731139973a837684e3bcbe85789aa
|
7
|
+
data.tar.gz: c584ebcbd56777548042385e80949bfc4dcd25062ceb8ac57feac63c05d23ba69b9ea8bceae71df47b12857f2356ed7f4c402a2eefd2dd5435ee1a8d60ee9eaf
|
data/Changelog.md
CHANGED
data/bin/mdv
CHANGED
@@ -3,13 +3,57 @@
|
|
3
3
|
|
4
4
|
require "mdv"
|
5
5
|
|
6
|
-
Gtk.
|
6
|
+
myapp = Gtk::Application.new("net.matijs.mdv",
|
7
|
+
{ handles_open: true })
|
7
8
|
|
8
|
-
|
9
|
+
def make_window(app)
|
10
|
+
win = Gtk::ApplicationWindow.new app
|
11
|
+
close_action = Gio::SimpleAction.new("close", nil)
|
12
|
+
close_action.signal_connect("activate") { win.destroy }
|
13
|
+
win.add_action close_action
|
14
|
+
win
|
15
|
+
end
|
9
16
|
|
10
|
-
|
11
|
-
|
17
|
+
myapp.signal_connect "startup" do |app|
|
18
|
+
WebKit2::WebContext.get_default.set_cache_model :document_viewer
|
12
19
|
|
13
|
-
|
20
|
+
action = Gio::SimpleAction.new("quit", nil)
|
21
|
+
action.signal_connect("activate") { app.quit }
|
22
|
+
myapp.add_action action
|
14
23
|
|
15
|
-
|
24
|
+
myapp.set_accels_for_action "app.quit", ["<Ctrl>Q"]
|
25
|
+
myapp.set_accels_for_action "win.close", ["<Ctrl>W"]
|
26
|
+
myapp.set_accels_for_action "win.reload", ["<Ctrl>R"]
|
27
|
+
|
28
|
+
# Add menu so Atspi has a way to access the actions
|
29
|
+
menu = Gio::Menu.new
|
30
|
+
file_menu = Gio::Menu.new
|
31
|
+
file_menu.append "Close Window", "win.close"
|
32
|
+
file_menu.append "Quit", "app.quit"
|
33
|
+
menu.append_submenu "File", file_menu
|
34
|
+
view_menu = Gio::Menu.new
|
35
|
+
view_menu.append "Reload", "win.reload"
|
36
|
+
menu.append_submenu "View", view_menu
|
37
|
+
|
38
|
+
myapp.menubar = menu
|
39
|
+
end
|
40
|
+
|
41
|
+
myapp.signal_connect "activate" do |app, _user_data|
|
42
|
+
win = make_window(app)
|
43
|
+
win.show_all
|
44
|
+
win.children.first.visible = false
|
45
|
+
end
|
46
|
+
|
47
|
+
myapp.signal_connect "open" do |app, files, _hint, _user_data|
|
48
|
+
files.each do |file|
|
49
|
+
filename = file.path
|
50
|
+
win = make_window(app)
|
51
|
+
MDV::MarkdownViewer.new win, filename
|
52
|
+
win.show_all
|
53
|
+
|
54
|
+
# This hides the menubar but keeps it available for Atspi
|
55
|
+
win.children.first.visible = false
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
exit(myapp.run([$PROGRAM_NAME] + ARGV))
|
data/lib/mdv/markdown_viewer.rb
CHANGED
@@ -8,33 +8,21 @@ GirFFI.setup :WebKit2, "4.0"
|
|
8
8
|
module MDV
|
9
9
|
# Markdown viewer window class
|
10
10
|
class MarkdownViewer
|
11
|
-
def initialize(file)
|
11
|
+
def initialize(win, file)
|
12
|
+
@win = win
|
12
13
|
@document = Document.new(file)
|
13
14
|
setup_gui
|
15
|
+
connect_actions
|
14
16
|
reload
|
15
17
|
connect_signals
|
16
|
-
@win.show_all
|
17
18
|
end
|
18
19
|
|
19
20
|
private
|
20
21
|
|
21
22
|
def connect_signals
|
22
|
-
connect_key_press_event_signal
|
23
|
-
connect_destroy_signal
|
24
23
|
connect_web_view_signals
|
25
24
|
end
|
26
25
|
|
27
|
-
def connect_destroy_signal
|
28
|
-
@win.signal_connect("destroy") { Gtk.main_quit }
|
29
|
-
end
|
30
|
-
|
31
|
-
def connect_key_press_event_signal
|
32
|
-
@win.signal_connect "key-press-event" do |_wdg, evt, _ud|
|
33
|
-
handle_key(evt) if evt.state[:control_mask]
|
34
|
-
false
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
26
|
def connect_web_view_signals
|
39
27
|
web_view.signal_connect("context-menu") { true }
|
40
28
|
web_view.signal_connect("decide-policy") do |_wv, decision, decision_type|
|
@@ -42,15 +30,6 @@ module MDV
|
|
42
30
|
end
|
43
31
|
end
|
44
32
|
|
45
|
-
def handle_key(evt)
|
46
|
-
case evt.keyval
|
47
|
-
when "q".ord
|
48
|
-
@win.destroy
|
49
|
-
when "r".ord
|
50
|
-
reload
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
33
|
def handle_decide_policy(decision, decision_type)
|
55
34
|
case decision_type
|
56
35
|
when :navigation_action
|
@@ -65,10 +44,14 @@ module MDV
|
|
65
44
|
end
|
66
45
|
|
67
46
|
def setup_gui
|
68
|
-
@win = Gtk::Window.new :toplevel
|
69
|
-
@win.set_default_geometry 700, 500
|
70
|
-
|
71
47
|
@win.add scrolled_window
|
48
|
+
@win.set_default_size 700, 500
|
49
|
+
end
|
50
|
+
|
51
|
+
def connect_actions
|
52
|
+
reload_action = Gio::SimpleAction.new("reload", nil)
|
53
|
+
reload_action.signal_connect("activate") { reload }
|
54
|
+
@win.add_action reload_action
|
72
55
|
end
|
73
56
|
|
74
57
|
def scrolled_window
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mdv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gir_ffi
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.15.7
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.15.7
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: gir_ffi-gtk
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +72,14 @@ dependencies:
|
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
75
|
+
version: 0.7.0
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
82
|
+
version: 0.7.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: minitest
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,20 @@ dependencies:
|
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '5.12'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.13.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.13.1
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: rake
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,50 +122,135 @@ dependencies:
|
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '13.0'
|
97
|
-
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake-manifest
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.2.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.2.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.8.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 1.8.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop-minitest
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.10.1
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.10.1
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop-packaging
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.5.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.5.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rubocop-performance
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 1.9.0
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 1.9.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: simplecov
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.21.0
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 0.21.0
|
209
|
+
description: 'Quickly view markdown files on GNOME
|
210
|
+
|
211
|
+
'
|
98
212
|
email:
|
99
213
|
- matijs@matijs.net
|
100
214
|
executables:
|
101
215
|
- mdv
|
102
216
|
extensions: []
|
103
|
-
extra_rdoc_files:
|
217
|
+
extra_rdoc_files:
|
218
|
+
- Changelog.md
|
219
|
+
- README.md
|
104
220
|
files:
|
105
221
|
- Changelog.md
|
106
|
-
- Gemfile
|
107
222
|
- LICENSE
|
108
223
|
- README.md
|
109
|
-
- Rakefile
|
110
224
|
- bin/mdv
|
111
225
|
- lib/mdv.rb
|
112
226
|
- lib/mdv/document.rb
|
113
227
|
- lib/mdv/markdown_viewer.rb
|
114
|
-
- test/end_to_end/basic_run_test.rb
|
115
|
-
- test/mdv/document_test.rb
|
116
|
-
- test/test_helper.rb
|
117
228
|
homepage: http://www.github.com/mvz/mdv
|
118
229
|
licenses:
|
119
230
|
- MIT
|
120
|
-
metadata:
|
121
|
-
|
122
|
-
|
231
|
+
metadata:
|
232
|
+
homepage_uri: http://www.github.com/mvz/mdv
|
233
|
+
source_code_uri: https://github.com/mvz/mdv
|
234
|
+
changelog_uri: https://github.com/mvz/mdv/blob/master/Changelog.md
|
235
|
+
post_install_message:
|
236
|
+
rdoc_options:
|
237
|
+
- "--main"
|
238
|
+
- README.md
|
123
239
|
require_paths:
|
124
240
|
- lib
|
125
241
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
242
|
requirements:
|
127
243
|
- - ">="
|
128
244
|
- !ruby/object:Gem::Version
|
129
|
-
version: 2.
|
245
|
+
version: 2.5.0
|
130
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
247
|
requirements:
|
132
248
|
- - ">="
|
133
249
|
- !ruby/object:Gem::Version
|
134
250
|
version: '0'
|
135
251
|
requirements: []
|
136
|
-
rubygems_version: 3.
|
137
|
-
signing_key:
|
252
|
+
rubygems_version: 3.2.3
|
253
|
+
signing_key:
|
138
254
|
specification_version: 4
|
139
255
|
summary: Simple Markdown Viewer
|
140
|
-
test_files:
|
141
|
-
- test/mdv/document_test.rb
|
142
|
-
- test/test_helper.rb
|
143
|
-
- test/end_to_end/basic_run_test.rb
|
256
|
+
test_files: []
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "rake/clean"
|
4
|
-
require "bundler/gem_tasks"
|
5
|
-
require "rake/testtask"
|
6
|
-
|
7
|
-
namespace :test do
|
8
|
-
Rake::TestTask.new(:unit) do |t|
|
9
|
-
t.libs = ["lib"]
|
10
|
-
t.test_files = FileList["test/mdv/*_test.rb"]
|
11
|
-
t.warning = true
|
12
|
-
end
|
13
|
-
|
14
|
-
Rake::TestTask.new(:end_to_end) do |t|
|
15
|
-
t.libs = ["lib"]
|
16
|
-
t.test_files = FileList["test/end_to_end/*_test.rb"]
|
17
|
-
t.warning = true
|
18
|
-
end
|
19
|
-
|
20
|
-
task all: [:unit, :end_to_end]
|
21
|
-
end
|
22
|
-
|
23
|
-
task test: "test:all"
|
24
|
-
|
25
|
-
task default: "test"
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../test_helper"
|
4
|
-
require "atspi_app_driver"
|
5
|
-
|
6
|
-
# Test driver for the MDV application.
|
7
|
-
class MDVDriver < AtspiAppDriver
|
8
|
-
def initialize
|
9
|
-
super "mdv"
|
10
|
-
end
|
11
|
-
|
12
|
-
def boot(filename)
|
13
|
-
super arguments: [filename]
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "The MDV application" do
|
18
|
-
before do
|
19
|
-
@driver = MDVDriver.new
|
20
|
-
@driver.boot("README.md")
|
21
|
-
end
|
22
|
-
|
23
|
-
it "starts and can be quit with Ctrl-q" do
|
24
|
-
sleep 1
|
25
|
-
@driver.press_ctrl_q
|
26
|
-
|
27
|
-
status = @driver.cleanup
|
28
|
-
_(status.exitstatus).must_equal 0
|
29
|
-
end
|
30
|
-
|
31
|
-
after do
|
32
|
-
@driver.cleanup
|
33
|
-
end
|
34
|
-
end
|
data/test/mdv/document_test.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../test_helper"
|
4
|
-
|
5
|
-
require "mdv/document"
|
6
|
-
|
7
|
-
describe MDV::Document do
|
8
|
-
let(:document) { MDV::Document.new("test/fixtures/test.md") }
|
9
|
-
|
10
|
-
describe "#html" do
|
11
|
-
it "renders the correct html" do
|
12
|
-
_(document.html)
|
13
|
-
.must_equal "<h1>Test</h1>\n\n<p>This is a test document.</p>\n"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
data/test/test_helper.rb
DELETED