Method: NovelConverter#add_date_to_title

Defined in:
lib/novelconverter.rb

#add_date_to_title(title) ⇒ Object

タイトルに日付を付与する。日付の種類は title_date_target で指定する

strftime の書式の他に拡張書式として $s, $t をサポートする$s 2035年くらいまでの残り時間を10分単位の36進数(4桁)$t タイトル自身。書式の中で自由な位置にタイトルを埋め込める$ns 小説が掲載されているサイト名$nt 小説種別(短編 or 連載)$ntag 小説のタグをカンマ区切りにしたもの

※ $t を使用した場合、title_date_align を無視する



487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
# File 'lib/novelconverter.rb', line 487

def add_date_to_title(title)
  result = title

  if @setting.enable_add_date_to_title
    new_arrivals_date = @data[@setting.title_date_target] || Time.now
    special_format_chars = [
      ["$s", calc_reverse_short_time(new_arrivals_date)],
      ["$ns", @data["sitename"]],
      ["$ntag", tags_join_comma(@data)],
      ["$nt", Narou.novel_type_text(@data["novel_type"])],
      ["$t", title]
    ]

    date_str = new_arrivals_date.strftime(@setting.title_date_format)
    doller_t_included = date_str.include?("$t")

    special_format_chars.each do |(symbol, replace_text)|
      date_str.gsub!(symbol, replace_text)
    end

    if doller_t_included
      # $t で任意の位置にタイトルを埋め込むために title_date_align は無視する
      result = date_str
    else
      if @setting.title_date_align == "left"
        result = date_str + result
      else  # right
        result = title + date_str
      end
    end
  end
  result
end