myrurema 0.0.4 → 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.
- data/HISTORY +7 -0
- data/README.mkd +50 -7
- data/VERSION +1 -1
- data/spec/commands.rb +19 -0
- data/src/myrurema.rb +46 -13
- metadata +4 -3
data/HISTORY
ADDED
data/README.mkd
CHANGED
@@ -49,23 +49,33 @@ rubyverオプションを指定します。
|
|
49
49
|
|
50
50
|
$ rurema --init --rubyver=1.9.2
|
51
51
|
|
52
|
+
ruremadirオプションとrubyverオプションは、以下の全てのコマンドに対して
|
53
|
+
指定可能です。
|
54
|
+
|
52
55
|
### リファレンスを引く
|
53
56
|
|
54
57
|
ruremaコマンドにメソッド名やクラス名を与えると、リファレンスを表示します。
|
55
58
|
|
56
59
|
$ rurema Array#index
|
57
60
|
|
58
|
-
|
61
|
+
引数によっては、複数の候補が表示されることもあります。
|
62
|
+
|
63
|
+
$ rurema index
|
64
|
+
|
65
|
+
最後に数字を付けることで、指定した番号の候補を表示できます。
|
66
|
+
|
67
|
+
$ rurema index 1
|
59
68
|
|
60
|
-
|
61
|
-
閲覧できるようにする機能があります。
|
69
|
+
### ローカルWebサーバの起動
|
62
70
|
|
63
|
-
--serverオプションを指定すると、ローカルにWeb
|
71
|
+
--serverオプションを指定すると、ローカルにWebサーバが起動し、
|
72
|
+
ブラウザからリファレンスを閲覧することができます。
|
64
73
|
--browserオプションを指定すると、同時にブラウザでリファレンスのURLを開きます。
|
65
74
|
|
66
75
|
$ rurema --server --browser
|
67
76
|
|
68
|
-
デフォルトではRuby 1.8.7
|
77
|
+
デフォルトではRubyのバージョンに合わせたポート番号(例:Ruby 1.8.7なら
|
78
|
+
ポート10187)を使います。ポート番号を変更するには--portオプションを指定します。
|
69
79
|
|
70
80
|
$ rurema --server --port=9999 --browser
|
71
81
|
|
@@ -77,10 +87,43 @@ Rubyリファレンス刷新計画では、最新のRubyに完全対応したリ
|
|
77
87
|
|
78
88
|
$ rurema --update
|
79
89
|
|
80
|
-
|
90
|
+
リファレンスの書き方
|
91
|
+
====================
|
92
|
+
|
93
|
+
myruremaは、リファレンスを書くための機能も少し備えています。
|
94
|
+
|
95
|
+
リファレンスの原稿は、~/.rurema/doctree/refm/api/src/ 以下に置かれています。
|
96
|
+
|
97
|
+
### プレビュー
|
98
|
+
|
99
|
+
--previewオプションを指定すると、特定のメソッドをHTMLファイルにコンパイル
|
100
|
+
します。
|
101
|
+
|
102
|
+
rurema --preview _builtin/Array Array#pop
|
103
|
+
|
104
|
+
コンパイル結果は/tmp/rurema_preview.htmlに保存されます。
|
105
|
+
--browserオプションを指定すると、コンパイル結果をブラウザで開きます。
|
106
|
+
|
107
|
+
rurema --preview _builtin/Array Array#pop --browser
|
108
|
+
|
109
|
+
うまく書けたら、svn diffコマンドで差分を表示し、
|
110
|
+
るりまの[Issue Tracker](http://redmine.ruby-lang.org/projects/rurema/issues)
|
111
|
+
にチケットを作って、パッチを貼り付けてください。
|
112
|
+
内容が問題なければ、るりまコミッターがコミットしてくれます。
|
113
|
+
|
114
|
+
パッチがたくさん採用されれば、そのうちに、あなたもるりまコミッターの
|
115
|
+
一員に勧誘されるでしょう。 :-)
|
116
|
+
|
117
|
+
### ディレクトリの移動
|
118
|
+
|
119
|
+
「cd ~/.rurema/doctree/refm/api/src/」と毎回タイプするのは面倒なので、
|
120
|
+
|
121
|
+
$ `rurema --preview`
|
122
|
+
|
123
|
+
で同じことができるようになっています(zshの場合)。
|
81
124
|
|
82
125
|
その他
|
83
|
-
|
126
|
+
======
|
84
127
|
|
85
128
|
ライセンスはbitclustのものに準じます。
|
86
129
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/spec/commands.rb
CHANGED
@@ -6,6 +6,8 @@ class MyRurema
|
|
6
6
|
@cmds << cmd
|
7
7
|
end
|
8
8
|
attr_reader :cmds
|
9
|
+
|
10
|
+
def exit; end
|
9
11
|
end
|
10
12
|
|
11
13
|
CASES = {
|
@@ -45,6 +47,23 @@ CASES = {
|
|
45
47
|
%r{standalone},
|
46
48
|
%r{(start|open) http://localhost:}
|
47
49
|
],
|
50
|
+
|
51
|
+
"rurema --preview" => [
|
52
|
+
%r{cd .*doctree/refm/api/src},
|
53
|
+
],
|
54
|
+
|
55
|
+
"rurema --preview _builtin/Array" => [
|
56
|
+
%r{bc-tohtml.*_builtin/Array .*rurema_preview.html},
|
57
|
+
],
|
58
|
+
|
59
|
+
"rurema --preview _builtin/Array Array#pop" => [
|
60
|
+
%r{bc-tohtml.*_builtin/Array --target=Array#pop.*rurema_preview.html},
|
61
|
+
],
|
62
|
+
|
63
|
+
"rurema --preview Array --browser" => [
|
64
|
+
%r{bc-tohtml},
|
65
|
+
%r{(start|open) .*rurema_preview.html}
|
66
|
+
],
|
48
67
|
}
|
49
68
|
|
50
69
|
describe MyRurema do
|
data/src/myrurema.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'pathname'
|
3
3
|
require 'shellwords'
|
4
|
+
require 'tmpdir'
|
4
5
|
|
5
6
|
class Pathname; alias / +; end
|
6
7
|
|
@@ -12,7 +13,6 @@ class Options
|
|
12
13
|
@dry_run = false
|
13
14
|
@ruremadir = Pathname("~/.rurema").expand_path
|
14
15
|
@rubyver = RUBY_VERSION
|
15
|
-
@query = ""
|
16
16
|
|
17
17
|
@optionparser = OptionParser.new{|o|
|
18
18
|
o.on("--init",
|
@@ -27,13 +27,19 @@ class Options
|
|
27
27
|
"start web server"){
|
28
28
|
@command = :server
|
29
29
|
}
|
30
|
+
o.on("--preview",
|
31
|
+
"render a reference as HTML"){
|
32
|
+
@command = :preview
|
33
|
+
}
|
34
|
+
|
35
|
+
o.on("----"){}
|
30
36
|
|
31
37
|
o.on("--port=N",
|
32
38
|
"port number of the web browser (only meaningful with --server)"){|n|
|
33
39
|
@port = n.to_i
|
34
40
|
}
|
35
41
|
o.on("--browser",
|
36
|
-
"open web browser (only meaningful with --server)"){
|
42
|
+
"open web browser (only meaningful with --server or --preview)"){
|
37
43
|
@open_browser = true
|
38
44
|
}
|
39
45
|
o.on("--dry-run",
|
@@ -48,6 +54,9 @@ class Options
|
|
48
54
|
"specify Ruby version (default: #{@rubyver})"){|str|
|
49
55
|
@rubyver = str
|
50
56
|
}
|
57
|
+
|
58
|
+
o.on("-----"){}
|
59
|
+
|
51
60
|
o.on("--version",
|
52
61
|
"show version of myrurema"){
|
53
62
|
puts MyRurema::VERSION
|
@@ -59,12 +68,10 @@ class Options
|
|
59
68
|
exit
|
60
69
|
}
|
61
70
|
}
|
62
|
-
@
|
63
|
-
@query = "" if @query.nil?
|
64
|
-
@num = @num.to_i if @num
|
71
|
+
@rest_args = @optionparser.parse(argv)
|
65
72
|
end
|
66
73
|
attr_accessor :dry_run, :ruremadir, :rubyver, :open_browser
|
67
|
-
attr_accessor :command, :
|
74
|
+
attr_accessor :command, :port, :rest_args
|
68
75
|
|
69
76
|
def ruremadir=(dir)
|
70
77
|
@ruremadir = Pathname(dir)
|
@@ -84,15 +91,18 @@ class MyRurema
|
|
84
91
|
end
|
85
92
|
|
86
93
|
def run
|
87
|
-
|
88
|
-
when @opt.command
|
94
|
+
if @opt.command
|
89
95
|
send(@opt.command)
|
90
|
-
when @opt.query.empty?
|
91
|
-
@opt.usage
|
92
|
-
when @opt.num
|
93
|
-
search_num(@opt.query, @opt.num, @opt.rubyver)
|
94
96
|
else
|
95
|
-
|
97
|
+
query, num = *@opt.rest_args
|
98
|
+
case
|
99
|
+
when query && num
|
100
|
+
search_num(query, num.to_i, @opt.rubyver)
|
101
|
+
when query
|
102
|
+
search(query, @opt.rubyver)
|
103
|
+
else
|
104
|
+
@opt.usage
|
105
|
+
end
|
96
106
|
end
|
97
107
|
end
|
98
108
|
|
@@ -144,6 +154,28 @@ class MyRurema
|
|
144
154
|
end
|
145
155
|
th.join
|
146
156
|
end
|
157
|
+
|
158
|
+
TMP_FILE = Pathname(Dir.tmpdir)/'rurema_preview.html'
|
159
|
+
def preview
|
160
|
+
file, target = *@opt.rest_args
|
161
|
+
|
162
|
+
if file
|
163
|
+
error "file not found: #{file}" unless File.exist?(file)
|
164
|
+
|
165
|
+
result = sh "#{bitclust_path/'tools/bc-tohtml.rb'}" +
|
166
|
+
" #{file}" +
|
167
|
+
(target ? " --target=#{target}" : "") +
|
168
|
+
" --ruby=#{@opt.rubyver}" +
|
169
|
+
" > #{TMP_FILE}"
|
170
|
+
|
171
|
+
if result && @opt.open_browser
|
172
|
+
cmd = (/mswin/ =~ RUBY_PLATFORM) ? "start" : "open"
|
173
|
+
sh "#{cmd} #{TMP_FILE}"
|
174
|
+
end
|
175
|
+
else
|
176
|
+
sh "cd #{doctree_path/'refm/api/src'}"
|
177
|
+
end
|
178
|
+
end
|
147
179
|
|
148
180
|
private
|
149
181
|
|
@@ -201,5 +233,6 @@ class MyRurema
|
|
201
233
|
|
202
234
|
def error(msg)
|
203
235
|
$stderr.puts msg
|
236
|
+
exit
|
204
237
|
end
|
205
238
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myrurema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.4
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Yutaka HARA
|
@@ -28,6 +28,7 @@ extensions: []
|
|
28
28
|
extra_rdoc_files:
|
29
29
|
- README.mkd
|
30
30
|
files:
|
31
|
+
- HISTORY
|
31
32
|
- README.mkd
|
32
33
|
- Rakefile
|
33
34
|
- VERSION
|