Sha256: 168fce2dde5059418c6394f1576b2c39cf09a77a3d6b4ec5a7609db98d741370

Contents?: true

Size: 772 Bytes

Versions: 3

Compression:

Stored size: 772 Bytes

Contents

require "obst/last_seen"

module Obst
  class LongTimeNoSee
    def initialize(**opts)
      opts = opts.merge(days: 7)
      if cfg = opts[:cfg]
        opts[:pathspec] ||= cfg.dig('long_time_no_see', 'pathspec')
      end
      @weekly = LastSeen.new(**opts)
    end

    def to_s
      @buffer = ["# Long time no see\n"]
      @weekly.each_with_index do |record, i|
        @buffer << "- #{record.time} #{week_count(i)} (#{record.file_changes.count})"
        list_files(record)
      end
      @buffer.join("\n")
    end

    def list_files(record)
      record.group_inlines do |line|
        @buffer << "\t- #{line}"
      end
    end

    def week_count(i)
      return 'today' if i == 0
      return '1.week.ago' if i == 1
      "#{i}.weeks.ago"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
obst-0.1.10 lib/obst/long_time_no_see.rb
obst-0.1.9 lib/obst/long_time_no_see.rb
obst-0.1.8 lib/obst/long_time_no_see.rb