myrurema 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.
- data/HISTORY +5 -0
- data/README.mkd +9 -5
- data/VERSION +1 -1
- data/spec/commands.rb +3 -0
- data/src/myrurema.rb +60 -9
- metadata +23 -43
data/HISTORY
CHANGED
data/README.mkd
CHANGED
@@ -60,11 +60,15 @@ ruremaコマンドにメソッド名やクラス名を与えると、リファ
|
|
60
60
|
|
61
61
|
引数によっては、複数の候補が表示されることもあります。
|
62
62
|
|
63
|
-
$ rurema
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
63
|
+
$ rurema each_w
|
64
|
+
(1)Enumerable#each_with_index (2)Enumerable#each_with_object
|
65
|
+
(3)Matrix#each_with_index (4)Prime::PseudoPrimeGenerator#each_with_index
|
66
|
+
which one? >
|
67
|
+
|
68
|
+
(バージョン0.2.0から、上のようにどれを表示するか聞いてくるように
|
69
|
+
なりました。外部プログラムから呼び出す場合などは、--no-askを付けると
|
70
|
+
従来通りの表示になります。この場合は、最後に数字を付けることで、
|
71
|
+
指定した番号の候補を表示できます。(例:$ rurema each_w 3))
|
68
72
|
|
69
73
|
### ローカルWebサーバの起動
|
70
74
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/spec/commands.rb
CHANGED
data/src/myrurema.rb
CHANGED
@@ -11,12 +11,17 @@ class Options
|
|
11
11
|
@open_browser = false
|
12
12
|
@port = nil
|
13
13
|
@dry_run = false
|
14
|
+
@no_ask = false
|
14
15
|
@ruremadir = Pathname("~/.rurema").expand_path
|
15
16
|
@rubyver = RUBY_VERSION
|
16
17
|
|
17
18
|
@optionparser = OptionParser.new{|o|
|
19
|
+
o.banner = [
|
20
|
+
"Usage: rurema [options] <method name or class name>",
|
21
|
+
].join("\n")
|
22
|
+
|
18
23
|
o.on("--init",
|
19
|
-
"initialize rurema"){
|
24
|
+
"initialize rurema system"){
|
20
25
|
@command = :init
|
21
26
|
}
|
22
27
|
o.on("--update",
|
@@ -31,8 +36,12 @@ class Options
|
|
31
36
|
"render a reference as HTML"){
|
32
37
|
@command = :preview
|
33
38
|
}
|
39
|
+
o.on("--list",
|
40
|
+
"list all classes"){
|
41
|
+
@command = :list
|
42
|
+
}
|
34
43
|
|
35
|
-
o.on("----"){}
|
44
|
+
o.on("---- (OPTIONS)"){}
|
36
45
|
|
37
46
|
o.on("--port=N",
|
38
47
|
"port number of the web browser (only meaningful with --server)"){|n|
|
@@ -46,6 +55,10 @@ class Options
|
|
46
55
|
"show commands only"){
|
47
56
|
@dry_run = true
|
48
57
|
}
|
58
|
+
o.on("--no-ask",
|
59
|
+
"do not ask keyboard input"){
|
60
|
+
@no_ask = true
|
61
|
+
}
|
49
62
|
o.on("--ruremadir=PATH",
|
50
63
|
"specify rurema directory (default: #{@ruremadir})"){|path|
|
51
64
|
@ruremadir = Pathname(path)
|
@@ -55,7 +68,7 @@ class Options
|
|
55
68
|
@rubyver = str
|
56
69
|
}
|
57
70
|
|
58
|
-
o.on("-----"){}
|
71
|
+
o.on("----- (INFO)"){}
|
59
72
|
|
60
73
|
o.on("--version",
|
61
74
|
"show version of myrurema"){
|
@@ -70,8 +83,8 @@ class Options
|
|
70
83
|
}
|
71
84
|
@rest_args = @optionparser.parse(argv)
|
72
85
|
end
|
73
|
-
attr_accessor :dry_run, :ruremadir, :rubyver,
|
74
|
-
|
86
|
+
attr_accessor :dry_run, :no_ask, :ruremadir, :rubyver,
|
87
|
+
:open_browser, :command, :port, :rest_args
|
75
88
|
|
76
89
|
def ruremadir=(dir)
|
77
90
|
@ruremadir = Pathname(dir)
|
@@ -120,8 +133,33 @@ class MyRurema
|
|
120
133
|
def search(query, ver)
|
121
134
|
should_have_db(ver)
|
122
135
|
|
123
|
-
|
124
|
-
|
136
|
+
cmd = "#{bitclust_path/'bin/refe.rb'}" +
|
137
|
+
" #{Shellwords.escape query} -d #{db_path(ver)}"
|
138
|
+
sh cmd, :silent => true do |txt|
|
139
|
+
if txt.lines.count < 10 and
|
140
|
+
txt.lines.first(2).join =~ /#{query}.*#{query}/m and
|
141
|
+
!@opt.no_ask
|
142
|
+
|
143
|
+
words = {}
|
144
|
+
k = 0
|
145
|
+
puts txt.lines.map{|line|
|
146
|
+
line.gsub(/(\S+)/){|str|
|
147
|
+
k+=1
|
148
|
+
words[k] = str
|
149
|
+
"(#{k})#{str}"
|
150
|
+
}
|
151
|
+
}
|
152
|
+
print "which one? > "
|
153
|
+
line = $stdin.gets or (puts; exit)
|
154
|
+
n = line.to_i
|
155
|
+
|
156
|
+
puts "searching #{words[n]}"
|
157
|
+
puts
|
158
|
+
search(words[n].sub(/\.#/, "."), ver)
|
159
|
+
else
|
160
|
+
puts txt
|
161
|
+
end
|
162
|
+
end
|
125
163
|
end
|
126
164
|
|
127
165
|
def search_num(query, num, ver)
|
@@ -138,6 +176,13 @@ class MyRurema
|
|
138
176
|
end
|
139
177
|
end
|
140
178
|
|
179
|
+
def list
|
180
|
+
should_have_db(@opt.rubyver)
|
181
|
+
|
182
|
+
sh "#{bitclust_path/'bin/refe.rb'}" +
|
183
|
+
" -l -d #{db_path(@opt.rubyver)}", :silent => true
|
184
|
+
end
|
185
|
+
|
141
186
|
def server
|
142
187
|
port = @opt.port || default_port(@opt.rubyver)
|
143
188
|
th = Thread.new{
|
@@ -226,9 +271,15 @@ class MyRurema
|
|
226
271
|
@opt.ruremadir / "db" / ver
|
227
272
|
end
|
228
273
|
|
229
|
-
def sh(cmd, opt={})
|
274
|
+
def sh(cmd, opt={}, &block)
|
230
275
|
puts cmd unless opt[:silent]
|
231
|
-
|
276
|
+
return if @opt.dry_run
|
277
|
+
|
278
|
+
if block
|
279
|
+
block.call(`#{cmd}`)
|
280
|
+
else
|
281
|
+
system cmd
|
282
|
+
end
|
232
283
|
end
|
233
284
|
|
234
285
|
def error(msg)
|
metadata
CHANGED
@@ -1,33 +1,24 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: myrurema
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Yutaka HARA
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2010-09-01 00:00:00 +09:00
|
19
|
-
default_executable: rurema
|
12
|
+
date: 2011-10-05 00:00:00.000000000 Z
|
20
13
|
dependencies: []
|
21
|
-
|
22
14
|
description: A tool for Rurema (the new Japanese Ruby reference manual)
|
23
15
|
email: yutaka.hara/at/gmail.com
|
24
|
-
executables:
|
16
|
+
executables:
|
25
17
|
- rurema
|
26
18
|
extensions: []
|
27
|
-
|
28
|
-
extra_rdoc_files:
|
19
|
+
extra_rdoc_files:
|
29
20
|
- README.mkd
|
30
|
-
files:
|
21
|
+
files:
|
31
22
|
- HISTORY
|
32
23
|
- README.mkd
|
33
24
|
- Rakefile
|
@@ -37,39 +28,28 @@ files:
|
|
37
28
|
- main.rb
|
38
29
|
- spec/commands.rb
|
39
30
|
- src/myrurema.rb
|
40
|
-
has_rdoc: true
|
41
31
|
homepage: http://github.com/yhara/myrurema
|
42
32
|
licenses: []
|
43
|
-
|
44
33
|
post_install_message:
|
45
|
-
rdoc_options:
|
46
|
-
|
47
|
-
require_paths:
|
34
|
+
rdoc_options: []
|
35
|
+
require_paths:
|
48
36
|
- lib
|
49
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
38
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
56
|
-
- 0
|
57
|
-
version: "0"
|
58
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
44
|
none: false
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
|
64
|
-
segments:
|
65
|
-
- 0
|
66
|
-
version: "0"
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
67
49
|
requirements: []
|
68
|
-
|
69
50
|
rubyforge_project:
|
70
|
-
rubygems_version: 1.
|
51
|
+
rubygems_version: 1.8.8
|
71
52
|
signing_key:
|
72
53
|
specification_version: 3
|
73
54
|
summary: A tool for Rurema (the new Japanese Ruby reference manual)
|
74
|
-
test_files:
|
75
|
-
- spec/commands.rb
|
55
|
+
test_files: []
|