Sha256: f94e532a85daa9f06e8462938c63a3e602b1ac7a55b3c9e9862c5eb021163cf7
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
require 'json' def init sections :header, [:topic_doc, :method_details_list, [T('method_details')]] @resource = object @beta = options[:controllers].any? { |c| c.tag('beta') } end def method_details_list @meths = options[:controllers].map { |c| c.meths(:inherited => false, :included => false) }.flatten @meths = run_verifier(@meths) erb(:method_details_list) end def topic_doc @docstring = options[:controllers].map { |c| c.docstring }.join("\n\n") @object = @object.dup def @object.source_type; nil; end @json_objects = options[:json_objects][@resource] || [] erb(:topic_doc) end def properties_of_model(json) begin JSON::parse(json || '')['properties'] rescue JSON::ParserError nil end end def word_wrap(text, col_width=80) text.gsub!( /(\S{#{col_width}})(?=\S)/, '\1 ' ) text.gsub!( /(.{1,#{col_width}})(?:\s+|$)/, "\\1\n" ) text end def indent(str, amount = 2, char = ' ') str.gsub(/^/, char * amount) end def render_comment(string, wrap = 75) string ? indent(word_wrap(string), 2, '/') : '' end def render_value(value, type = 'string') case type when 'integer', 'double', 'number' then value.to_s else %{"#{value}"} end end def render_properties(json) if properties = properties_of_model(json) "{\n" + indent( properties.map do |name, prop| "\n" + render_comment(prop['description']) + %{"#{name}": } + render_value(prop['example'], prop['type']) end.join(",\n")) + "\n}" end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
yard-api-0.2.3 | templates/api/topic/html/setup.rb |
yard-api-0.2.2 | templates/api/topic/html/setup.rb |
yard-api-0.2.1 | templates/api/topic/html/setup.rb |