manpages 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0d05806b795750d14398a78cc9a053bd1c218f7
4
- data.tar.gz: 123527817dd34a5190456e02bcea603b80c810eb
3
+ metadata.gz: 9ab7800ca095338322550d7af194a1c438cf6e15
4
+ data.tar.gz: c614993dc6ee596338851261ccfa32fe811ed06d
5
5
  SHA512:
6
- metadata.gz: 22d773239ed303a4bab0bb4d55462125d05931dc5b9eeec129ac280ccaf6af79ab4fddc50e6bf7984fbade9f6a72deea7fb173237679cab620fbafbe517a9484
7
- data.tar.gz: c7181b75509b04e5001169da20c7733c176641a029a48387d6638ce3c2ac25a3701931e9fe784bb9f48c8c314a966541c0d91be1615e88b43a34c22e1ad0f87b
6
+ metadata.gz: 14886da88e27fd091701ab9903b4ed81ef8b3fb55f3ef75034675e6c196071beb5767b727ad2ac5606cb7caa0f8edf140a74be8560a868ff7e3178c9806b61bc
7
+ data.tar.gz: 50eca018decc731ca8c55638e3308141a6821cb4fabca3e5e99b4674295582ae1ed4488b8075603b7ab8f8209cacc5f50e0b541b30225609daa8c6e8ba952a94
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- manpages (0.2.1)
4
+ manpages (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Manpages
2
2
 
3
3
  [![Build Status](https://travis-ci.org/bitboxer/manpages.svg?branch=master)](https://travis-ci.org/bitboxer/manpages)
4
- [![Gem](https://img.shields.io/gem/v/manpages.svg?maxAge=2592000)]()
4
+ [![Gem](https://img.shields.io/gem/v/manpages.svg?maxAge=2592000)](https://rubygems.org/gems/manpages)
5
5
 
6
6
  This plugin will add man pages support to ruby gems. Instead
7
7
  of adding a new command like [gem-man](https://github.com/defunkt/gem-man)
data/lib/manpages.rb CHANGED
@@ -2,6 +2,7 @@ require "manpages/version"
2
2
  require "manpages/install"
3
3
  require "manpages/uninstall"
4
4
  require "manpages/man_files"
5
+ require "manpages/gem_version"
5
6
 
6
7
  module Manpages
7
8
 
@@ -0,0 +1,24 @@
1
+ module Manpages
2
+
3
+ class GemVersion
4
+
5
+ def initialize(gem_spec)
6
+ @gem_spec = gem_spec
7
+ end
8
+
9
+ def is_latest?
10
+ latest_gem.nil? || latest_gem <= @gem_spec.version
11
+ end
12
+
13
+ private
14
+
15
+ def latest_gem
16
+ all_gem_versions.sort.last
17
+ end
18
+
19
+ def all_gem_versions
20
+ Gem::Specification.each.select { |spec| @gem_spec.name === spec.name }.map(&:version)
21
+ end
22
+
23
+ end
24
+ end
@@ -2,23 +2,34 @@ module Manpages
2
2
 
3
3
  class Install
4
4
 
5
- def initialize(gem_dir, target_dir)
5
+ def initialize(gem_spec, gem_dir, target_dir)
6
+ @gem_spec = gem_spec
6
7
  @gem_dir = gem_dir
7
8
  @target_dir = target_dir
8
9
  end
9
10
 
10
11
  def install_manpages
12
+ link_manpages if GemVersion.new(@gem_spec).is_latest?
13
+ end
14
+
15
+ private
16
+
17
+ def link_manpages
11
18
  ManFiles.new(@gem_dir, @target_dir).manpages.each do |file|
12
19
  link_manpage(file)
13
20
  end
14
21
  end
15
22
 
16
- private
17
-
18
23
  def link_manpage(file)
19
24
  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)
25
+ return if File.exist? man_target_file
26
+
27
+ begin
28
+ FileUtils.mkdir_p(File.dirname(man_target_file))
29
+ FileUtils.ln_s(file, man_target_file, force: true)
30
+ rescue => e
31
+ puts "Problems creating symlink #{man_target_file}"
32
+ end
22
33
  end
23
34
 
24
35
  end
@@ -2,19 +2,24 @@ module Manpages
2
2
 
3
3
  class Uninstall
4
4
 
5
- def initialize(gem_dir, target_dir)
5
+ def initialize(gem_spec, gem_dir, target_dir)
6
+ @gem_spec = gem_spec
6
7
  @gem_dir = gem_dir
7
8
  @target_dir = target_dir
8
9
  end
9
10
 
10
11
  def uninstall_manpages
12
+ unlink_manpages if GemVersion.new(@gem_spec).is_latest?
13
+ end
14
+
15
+ private
16
+
17
+ def unlink_manpages
11
18
  ManFiles.new(@gem_dir, @target_dir).manpages.each do |file|
12
19
  unlink_manpage(file)
13
20
  end
14
21
  end
15
22
 
16
- private
17
-
18
23
  def unlink_manpage(file)
19
24
  man_target_file = ManFiles.new(@gem_dir, @target_dir).man_file_path(file)
20
25
  if File.symlink?(man_target_file) && File.readlink(man_target_file) == file
@@ -1,3 +1,3 @@
1
1
  module Manpages
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -5,15 +5,15 @@ Gem::CommandManager.instance.register_command(:manpages)
5
5
 
6
6
  Gem.post_install do |installer|
7
7
  source_dir = installer.spec.gem_dir
8
- target_dir = File.join(installer.bin_dir, "../share/man")
8
+ target_dir = File.expand_path(installer.bin_dir, "../share/man")
9
9
 
10
- Manpages::Install.new(source_dir, target_dir).install_manpages
10
+ Manpages::Install.new(installer.spec, source_dir, target_dir).install_manpages
11
11
  end
12
12
 
13
13
  Gem.pre_uninstall do |uninstaller|
14
14
  bin_dir = uninstaller.bin_dir || Gem.bindir(uninstaller.spec.base_dir)
15
15
  source_dir = uninstaller.spec.gem_dir
16
- target_dir = File.absolute_path(File.join(bin_dir, "../share/man"))
16
+ target_dir = File.expand_path(bin_dir, "../share/man")
17
17
 
18
- Manpages::Uninstall.new(source_dir, target_dir).uninstall_manpages
18
+ Manpages::Uninstall.new(uninstaller.spec, source_dir, target_dir).uninstall_manpages
19
19
  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.2.1
4
+ version: 0.3.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-08 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -82,11 +82,11 @@ files:
82
82
  - README.md
83
83
  - Rakefile
84
84
  - lib/manpages.rb
85
+ - lib/manpages/gem_version.rb
85
86
  - lib/manpages/install.rb
86
87
  - lib/manpages/man_files.rb
87
88
  - lib/manpages/uninstall.rb
88
89
  - lib/manpages/version.rb
89
- - lib/rubygems/commands/manpages_command.rb
90
90
  - lib/rubygems_plugin.rb
91
91
  - manpages.gemspec
92
92
  homepage: https://github.com/bitboxer/manpages
@@ -1,15 +0,0 @@
1
- class Gem::Commands::ManpagesCommand < Gem::Command
2
- def initialize
3
- super("manpages", "Add a description here")
4
- end
5
-
6
- def execute
7
- # TODO: Add command to install
8
- # to rbenv and rvm
9
-
10
-
11
- # here goes the code that will be executed
12
- # when someone runs "gem manpages"
13
- say "It works!"
14
- end
15
- end