Class: RDoc::Parser::ChangeLog::Git::LogEntry
- Inherits:
-
Struct
- Object
- Struct
- RDoc::Parser::ChangeLog::Git::LogEntry
- Defined in:
- lib/rdoc/parser/changelog.rb
Constant Summary collapse
- HEADING_LEVEL =
3
Instance Attribute Summary collapse
-
#author ⇒ Object
Returns the value of attribute author.
-
#base ⇒ Object
Returns the value of attribute base.
-
#commit ⇒ Object
Returns the value of attribute commit.
-
#contents ⇒ Object
Returns the value of attribute contents.
-
#date ⇒ Object
Returns the value of attribute date.
-
#email ⇒ Object
Returns the value of attribute email.
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
- #aref ⇒ Object
-
#initialize(base, commit, author, email, date, contents) ⇒ LogEntry
constructor
A new instance of LogEntry.
- #label(context = nil) ⇒ Object
- #legacy_aref ⇒ Object
- #legacy_label(context = nil) ⇒ Object
- #level ⇒ Object
-
#pretty_print(q) ⇒ Object
:nodoc:.
- #text ⇒ Object
Constructor Details
#initialize(base, commit, author, email, date, contents) ⇒ LogEntry
Returns a new instance of LogEntry.
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 |
# File 'lib/rdoc/parser/changelog.rb', line 274 def initialize(base, commit, , email, date, contents) case contents when String if base&.match(%r[\A([^:/]+:/+[^/]+/)[^/]+/[^/]+/]) repo, host = $&, $1 contents = contents.dup # base: https://github.com/ruby/ruby/ # Fix #15791 -> Fix [#15791](https://github.com/ruby/ruby/pull/15791) # GH-15791 -> [GH-15791](https://github.com/ruby/ruby/pull/15791) # (#15791) -> ([#15791](https://github.com/ruby/ruby/pull/15791)) contents.gsub!(/\b(?:(?i:fix(?:e[sd])?) +)\K\#(\d+\b)|\bGH-(\d+)\b|\(\K\#(\d+)(?=\))/) do "[#{$&}](#{repo}pull/#{$1 || $2 || $3})" end # repo#PR, repo@HASH # ruby/ruby#15791 -> [ruby/ruby#15791](https://github.com/ruby/ruby/pull/15791) # ruby/ruby@a8a989b6 -> [ruby/ruby@a8a989b6](https://github.com/ruby/ruby/commit/a8a989b6) # ref in branckets is not extended # [ruby/net-imap#543][ruby/ruby#15791] -> [ruby/net-imap#543][ruby/ruby#15791] contents.gsub!(%r[(?<![-\w#/@]|\]\[)([-\w]+/[-\w]+)(?:@(\h{8,40})|\#(\d+))(?![-\w#/@]|\]\[)]) do path = defined?($2) ? "commit/#{$2}" : "pull/#{$3}" "[#{$&}](#{host}#{$1}/#{path})" end end contents = RDoc::Markdown.parse(contents).parts.each do |body| case body when RDoc::Markup::Heading body.level += HEADING_LEVEL + 1 end end case first = contents[0] when RDoc::Markup::Paragraph contents[0] = RDoc::Markup::Heading.new(HEADING_LEVEL + 1, first.text) end end super end |
Instance Attribute Details
#author ⇒ Object
Returns the value of attribute author
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def @author end |
#base ⇒ Object
Returns the value of attribute base
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def base @base end |
#commit ⇒ Object
Returns the value of attribute commit
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def commit @commit end |
#contents ⇒ Object
Returns the value of attribute contents
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def contents @contents end |
#date ⇒ Object
Returns the value of attribute date
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def date @date end |
#email ⇒ Object
Returns the value of attribute email
271 272 273 |
# File 'lib/rdoc/parser/changelog.rb', line 271 def email @email end |
Instance Method Details
#accept(visitor) ⇒ Object
343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 |
# File 'lib/rdoc/parser/changelog.rb', line 343 def accept(visitor) visitor.accept_heading self begin if visitor.respond_to?(:code_object=) code_object = visitor.code_object visitor.code_object = self end contents.each do |body| body.accept visitor end ensure if visitor.respond_to?(:code_object) visitor.code_object = code_object end end end |
#aref ⇒ Object
316 317 318 |
# File 'lib/rdoc/parser/changelog.rb', line 316 def aref commit end |
#label(context = nil) ⇒ Object
324 325 326 |
# File 'lib/rdoc/parser/changelog.rb', line 324 def label(context = nil) aref end |
#legacy_aref ⇒ Object
320 321 322 |
# File 'lib/rdoc/parser/changelog.rb', line 320 def legacy_aref "label-#{commit}" end |
#legacy_label(context = nil) ⇒ Object
328 329 330 |
# File 'lib/rdoc/parser/changelog.rb', line 328 def legacy_label(context = nil) legacy_aref end |
#level ⇒ Object
312 313 314 |
# File 'lib/rdoc/parser/changelog.rb', line 312 def level HEADING_LEVEL end |
#pretty_print(q) ⇒ Object
:nodoc:
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 |
# File 'lib/rdoc/parser/changelog.rb', line 360 def pretty_print(q) # :nodoc: q.group(2, '[log_entry: ', ']') do q.text commit q.text ',' q.breakable q.group(2, '[date: ', ']') { q.text date } q.text ',' q.breakable q.group(2, '[author: ', ']') { q.text } q.text ',' q.breakable q.group(2, '[email: ', ']') { q.text email } q.text ',' q.breakable q.pp contents end end |
#text ⇒ Object
332 333 334 335 336 337 338 339 340 341 |
# File 'lib/rdoc/parser/changelog.rb', line 332 def text case base when nil "#{date}" when /%s/ "{#{date}}[#{base % commit}]" else "{#{date}}[#{base}#{commit}]" end + " {#{}}[mailto:#{email}]" end |