class Documentize::Builder
Constants
- REGEX
Public Class Methods
build_args(args)
click to toggle source
# File lib/documentize/builder.rb, line 25 def build_args(args) str = "" str << "(" args.each do |arg| str << "#{arg[:name]}" str << " = #{arg[:default]}" if arg[:default] str << ", " unless arg == args[-1] end str << ")" end
build_code(code, level = 0)
click to toggle source
# File lib/documentize/builder.rb, line 36 def build_code(code, level = 0) make_public if(code[:type] == "class") str = "" str << build_docs(code, level) if code[:doc] str << indent(level) str << "#{code[:type] == "method" ? "def" : code[:type]} #{code[:name]}" str << build_args(code[:args]) if code[:args] str << "\n\n" code[:content].each do |item| if item.is_a?(Hash) str << build_code(item, level+1) else make_private if(item =~ /private/) level -= 1 if item =~ /end/ && item !~ REGEX[:bad] str << indent(level+1) + "#{item} \n" str << "\n" if item =~ /end/ && item !~ REGEX[:bad] level += 1 if (item =~ REGEX[:do_block] || item =~ REGEX[:flow]) && item !~ REGEX[:bad] end end str << indent(level) str << "end\n" level -= 1 str << "\n" end
build_docs(branch, level = 0)
click to toggle source
# File lib/documentize/builder.rb, line 12 def build_docs(branch, level = 0) doc_str = "" doc_str << "#{indent(level)}# #{@private ? 'Private' : 'Public'}: #{branch[:desc]}\n#{indent(level)}#\n" if branch[:args] branch[:args].each do |arg| doc_str << "#{indent(level)}# #{arg[:name]} - #{arg[:type]}: #{arg[:desc]}\n" end doc_str << "#{indent(level)}# \n" end doc_str end
Private Class Methods
indent(level)
click to toggle source
# File lib/documentize/builder.rb, line 77 def indent(level) ' ' * level end
make_private()
click to toggle source
# File lib/documentize/builder.rb, line 69 def make_private @private = true end
make_public()
click to toggle source
# File lib/documentize/builder.rb, line 73 def make_public @private = false end