manr 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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