summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2014-04-15 13:05:40 +0800
committerDaniel Bovensiepen <[email protected]>2014-04-15 13:05:40 +0800
commit1017868e786c5e07218523b8686b9f11a7a81eb7 (patch)
treecd0ba54a111bc6b67b5b616e75ef1684411ceee8
parentd83c66c8543b78736e0bd37819e5457c495c4164 (diff)
downloadmruby-1017868e786c5e07218523b8686b9f11a7a81eb7.tar.gz
mruby-1017868e786c5e07218523b8686b9f11a7a81eb7.zip
Implement switch for line numbers
-rw-r--r--doc/language/mrbdoc/lib/mrbdoc_docu.rb43
-rwxr-xr-xdoc/language/mrbdoc/mrbdoc.rb17
2 files changed, 40 insertions, 20 deletions
diff --git a/doc/language/mrbdoc/lib/mrbdoc_docu.rb b/doc/language/mrbdoc/lib/mrbdoc_docu.rb
index 116228927..b2f45851e 100644
--- a/doc/language/mrbdoc/lib/mrbdoc_docu.rb
+++ b/doc/language/mrbdoc/lib/mrbdoc_docu.rb
@@ -1,18 +1,18 @@
class MRBDoc
- def write_documentation dir, &block
+ def write_documentation dir, cfg, &block
block.call "MRBDOC\twrite to #{File.expand_path(dir)}"
- write(dir) do |progress|
+ write(dir, cfg) do |progress|
block.call progress
end
end
private
- def write dir
+ def write dir, cfg
File.open(File.expand_path('Core.md', dir), 'w+') do |io|
- print_core_classes(io)
- print_core_modules(io)
+ print_core_classes(io, cfg)
+ print_core_modules(io, cfg)
end
end
@@ -32,7 +32,7 @@ class MRBDoc
core_list
end
- def print_core_classes(io)
+ def print_core_classes(io, cfg)
core_list = get_core_list :each_class
io.puts "# Core Classes\n\n"
core_list.sort.each do |name, hsh|
@@ -51,12 +51,12 @@ ISO Code | Mixins | Source File
#{iso} | #{mixins} | #{file}
CLASS
- print_class_methods(io, hsh)
- print_methods(io, hsh)
+ print_class_methods(io, hsh, cfg)
+ print_methods(io, hsh, cfg)
end
end
- def print_core_modules(io)
+ def print_core_modules(io, cfg)
core_list = get_core_list :each_module
io.puts "# Core Modules\n\n"
core_list.sort.each do |name, hsh|
@@ -73,29 +73,34 @@ ISO Code | Source File
#{iso} | #{file}
CLASS
- print_class_methods(io, hsh)
- print_methods(io, hsh)
+ print_class_methods(io, hsh, cfg)
+ print_methods(io, hsh, cfg)
end
end
- def print_methods(io, hsh)
+ def print_methods(io, hsh, cfg)
return unless hsh[:methods].size > 0
io.puts "### Methods\n\n"
hsh[:methods].sort.each do |met_name, met_hsh|
- print_method(io, met_name, met_hsh)
+ print_method(io, met_name, met_hsh, cfg)
end
end
- def print_class_methods(io, hsh)
+ def print_class_methods(io, hsh, cfg)
return unless hsh[:class_methods].size > 0
io.puts "### Class Methods\n\n"
hsh[:class_methods].sort.each do |met_name, met_hsh|
- print_method(io, met_name, met_hsh)
+ print_method(io, met_name, met_hsh, cfg)
end
end
- def print_method(io, met_name, met_hsh)
- line_no = find_c_func(met_hsh[:c_func])[:line_no]
+ def print_method(io, met_name, met_hsh, cfg)
+ if cfg[:print_line_no]
+ line_no_head = '| Line'
+ line_no = "| #{find_c_func(met_hsh[:c_func])[:line_no]}"
+ else
+ line_no, line_no_head = '', ''
+ end
file = find_c_file(met_hsh[:rb_class], met_hsh[:c_func])
file = file.split("#{@dir}/")[1]
iso = met_hsh[:iso]
@@ -104,9 +109,9 @@ CLASS
io.puts <<METHOD
#### #{met_name}
-ISO Code | Source File | C Function | Line
+ISO Code | Source File | C Function #{line_no_head}
--- | --- | ---
-#{iso} | #{file} | #{met_hsh[:c_func]} | #{line_no}
+#{iso} | #{file} | #{met_hsh[:c_func]} #{line_no}
METHOD
end
diff --git a/doc/language/mrbdoc/mrbdoc.rb b/doc/language/mrbdoc/mrbdoc.rb
index cd8ae3833..5a8e4641a 100755
--- a/doc/language/mrbdoc/mrbdoc.rb
+++ b/doc/language/mrbdoc/mrbdoc.rb
@@ -7,16 +7,31 @@ require 'mrbdoc_docu'
MRUBY_ROOT = ARGV[0]
DOC_ROOT = ARGV[1]
+_WRITE_LINE_NO = ARGV[2]
raise ArgumentError.new 'mruby root missing!' if MRUBY_ROOT.nil?
raise ArgumentError.new 'doc root missing!' if DOC_ROOT.nil?
+if _WRITE_LINE_NO.nil?
+ WRITE_LINE_NO = true
+else
+ case _WRITE_LINE_NO
+ when 'true'
+ WRITE_LINE_NO = true
+ when 'false'
+ WRITE_LINE_NO = false
+ else
+ raise ArgumentError.new 'Line no parameter has to be false or true!'
+ end
+end
+
mrbdoc = MRBDoc.new
mrbdoc.analyze_code MRUBY_ROOT do |progress|
puts progress
end
-mrbdoc.write_documentation DOC_ROOT do |progress|
+cfg = {:print_line_no => WRITE_LINE_NO}
+mrbdoc.write_documentation DOC_ROOT, cfg do |progress|
puts progress
end