manr 0.0.1 → 0.1.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.
Files changed (5) hide show
  1. data/README.md +14 -0
  2. data/bin/manr +45 -4
  3. data/lib/manr/version.rb +1 -1
  4. data/manr.gemspec +2 -1
  5. metadata +6 -5
data/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # Manr
2
+ Manr is random man. It shows you random man page.
3
+
4
+ ## Why is all that ?
5
+ It will help you to get know better your operating system.
6
+
7
+ ## How to install it ?
8
+ gem install manr
9
+
10
+ ## How to use it ?
11
+ Type this into console
12
+
13
+ $> manr
14
+
data/bin/manr CHANGED
@@ -2,6 +2,10 @@
2
2
  require 'find'
3
3
 
4
4
  module Manr
5
+ @@list = []
6
+ @@cache_path = File.expand_path("~/.manr/cache")
7
+ @@allowed_mans = ["man1", "man5", "man6", "man8"]
8
+
5
9
  def self.convert_path(path)
6
10
  path = path.split("/")
7
11
  path = path[path.size-1]
@@ -9,20 +13,57 @@ module Manr
9
13
  path[0]
10
14
  end
11
15
 
12
- def self.random_manual
13
- list = []
16
+ def self.check_allowed_man(path)
17
+ ok = false
18
+
19
+ @@allowed_mans.each do |m|
20
+ ok = ok || path.include?(m)
21
+ end
22
+
23
+ ok
24
+ end
25
+
26
+ def self.check_cache
27
+ File.exists?(@@cache_path)
28
+ end
29
+
30
+ def self.generate_cache
31
+ puts "Generating new cache..."
14
32
  dir = "/usr/share/man"
33
+ @@list = []
15
34
 
16
35
  Find.find(dir) do |path|
17
36
  unless FileTest.directory?(path)
18
- list += [convert_path(path)] if path.match(/gz$/) && path.include?("8")
37
+ @@list += [convert_path(path)] if path.match(/gz$/) && check_allowed_man(path)
38
+ end
39
+ end
40
+
41
+ @@list.uniq!
42
+ @@list.sort!
43
+
44
+ dir_path = File.expand_path("~/.manr")
45
+
46
+ Dir.mkdir(dir_path) unless File.directory?(dir_path)
47
+
48
+ File.open(@@cache_path, 'w') { |f| f.write(@@list.join("\n")) }
49
+ end
50
+
51
+ def self.load_cache
52
+ @@list = []
53
+
54
+ File.open(@@cache_path, "r") do |infile|
55
+ while (line = infile.gets)
56
+ @@list += [line]
19
57
  end
20
58
  end
59
+ end
21
60
 
22
- man = list[rand(list.size)]
61
+ def self.random_manual
62
+ man = @@list[rand(@@list.size)]
23
63
  exec "man #{man}"
24
64
  end
25
65
  end
26
66
 
67
+ Manr.check_cache ? Manr.load_cache : Manr.generate_cache
27
68
  Manr.random_manual
28
69
 
data/lib/manr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Manr
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/manr.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = ["piotr.debosz@gmail.com"]
11
11
  s.homepage = ""
12
12
  s.summary = %q{Manr is random man}
13
- s.description = %q{Manr will help you get to know your operation system better}
13
+ s.description = %q{Manr will help you get to know your operating system better}
14
14
 
15
15
  s.rubyforge_project = "manr"
16
16
 
@@ -19,3 +19,4 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
  end
22
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Piotr Pawel Debosz
@@ -15,11 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-25 00:00:00 +02:00
18
+ date: 2011-06-26 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
22
- description: Manr will help you get to know your operation system better
22
+ description: Manr will help you get to know your operating system better
23
23
  email:
24
24
  - piotr.debosz@gmail.com
25
25
  executables:
@@ -31,6 +31,7 @@ extra_rdoc_files: []
31
31
  files:
32
32
  - .gitignore
33
33
  - Gemfile
34
+ - README.md
34
35
  - Rakefile
35
36
  - bin/manr
36
37
  - lib/manr.rb