manpages 0.1.0 → 0.2.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/Gemfile.lock +9 -3
- data/README.md +9 -4
- data/lib/manpages.rb +2 -0
- data/lib/manpages/install.rb +4 -16
- data/lib/manpages/man_files.rb +28 -0
- data/lib/manpages/uninstall.rb +26 -0
- data/lib/manpages/version.rb +1 -1
- data/lib/rubygems_plugin.rb +7 -0
- data/manpages.gemspec +1 -2
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21e36c15f7ec3120e81a728ea1e6e17c3ee63da1
|
4
|
+
data.tar.gz: fa166fe6763c98a8e19985615b99ddae2a122d3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1944db02ad4a705a23157e13a305b159d33a26a522a243c375d0b6856f1ac5b5a315243a6afe65dc65c4f92f0dbdbc6ff476ac0d309e831602facaf46996b93b
|
7
|
+
data.tar.gz: 231a6acb8428e0c465ccaff04b19f87e268527558f5364f65f1de0697dd3a30d30e323349ca7b1707ead1353a59a253ae7e816dd8897b57a4055b19068755c33
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
manpages (0.
|
4
|
+
manpages (0.2.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
coderay (1.1.1)
|
9
10
|
diff-lcs (1.2.5)
|
10
|
-
|
11
|
+
method_source (0.8.2)
|
12
|
+
pry (0.10.3)
|
13
|
+
coderay (~> 1.1.0)
|
14
|
+
method_source (~> 0.8.1)
|
15
|
+
slop (~> 3.4)
|
11
16
|
rake (10.5.0)
|
12
17
|
rspec (3.5.0)
|
13
18
|
rspec-core (~> 3.5.0)
|
@@ -22,6 +27,7 @@ GEM
|
|
22
27
|
diff-lcs (>= 1.2.0, < 2.0)
|
23
28
|
rspec-support (~> 3.5.0)
|
24
29
|
rspec-support (3.5.0)
|
30
|
+
slop (3.6.0)
|
25
31
|
|
26
32
|
PLATFORMS
|
27
33
|
ruby
|
@@ -29,7 +35,7 @@ PLATFORMS
|
|
29
35
|
DEPENDENCIES
|
30
36
|
bundler (~> 1.8)
|
31
37
|
manpages!
|
32
|
-
|
38
|
+
pry
|
33
39
|
rake (~> 10.0)
|
34
40
|
rspec (~> 3.0)
|
35
41
|
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# Manpages
|
2
2
|
|
3
3
|
[](https://travis-ci.org/bitboxer/manpages)
|
4
|
+
[]()
|
4
5
|
|
5
6
|
This plugin will add man pages support to ruby gems. Instead
|
6
7
|
of adding a new command like [gem-man](https://github.com/defunkt/gem-man)
|
7
8
|
it will try to link the files to place that the `man` command can find.
|
8
9
|
|
9
|
-
With rvm it works out of the box, but sadly
|
10
|
-
|
11
|
-
currently used.
|
10
|
+
With rvm and chruby it works out of the box, but sadly for rbenv we need to add
|
11
|
+
hooks that modify the `MANPATH` depending on the ruby version currently used.
|
12
12
|
|
13
13
|
# Installation
|
14
14
|
|
@@ -28,4 +28,9 @@ simply use `man guard` and you will see the man page the gem provided.
|
|
28
28
|
|
29
29
|
# Using this with rbenv
|
30
30
|
|
31
|
-
|
31
|
+
Sadly rbenv uses shims to hide the actual executables. This makes it impossible for
|
32
|
+
man to find the pages. The only solution is to add hooks that modify the `MANPATH`
|
33
|
+
environment variable.
|
34
|
+
|
35
|
+
This gem will provide a hook soon to fix this issue.
|
36
|
+
|
data/lib/manpages.rb
CHANGED
data/lib/manpages/install.rb
CHANGED
@@ -8,7 +8,7 @@ module Manpages
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def install_manpages
|
11
|
-
manpages.each do |file|
|
11
|
+
ManFiles.new(@gem_dir, @target_dir).manpages.each do |file|
|
12
12
|
link_manpage(file)
|
13
13
|
end
|
14
14
|
end
|
@@ -16,21 +16,9 @@ module Manpages
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def link_manpage(file)
|
19
|
-
|
20
|
-
FileUtils.mkdir_p(
|
21
|
-
FileUtils.ln_s(file,
|
22
|
-
end
|
23
|
-
|
24
|
-
def manpages
|
25
|
-
return [] unless File.directory?(man_dir)
|
26
|
-
|
27
|
-
Dir.entries(man_dir).select do |file|
|
28
|
-
file =~ /(.+).\d$/
|
29
|
-
end.map {|file| File.join(man_dir, file) }
|
30
|
-
end
|
31
|
-
|
32
|
-
def man_dir
|
33
|
-
@man_dir ||= File.join(@gem_dir, 'man')
|
19
|
+
man_target_file = ManFiles.new(@gem_dir, @target_dir).man_file_path(file)
|
20
|
+
FileUtils.mkdir_p(File.dirname(man_target_file))
|
21
|
+
FileUtils.ln_s(file, man_target_file, force: true)
|
34
22
|
end
|
35
23
|
|
36
24
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Manpages
|
2
|
+
class ManFiles
|
3
|
+
|
4
|
+
def initialize(gem_dir, target_dir)
|
5
|
+
@gem_dir = gem_dir
|
6
|
+
@target_dir = target_dir
|
7
|
+
end
|
8
|
+
|
9
|
+
def manpages
|
10
|
+
return [] unless File.directory?(man_dir)
|
11
|
+
|
12
|
+
Dir.entries(man_dir).select do |file|
|
13
|
+
file =~ /(.+).\d$/
|
14
|
+
end.map {|file| File.join(man_dir, file) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def man_dir
|
18
|
+
@man_dir ||= File.join(@gem_dir, 'man')
|
19
|
+
end
|
20
|
+
|
21
|
+
def man_file_path(file)
|
22
|
+
basename = File.basename(file)
|
23
|
+
man_section = file.match(/.*\.(\d*)/)
|
24
|
+
File.join(@target_dir, "man#{man_section[1]}", basename)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Manpages
|
2
|
+
|
3
|
+
class Uninstall
|
4
|
+
|
5
|
+
def initialize(gem_dir, target_dir)
|
6
|
+
@gem_dir = gem_dir
|
7
|
+
@target_dir = target_dir
|
8
|
+
end
|
9
|
+
|
10
|
+
def uninstall_manpages
|
11
|
+
ManFiles.new(@gem_dir, @target_dir).manpages.each do |file|
|
12
|
+
unlink_manpage(file)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def unlink_manpage(file)
|
19
|
+
man_target_file = ManFiles.new(@gem_dir, @target_dir).man_file_path(file)
|
20
|
+
if File.symlink?(man_target_file) && File.readlink(man_target_file) == file
|
21
|
+
FileUtils.rm(man_target_file)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/manpages/version.rb
CHANGED
data/lib/rubygems_plugin.rb
CHANGED
@@ -9,3 +9,10 @@ Gem.post_install do |installer|
|
|
9
9
|
|
10
10
|
Manpages::Install.new(source_dir, target_dir).install_manpages
|
11
11
|
end
|
12
|
+
|
13
|
+
Gem.post_uninstall do |uninstaller|
|
14
|
+
source_dir = uninstaller.spec.gem_dir
|
15
|
+
target_dir = File.join(uninstaller.bin_dir, "../share/man")
|
16
|
+
|
17
|
+
Manpages::Uninstall.new(source_dir, target_dir).uninstall_manpages
|
18
|
+
end
|
data/manpages.gemspec
CHANGED
@@ -23,6 +23,5 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.8"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
-
|
27
|
-
spec.add_development_dependency "minitest", "~> 5.0"
|
26
|
+
spec.add_development_dependency "pry"
|
28
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: manpages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bodo Tasche
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
description: This is a little experiment that adds man pages support to rubygems
|
70
70
|
email:
|
71
71
|
- bodo@tasche.me
|
@@ -83,6 +83,8 @@ files:
|
|
83
83
|
- Rakefile
|
84
84
|
- lib/manpages.rb
|
85
85
|
- lib/manpages/install.rb
|
86
|
+
- lib/manpages/man_files.rb
|
87
|
+
- lib/manpages/uninstall.rb
|
86
88
|
- lib/manpages/version.rb
|
87
89
|
- lib/rubygems/commands/manpages_command.rb
|
88
90
|
- lib/rubygems_plugin.rb
|
@@ -112,4 +114,3 @@ signing_key:
|
|
112
114
|
specification_version: 4
|
113
115
|
summary: Adds support for man pages to rubygems
|
114
116
|
test_files: []
|
115
|
-
has_rdoc:
|