Module: YARD::Templates::Helpers::BaseHelper
- Defined in:
- lib/yard/templates/helpers/base_helper.rb
Overview
The base helper module included in all templates.
Instance Attribute Summary collapse
-
#object ⇒ Object
Returns the value of attribute object.
-
#owner ⇒ CodeObjects::Base
readonly
The object representing the current generated page.
-
#serializer ⇒ Object
Returns the value of attribute serializer.
Managing Global Template State collapse
-
#globals ⇒ OpenStruct
An object that keeps track of global state throughout the entire template rendering process (including any sub-templates).
Running the Verifier collapse
-
#run_verifier(list) ⇒ Array<CodeObjects::Base>
Runs a list of objects against the Verifier object passed into the template and returns the subset of verified objects.
Escaping Text collapse
-
#h(text) ⇒ Object
Escapes text.
Linking Objects and URLs collapse
-
#link_file(filename, title = nil, anchor = nil) ⇒ String
Links to an extra file.
-
#link_include_file(file) ⇒ String
Include a file as a docstring in output.
-
#link_include_object(obj) ⇒ String
Includes an object’s docstring into output.
-
#link_object(obj, title = nil) ⇒ String
Links to an object with an optional title.
-
#link_url(url, title = nil, params = nil) ⇒ String
Links to a URL.
-
#linkify(*args) ⇒ Object
Links objects or URLs.
Formatting Object Attributes collapse
-
#format_object_title(object) ⇒ String
The page title name for a given object.
-
#format_object_type(object) ⇒ String
The human-readable formatted #type for the object.
-
#format_source(value) ⇒ String
Indents and formats source code.
-
#format_types(list, brackets = true) ⇒ String
Formats a list of return types for output and links each type.
Instance Attribute Details
#object ⇒ Object
Returns the value of attribute object.
5 6 7 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 5 def object @object end |
#owner ⇒ CodeObjects::Base (readonly)
Returns the object representing the current generated page. Might not be the current #object when inside sub-templates.
9 10 11 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 9 def owner @owner end |
#serializer ⇒ Object
Returns the value of attribute serializer.
5 6 7 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 5 def serializer @serializer end |
Instance Method Details
#format_object_title(object) ⇒ String
Returns the page title name for a given object.
196 197 198 199 200 201 202 203 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 196 def format_object_title(object) case object when YARD::CodeObjects::RootObject "Top Level Namespace" else format_object_type(object) + ": " + object.title end end |
#format_object_type(object) ⇒ String
Returns the human-readable formatted #type for the object.
182 183 184 185 186 187 188 189 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 182 def format_object_type(object) case object when YARD::CodeObjects::ClassObject object.is_exception? ? "Exception" : "Class" else object.type.to_s.capitalize end end |
#format_source(value) ⇒ String
Indents and formats source code
209 210 211 212 213 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 209 def format_source(value) sp = value.split("\n").last[/^(\s+)/, 1] num = sp ? sp.size : 0 value.gsub(/^\s{#{num}}/, '') end |
#format_types(list, brackets = true) ⇒ String
Formats a list of return types for output and links each type.
168 169 170 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 168 def format_types(list, brackets = true) list.nil? || list.empty? ? "" : (brackets ? "(#{list.join(", ")})" : list.join(", ")) end |
#globals ⇒ OpenStruct
An object that keeps track of global state throughout the entire template rendering process (including any sub-templates).
20 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 20 def globals; .globals end |
#h(text) ⇒ Object
Escapes text. This is used a lot by the HtmlHelper and there should be some helper to “clean up” text for whatever, this is it.
38 39 40 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 38 def h(text) text end |
#link_file(filename, title = nil, anchor = nil) ⇒ String
Links to an extra file
152 153 154 155 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 152 def link_file(filename, title = nil, anchor = nil) # rubocop:disable Lint/UnusedMethodArgument return filename.filename if CodeObjects::ExtraFileObject === filename filename end |
#link_include_file(file) ⇒ String
Include a file as a docstring in output
113 114 115 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 113 def link_include_file(file) File.read(file) end |
#link_include_object(obj) ⇒ String
Includes an object’s docstring into output.
105 106 107 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 105 def link_include_object(obj) obj.docstring end |
#link_object(obj, title = nil) ⇒ String
Links to an object with an optional title
122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 122 def link_object(obj, title = nil) return title if title case obj when YARD::CodeObjects::Base, YARD::CodeObjects::Proxy obj.title when String, Symbol P(obj).title else obj end end |
#link_url(url, title = nil, params = nil) ⇒ String
Links to a URL
141 142 143 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 141 def link_url(url, title = nil, params = nil) # rubocop:disable Lint/UnusedMethodArgument url end |
#linkify(*args) ⇒ Object
Links objects or URLs. This method will delegate to the correct link_
method depending on the arguments passed in.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 55 def linkify(*args) if args.first.is_a?(String) case args.first when %r{://}, /^mailto:/ link_url(args[0], args[1], {:target => '_parent'}.merge(args[2] || {})) when /^include:file:(\S+)/ file = $1 relpath = File.relative_path(Dir.pwd, File.(file)) if relpath =~ /^\.\./ log.warn "Cannot include file from path `#{file}'" "" elsif File.file?(file) link_include_file(file) else log.warn "Cannot find file at `#{file}' for inclusion" "" end when /^include:(\S+)/ path = $1 obj = YARD::Registry.resolve(object.namespace, path) if obj link_include_object(obj) else log.warn "Cannot find object at `#{path}' for inclusion" "" end when /^render:(\S+)/ path = $1 obj = YARD::Registry.resolve(object, path) if obj opts = .dup opts.delete(:serializer) obj.format(opts) else '' end when /^file:(\S+?)(?:#(\S+))?$/ link_file($1, args[1] ? args[1] : nil, $2) else link_object(*args) end else link_object(*args) end end |
#run_verifier(list) ⇒ Array<CodeObjects::Base>
Runs a list of objects against the Verifier object passed into the template and returns the subset of verified objects.
30 31 32 |
# File 'lib/yard/templates/helpers/base_helper.rb', line 30 def run_verifier(list) .verifier ? .verifier.run(list) : list end |