templates/default/module/setup.rb in yard-0.9.16 vs templates/default/module/setup.rb in yard-0.9.17
- old
+ new
@@ -1,167 +1,167 @@
-# frozen_string_literal: true
-include Helpers::ModuleHelper
-
-def init
- sections :header, :box_info, :pre_docstring, T('docstring'), :children,
- :constant_summary, [T('docstring')], :inherited_constants,
- :attribute_summary, [:item_summary], :inherited_attributes,
- :method_summary, [:item_summary], :inherited_methods,
- :methodmissing, [T('method_details')],
- :attribute_details, [T('method_details')],
- :method_details_list, [T('method_details')]
-end
-
-def pre_docstring
- return if object.docstring.blank?
- erb(:pre_docstring)
-end
-
-def children
- @inner = [[:modules, []], [:classes, []]]
- object.children.each do |child|
- @inner[0][1] << child if child.type == :module
- @inner[1][1] << child if child.type == :class
- end
- @inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] }
- return if (@inner[0][1].size + @inner[1][1].size) == 0
- erb(:children)
-end
-
-def methodmissing
- mms = object.meths(:inherited => true, :included => true)
- @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance }
- erb(:methodmissing) if @mm
-end
-
-def method_listing(include_specials = true)
- return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
- return @meths if defined?(@meths) && @meths
- @meths = object.meths(:inherited => false, :included => !options.embed_mixins.empty?)
- unless options.embed_mixins.empty?
- @meths = @meths.reject {|m| options.embed_mixins_match?(m.namespace) == false }
- end
- @meths = sort_listing(prune_method_listing(@meths))
- @meths
-end
-
-def special_method?(meth)
- return true if meth.name(true) == '#method_missing'
- return true if meth.constructor?
- false
-end
-
-def attr_listing
- return @attrs if defined?(@attrs) && @attrs
- @attrs = []
- object.inheritance_tree(true).each do |superclass|
- next if superclass.is_a?(CodeObjects::Proxy)
- next if !options.embed_mixins.empty? &&
- !options.embed_mixins_match?(superclass)
- [:class, :instance].each do |scope|
- superclass.attributes[scope].each do |_name, rw|
- attr = prune_method_listing([rw[:read], rw[:write]].compact, false).first
- @attrs << attr if attr
- end
- end
- break if options.embed_mixins.empty?
- end
- @attrs = sort_listing(@attrs)
-end
-
-def constant_listing
- return @constants if defined?(@constants) && @constants
- @constants = object.constants(:included => false, :inherited => false)
- @constants += object.cvars
- @constants = run_verifier(@constants)
- @constants
-end
-
-def sort_listing(list)
- list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
-end
-
-def inherited_attr_list
- object.inheritance_tree(true)[1..-1].each do |superclass|
- next if superclass.is_a?(YARD::CodeObjects::Proxy)
- next if !options.embed_mixins.empty? && options.embed_mixins_match?(superclass) != false
- attribs = superclass.attributes[:instance]
- attribs = attribs.select {|name, _rw| object.child(:scope => :instance, :name => name).nil? }
- attribs = attribs.sort_by {|args| args.first.to_s }.map {|_n, m| m[:read] || m[:write] }
- attribs = prune_method_listing(attribs, false)
- yield superclass, attribs unless attribs.empty?
- end
-end
-
-def inherited_constant_list
- object.inheritance_tree(true)[1..-1].each do |superclass|
- next if superclass.is_a?(YARD::CodeObjects::Proxy)
- next if !options.embed_mixins.empty? && options.embed_mixins_match?(superclass) != false
- consts = superclass.constants(:included => false, :inherited => false)
- consts = consts.select {|const| object.child(:type => :constant, :name => const.name).nil? }
- consts = consts.sort_by {|const| const.name.to_s }
- consts = run_verifier(consts)
- yield superclass, consts unless consts.empty?
- end
-end
-
-def docstring_full(obj)
- docstring = obj.tags(:overload).size == 1 && obj.docstring.empty? ?
- obj.tag(:overload).docstring : obj.docstring
-
- if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
- docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/, &:upcase).strip)
- end
-
- docstring
-end
-
-def docstring_summary(obj)
- docstring_full(obj).summary
-end
-
-def groups(list, type = "Method")
- groups_data = object.groups
- if groups_data
- list.each {|m| groups_data |= [m.group] if m.group && owner != m.namespace }
- others = list.select {|m| !m.group || !groups_data.include?(m.group) }
- groups_data.each do |name|
- items = list.select {|m| m.group == name }
- yield(items, name) unless items.empty?
- end
- else
- others = []
- group_data = {}
- list.each do |itm|
- if itm.group
- (group_data[itm.group] ||= []) << itm
- else
- others << itm
- end
- end
- group_data.each {|group, items| yield(items, group) unless items.empty? }
- end
-
- return if others.empty?
- if others.first.respond_to?(:scope)
- scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") }
- else
- yield(others, "#{type} Summary")
- end
-end
-
-def scopes(list)
- [:class, :instance].each do |scope|
- items = list.select {|m| m.scope == scope }
- yield(items, scope) unless items.empty?
- end
-end
-
-def mixed_into(object)
- unless globals.mixed_into
- globals.mixed_into = {}
- list = run_verifier Registry.all(:class, :module)
- list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } }
- end
-
- globals.mixed_into[object.path] || []
-end
+# frozen_string_literal: true
+include Helpers::ModuleHelper
+
+def init
+ sections :header, :box_info, :pre_docstring, T('docstring'), :children,
+ :constant_summary, [T('docstring')], :inherited_constants,
+ :attribute_summary, [:item_summary], :inherited_attributes,
+ :method_summary, [:item_summary], :inherited_methods,
+ :methodmissing, [T('method_details')],
+ :attribute_details, [T('method_details')],
+ :method_details_list, [T('method_details')]
+end
+
+def pre_docstring
+ return if object.docstring.blank?
+ erb(:pre_docstring)
+end
+
+def children
+ @inner = [[:modules, []], [:classes, []]]
+ object.children.each do |child|
+ @inner[0][1] << child if child.type == :module
+ @inner[1][1] << child if child.type == :class
+ end
+ @inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] }
+ return if (@inner[0][1].size + @inner[1][1].size) == 0
+ erb(:children)
+end
+
+def methodmissing
+ mms = object.meths(:inherited => true, :included => true)
+ @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance }
+ erb(:methodmissing) if @mm
+end
+
+def method_listing(include_specials = true)
+ return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
+ return @meths if defined?(@meths) && @meths
+ @meths = object.meths(:inherited => false, :included => !options.embed_mixins.empty?)
+ unless options.embed_mixins.empty?
+ @meths = @meths.reject {|m| options.embed_mixins_match?(m.namespace) == false }
+ end
+ @meths = sort_listing(prune_method_listing(@meths))
+ @meths
+end
+
+def special_method?(meth)
+ return true if meth.name(true) == '#method_missing'
+ return true if meth.constructor?
+ false
+end
+
+def attr_listing
+ return @attrs if defined?(@attrs) && @attrs
+ @attrs = []
+ object.inheritance_tree(true).each do |superclass|
+ next if superclass.is_a?(CodeObjects::Proxy)
+ next if !options.embed_mixins.empty? &&
+ !options.embed_mixins_match?(superclass)
+ [:class, :instance].each do |scope|
+ superclass.attributes[scope].each do |_name, rw|
+ attr = prune_method_listing([rw[:read], rw[:write]].compact, false).first
+ @attrs << attr if attr
+ end
+ end
+ break if options.embed_mixins.empty?
+ end
+ @attrs = sort_listing(@attrs)
+end
+
+def constant_listing
+ return @constants if defined?(@constants) && @constants
+ @constants = object.constants(:included => false, :inherited => false)
+ @constants += object.cvars
+ @constants = run_verifier(@constants)
+ @constants
+end
+
+def sort_listing(list)
+ list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
+end
+
+def inherited_attr_list
+ object.inheritance_tree(true)[1..-1].each do |superclass|
+ next if superclass.is_a?(YARD::CodeObjects::Proxy)
+ next if !options.embed_mixins.empty? && options.embed_mixins_match?(superclass) != false
+ attribs = superclass.attributes[:instance]
+ attribs = attribs.select {|name, _rw| object.child(:scope => :instance, :name => name).nil? }
+ attribs = attribs.sort_by {|args| args.first.to_s }.map {|_n, m| m[:read] || m[:write] }
+ attribs = prune_method_listing(attribs, false)
+ yield superclass, attribs unless attribs.empty?
+ end
+end
+
+def inherited_constant_list
+ object.inheritance_tree(true)[1..-1].each do |superclass|
+ next if superclass.is_a?(YARD::CodeObjects::Proxy)
+ next if !options.embed_mixins.empty? && options.embed_mixins_match?(superclass) != false
+ consts = superclass.constants(:included => false, :inherited => false)
+ consts = consts.select {|const| object.child(:type => :constant, :name => const.name).nil? }
+ consts = consts.sort_by {|const| const.name.to_s }
+ consts = run_verifier(consts)
+ yield superclass, consts unless consts.empty?
+ end
+end
+
+def docstring_full(obj)
+ docstring = obj.tags(:overload).size == 1 && obj.docstring.empty? ?
+ obj.tag(:overload).docstring : obj.docstring
+
+ if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
+ docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/, &:upcase).strip)
+ end
+
+ docstring
+end
+
+def docstring_summary(obj)
+ docstring_full(obj).summary
+end
+
+def groups(list, type = "Method")
+ groups_data = object.groups
+ if groups_data
+ list.each {|m| groups_data |= [m.group] if m.group && owner != m.namespace }
+ others = list.select {|m| !m.group || !groups_data.include?(m.group) }
+ groups_data.each do |name|
+ items = list.select {|m| m.group == name }
+ yield(items, name) unless items.empty?
+ end
+ else
+ others = []
+ group_data = {}
+ list.each do |itm|
+ if itm.group
+ (group_data[itm.group] ||= []) << itm
+ else
+ others << itm
+ end
+ end
+ group_data.each {|group, items| yield(items, group) unless items.empty? }
+ end
+
+ return if others.empty?
+ if others.first.respond_to?(:scope)
+ scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") }
+ else
+ yield(others, "#{type} Summary")
+ end
+end
+
+def scopes(list)
+ [:class, :instance].each do |scope|
+ items = list.select {|m| m.scope == scope }
+ yield(items, scope) unless items.empty?
+ end
+end
+
+def mixed_into(object)
+ unless globals.mixed_into
+ globals.mixed_into = {}
+ list = run_verifier Registry.all(:class, :module)
+ list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } }
+ end
+
+ globals.mixed_into[object.path] || []
+end