diff options
| author | Daniel Bovensiepen <[email protected]> | 2014-04-15 13:05:40 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2014-04-15 13:05:40 +0800 |
| commit | 1017868e786c5e07218523b8686b9f11a7a81eb7 (patch) | |
| tree | cd0ba54a111bc6b67b5b616e75ef1684411ceee8 | |
| parent | d83c66c8543b78736e0bd37819e5457c495c4164 (diff) | |
| download | mruby-1017868e786c5e07218523b8686b9f11a7a81eb7.tar.gz mruby-1017868e786c5e07218523b8686b9f11a7a81eb7.zip | |
Implement switch for line numbers
| -rw-r--r-- | doc/language/mrbdoc/lib/mrbdoc_docu.rb | 43 | ||||
| -rwxr-xr-x | doc/language/mrbdoc/mrbdoc.rb | 17 |
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 |
