capiru 0.0.1 → 0.0.2
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 +3 -1
- data/Rakefile +54 -0
- data/bin/capiru +2 -2
- data/capiru.gemspec +3 -1
- data/lib/capiru.rb +12 -4
- data/lib/capiru/application.rb +1 -0
- data/lib/capiru/cli.rb +97 -12
- data/lib/capiru/version.rb +1 -1
- data/man/de/rb_type +39 -0
- data/{reference/en/rb_type.1 → man/en/rb_type} +1 -1
- data/reference/de/rb_type.ronn +29 -0
- data/reference/en/rb_type.ronn +1 -1
- metadata +19 -4
- data/reference/en/rb_type.1.html +0 -114
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d75b8e844132d6ad6ada85747dc262edd2c49d79
|
4
|
+
data.tar.gz: 20548efe0da7748c2d8ca5f5b9bc5cce81964e2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bdda05ce6ca878d1e36067f195e5f519aba6c3f6270202d0bf7bf499581038cc9065ba1be32391f46acd91afe3235f8cf9c03a03a1f1296d5b09d28bafa21bf
|
7
|
+
data.tar.gz: 24d0f56e1f3b141ffec9a2de20b4e76e4639f043b25a475718cf0257d2bff43f534f559770bf3d91752ce15ffeb3414aec27b4c7659a1f05334cfd52bd9eba1f
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capiru (0.0.
|
4
|
+
capiru (0.0.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -20,6 +20,7 @@ GEM
|
|
20
20
|
multi_json (1.8.4)
|
21
21
|
multi_test (0.0.3)
|
22
22
|
mustache (0.99.5)
|
23
|
+
rake (0.9.6)
|
23
24
|
rdiscount (2.1.7)
|
24
25
|
ronn (0.7.3)
|
25
26
|
hpricot (>= 0.8.2)
|
@@ -40,5 +41,6 @@ PLATFORMS
|
|
40
41
|
DEPENDENCIES
|
41
42
|
capiru!
|
42
43
|
cucumber
|
44
|
+
rake
|
43
45
|
ronn (~> 0.7.3)
|
44
46
|
rspec
|
data/Rakefile
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
require "capiru"
|
2
|
+
require "open3"
|
3
|
+
|
4
|
+
namespace :ref do
|
5
|
+
|
6
|
+
desc "build the reference pages"
|
7
|
+
task :build do
|
8
|
+
# set locale
|
9
|
+
locale = ENV['LOCALE']
|
10
|
+
unless locale
|
11
|
+
printf "enter locale: "
|
12
|
+
locale = $stdin.gets.chomp!.downcase
|
13
|
+
end
|
14
|
+
|
15
|
+
# set the base locale directory
|
16
|
+
base_dir = File.join(Capiru::REFERENCE_ROOT, locale)
|
17
|
+
man_dir = File.join(Capiru::MAN_ROOT, locale)
|
18
|
+
unless Dir.exists?(base_dir)
|
19
|
+
puts "Directory #{base_dir} does not exist."
|
20
|
+
exit(1)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Create directory for locale if it doesn't already exist
|
24
|
+
unless Dir.exists?(man_dir)
|
25
|
+
puts "Creating new directory: #{man_dir}"
|
26
|
+
Dir.mkdir(man_dir)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Run ronn on each ronn file
|
30
|
+
Dir["#{base_dir}/*"].each do |doc|
|
31
|
+
filename = File.basename(doc).split(".")[0]
|
32
|
+
cmd = "ronn -r --pipe #{doc}"
|
33
|
+
out, err, process = Open3.capture3(cmd)
|
34
|
+
|
35
|
+
# Handle Errors
|
36
|
+
unless process.success?
|
37
|
+
puts "Something went wrong while processing #{doc}"
|
38
|
+
puts "Command: #{cmd}"
|
39
|
+
puts "Error: #{err}"
|
40
|
+
end
|
41
|
+
|
42
|
+
puts out.inspect
|
43
|
+
|
44
|
+
# Write output to man directory
|
45
|
+
path = File.join(man_dir, filename)
|
46
|
+
File.open(path, "w:UTF-8") do |f|
|
47
|
+
f.write(out)
|
48
|
+
end
|
49
|
+
puts "wrote file: #{path}"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
data/bin/capiru
CHANGED
data/capiru.gemspec
CHANGED
@@ -27,8 +27,10 @@ Gem::Specification.new do |spec|
|
|
27
27
|
# DEVELOPMENT DEPENDENCIES
|
28
28
|
spec.add_development_dependency "cucumber"
|
29
29
|
spec.add_development_dependency "rspec"
|
30
|
+
spec.add_development_dependency "rake"
|
31
|
+
spec.add_development_dependency "ronn", "~> 0.7.3"
|
30
32
|
|
31
33
|
# RUNTIME DEPENDENCIES
|
32
|
-
|
34
|
+
|
33
35
|
|
34
36
|
end
|
data/lib/capiru.rb
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
module Capiru
|
2
2
|
|
3
|
-
#
|
4
|
-
|
5
|
-
|
3
|
+
# CONSTANTS
|
4
|
+
ROOT = File.expand_path("../../", __FILE__ )
|
5
|
+
REFERENCE_ROOT = File.join(ROOT, 'reference')
|
6
|
+
MAN_ROOT = File.join(ROOT, 'man')
|
7
|
+
|
8
|
+
# ERRORS
|
9
|
+
class TermNotFound < StandardError; ;end
|
6
10
|
|
7
|
-
#
|
11
|
+
# VERSION
|
12
|
+
autoload :VERSION, "capiru/version"
|
13
|
+
|
14
|
+
# APPLICATIONS
|
8
15
|
autoload :Application, "capiru/application"
|
9
16
|
autoload :CLI, "capiru/cli"
|
17
|
+
|
10
18
|
end
|
data/lib/capiru/application.rb
CHANGED
data/lib/capiru/cli.rb
CHANGED
@@ -1,27 +1,112 @@
|
|
1
1
|
require "ronn"
|
2
|
+
require "optparse"
|
3
|
+
require "ostruct"
|
2
4
|
|
3
5
|
module Capiru
|
4
6
|
class CLI < Application
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
attr_accessor :options, :parser, :search_path, :status, :environment
|
9
|
+
|
10
|
+
def has_man?
|
11
|
+
`which man`
|
12
|
+
$?.success?
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def initialize(args, env)
|
17
|
+
@environment = env
|
18
|
+
set_default_options
|
19
|
+
self.parser = build_options_parser
|
10
20
|
end
|
11
21
|
|
12
22
|
|
13
23
|
def run
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
24
|
+
|
25
|
+
# Parse options and args/env vars
|
26
|
+
parse
|
27
|
+
|
28
|
+
# Set the search path for queries
|
29
|
+
set_search_path_for_queries(options.locale)
|
30
|
+
|
31
|
+
# Run Program
|
32
|
+
begin
|
33
|
+
if options.query
|
34
|
+
match = run_single_query(options.query)
|
35
|
+
cmd = "man #{match}"
|
36
|
+
system(cmd)
|
37
|
+
self.status = $?
|
38
|
+
elsif options.regexp
|
39
|
+
# TODO: Implement
|
40
|
+
else
|
41
|
+
# NOOP
|
42
|
+
end
|
43
|
+
rescue Capiru::TermNotFound => ex
|
44
|
+
puts "Error: #{ex.message}"
|
45
|
+
exit(EXIT_FAILURE)
|
46
|
+
end
|
47
|
+
self.status.exitstatus
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def run_single_query(query)
|
52
|
+
file = File.join(self.search_path, query)
|
53
|
+
raise Capiru::TermNotFound, "No results for #{query} in #{options.locale} locale" unless File.exists?(file)
|
54
|
+
file
|
55
|
+
end
|
56
|
+
|
57
|
+
def parse
|
58
|
+
begin
|
59
|
+
parser.parse!
|
60
|
+
rescue => ex
|
61
|
+
puts "Error: #{ex.message}"
|
62
|
+
exit(EXIT_FAILURE)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def set_default_options
|
67
|
+
self.options = OpenStruct.new
|
68
|
+
self.options.query = false
|
69
|
+
self.options.regexp = false
|
70
|
+
self.options.locale = get_system_locale || "en"
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_options_parser
|
74
|
+
OptionParser.new do |opts|
|
75
|
+
opts.banner = "Usage: capiru [options]"
|
76
|
+
|
77
|
+
# Display Help Information
|
78
|
+
opts.on("-h", "--help", "Show usage information") do
|
79
|
+
puts opts
|
80
|
+
exit(EXIT_FAILURE)
|
81
|
+
end
|
82
|
+
|
83
|
+
# Set the search Query
|
84
|
+
opts.on("-q", "--query TERM", "Search the documentation for a specific term") do |term|
|
85
|
+
options.query = term
|
86
|
+
end
|
87
|
+
|
88
|
+
# Use a Regex Query
|
89
|
+
opts.on("-r", "--regexp REGEXP", "Seach the documentatino for terms matching REGEXP") do |regexp|
|
90
|
+
options.regexp = Regexp.new(regexp)
|
91
|
+
end
|
92
|
+
|
93
|
+
# Set the locale
|
94
|
+
opts.on("-l", "--locale LOCALE", "Return documentation in the given locale") do |locale|
|
95
|
+
options.locale = locale
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
19
99
|
end
|
20
100
|
|
101
|
+
def set_search_path_for_queries(locale="en")
|
102
|
+
@search_path = File.join(MAN_ROOT, locale)
|
103
|
+
end
|
21
104
|
|
22
|
-
def
|
23
|
-
|
105
|
+
def get_system_locale
|
106
|
+
locale = @environment['LANG']
|
107
|
+
locale = locale[0..1] if locale && locale.is_a?(String)
|
108
|
+
locale
|
24
109
|
end
|
25
110
|
|
26
111
|
end
|
27
|
-
end
|
112
|
+
end
|
data/lib/capiru/version.rb
CHANGED
data/man/de/rb_type
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
'\" -*- coding: UTF-8 -*-
|
2
|
+
.\" generated with Ronn/v0.7.3
|
3
|
+
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
4
|
+
.
|
5
|
+
.TH "RB_TYPE" "" "February 2014" "" ""
|
6
|
+
.
|
7
|
+
.SH "NAME"
|
8
|
+
\fBrb_type\fR \- liefert den Integerwert eines ruby internen Typs zurück
|
9
|
+
.
|
10
|
+
.SH "ÜBERSICHT"
|
11
|
+
\fBstatic inline int rb_type(VALUE obj);\fR
|
12
|
+
.
|
13
|
+
.SH "BESCHREIBUNG"
|
14
|
+
Die rb_type Methode nimmt ein Ruby Object als einziges Argument und liefert den Integerwert dessen internen ruby repräsentation zurück\. Der Integerwert ist einer der ruby Typendefinitionen bsw\. T_STRING für Stringobjekte, T_NIL für NilClassobjekte, T_SYMBOL für Symbolobjekte, usw\.
|
15
|
+
.
|
16
|
+
.SH "BEISPIELE"
|
17
|
+
VALUE gruesse = rb_str_new2("Hallo freundchen!");
|
18
|
+
.
|
19
|
+
.P
|
20
|
+
if( rb_type(gruesse) == T_STRING ) {
|
21
|
+
.
|
22
|
+
.IP "" 4
|
23
|
+
.
|
24
|
+
.nf
|
25
|
+
|
26
|
+
printf("Gruesse von einem Ruby String\.");
|
27
|
+
.
|
28
|
+
.fi
|
29
|
+
.
|
30
|
+
.IP "" 0
|
31
|
+
.
|
32
|
+
.P
|
33
|
+
}
|
34
|
+
.
|
35
|
+
.SH "AUTOR"
|
36
|
+
John Faucett
|
37
|
+
.
|
38
|
+
.SH "SIEHE AUCH"
|
39
|
+
ruby_value_type(3)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
rb_type -- liefert den Integerwert eines ruby internen Typs zurück
|
2
|
+
======================================================
|
3
|
+
|
4
|
+
## ÜBERSICHT
|
5
|
+
|
6
|
+
`static inline int rb_type(VALUE obj);`
|
7
|
+
|
8
|
+
## BESCHREIBUNG
|
9
|
+
|
10
|
+
Die rb_type Methode nimmt ein Ruby Object als einziges Argument und liefert
|
11
|
+
den Integerwert dessen internen ruby repräsentation zurück. Der Integerwert ist einer der
|
12
|
+
ruby Typendefinitionen bsw. T_STRING für Stringobjekte, T_NIL für NilClassobjekte, T_SYMBOL
|
13
|
+
für Symbolobjekte, usw.
|
14
|
+
|
15
|
+
## BEISPIELE
|
16
|
+
|
17
|
+
VALUE gruesse = rb_str_new2("Hallo freundchen!");
|
18
|
+
|
19
|
+
if( rb_type(gruesse) == T_STRING ) {
|
20
|
+
|
21
|
+
printf("Gruesse von einem Ruby String.");
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
## AUTOR
|
26
|
+
John Faucett
|
27
|
+
|
28
|
+
## SIEHE AUCH
|
29
|
+
ruby_value_type(3)
|
data/reference/en/rb_type.ronn
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capiru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Faucett
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: ronn
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,7 +59,7 @@ dependencies:
|
|
45
59
|
- - ~>
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: 0.7.3
|
48
|
-
type: :
|
62
|
+
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
@@ -72,8 +86,9 @@ files:
|
|
72
86
|
- lib/capiru/application.rb
|
73
87
|
- lib/capiru/cli.rb
|
74
88
|
- lib/capiru/version.rb
|
75
|
-
-
|
76
|
-
-
|
89
|
+
- man/de/rb_type
|
90
|
+
- man/en/rb_type
|
91
|
+
- reference/de/rb_type.ronn
|
77
92
|
- reference/en/rb_type.ronn
|
78
93
|
homepage: https://jwaterfaucett.github.io/capiru
|
79
94
|
licenses:
|
data/reference/en/rb_type.1.html
DELETED
@@ -1,114 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
-
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
6
|
-
<title>rb_type(1) - return the integer value of a ruby type</title>
|
7
|
-
<style type='text/css' media='all'>
|
8
|
-
/* style: man */
|
9
|
-
body#manpage {margin:0}
|
10
|
-
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
11
|
-
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
12
|
-
.mp h2 {margin:10px 0 0 0}
|
13
|
-
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
14
|
-
.mp h3 {margin:0 0 0 4ex}
|
15
|
-
.mp dt {margin:0;clear:left}
|
16
|
-
.mp dt.flush {float:left;width:8ex}
|
17
|
-
.mp dd {margin:0 0 0 9ex}
|
18
|
-
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
19
|
-
.mp pre {margin-bottom:20px}
|
20
|
-
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
21
|
-
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
22
|
-
.mp img {display:block;margin:auto}
|
23
|
-
.mp h1.man-title {display:none}
|
24
|
-
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
25
|
-
.mp h2 {font-size:16px;line-height:1.25}
|
26
|
-
.mp h1 {font-size:20px;line-height:2}
|
27
|
-
.mp {text-align:justify;background:#fff}
|
28
|
-
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
29
|
-
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
30
|
-
.mp u {text-decoration:underline}
|
31
|
-
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
32
|
-
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
33
|
-
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
34
|
-
.mp b.man-ref {font-weight:normal;color:#434241}
|
35
|
-
.mp pre {padding:0 4ex}
|
36
|
-
.mp pre code {font-weight:normal;color:#434241}
|
37
|
-
.mp h2+pre,h3+pre {padding-left:0}
|
38
|
-
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
39
|
-
ol.man-decor {width:100%}
|
40
|
-
ol.man-decor li.tl {text-align:left}
|
41
|
-
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
42
|
-
ol.man-decor li.tr {text-align:right;float:right}
|
43
|
-
</style>
|
44
|
-
</head>
|
45
|
-
<!--
|
46
|
-
The following styles are deprecated and will be removed at some point:
|
47
|
-
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
48
|
-
|
49
|
-
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
50
|
-
.man-navigation should be used instead.
|
51
|
-
-->
|
52
|
-
<body id='manpage'>
|
53
|
-
<div class='mp' id='man'>
|
54
|
-
|
55
|
-
<div class='man-navigation' style='display:none'>
|
56
|
-
<a href="#NAME">NAME</a>
|
57
|
-
<a href="#SYNOPSIS">SYNOPSIS</a>
|
58
|
-
<a href="#DESCRIPTION">DESCRIPTION</a>
|
59
|
-
<a href="#EXAMPLES">EXAMPLES</a>
|
60
|
-
<a href="#AUTHOR">AUTHOR</a>
|
61
|
-
<a href="#SEE-ALSO">SEE ALSO</a>
|
62
|
-
</div>
|
63
|
-
|
64
|
-
<ol class='man-decor man-head man head'>
|
65
|
-
<li class='tl'>rb_type(1)</li>
|
66
|
-
<li class='tc'></li>
|
67
|
-
<li class='tr'>rb_type(1)</li>
|
68
|
-
</ol>
|
69
|
-
|
70
|
-
<h2 id="NAME">NAME</h2>
|
71
|
-
<p class="man-name">
|
72
|
-
<code>rb_type</code> - <span class="man-whatis">return the integer value of a ruby type</span>
|
73
|
-
</p>
|
74
|
-
|
75
|
-
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
76
|
-
|
77
|
-
<p><code>static inline int rb_type(VALUE obj);</code></p>
|
78
|
-
|
79
|
-
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
80
|
-
|
81
|
-
<p>The rb_type function takes a ruby object as its argument and returns the
|
82
|
-
integer value of its internal representation in ruby. The integer value is one
|
83
|
-
of the the ruby type definitions, i.e. T_STRING for String objects, T_NIL for NilClass objects,
|
84
|
-
T_SYMBOL for Symbol objects, etc.</p>
|
85
|
-
|
86
|
-
<h2 id="EXAMPLES">EXAMPLES</h2>
|
87
|
-
|
88
|
-
<p> VALUE greeting = rb_str_new2("Hello amigo!");</p>
|
89
|
-
|
90
|
-
<p> if( rb_type(greeting) == T_STRING ) {</p>
|
91
|
-
|
92
|
-
<pre><code>printf("Greeting is a ruby String");
|
93
|
-
</code></pre>
|
94
|
-
|
95
|
-
<p> }</p>
|
96
|
-
|
97
|
-
<h2 id="AUTHOR">AUTHOR</h2>
|
98
|
-
|
99
|
-
<p> John Faucett</p>
|
100
|
-
|
101
|
-
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
102
|
-
|
103
|
-
<p> <span class="man-ref">ruby_value_type<span class="s">(3)</span></span></p>
|
104
|
-
|
105
|
-
|
106
|
-
<ol class='man-decor man-foot man foot'>
|
107
|
-
<li class='tl'></li>
|
108
|
-
<li class='tc'>February 2014</li>
|
109
|
-
<li class='tr'>rb_type(1)</li>
|
110
|
-
</ol>
|
111
|
-
|
112
|
-
</div>
|
113
|
-
</body>
|
114
|
-
</html>
|