Sha256: 1e8f4c7fb00cb930566b8d4949d7306115ed73f516d36071fffaa21775437807

Contents?: true

Size: 842 Bytes

Versions: 1

Compression:

Stored size: 842 Bytes

Contents

require_relative 'database'
require_relative 'report'
module GithubStats
  module Reports
    # Provides week-by-week breakdown of issues created, grouped by week
    # with a 3 week moving average.
    class CreatedByWeekReport
      attr_accessor :search_string, :options

      include Report

      def results
        results = with_moving_average(:add_rate,
                                      by_week_created(with_qty(issues)))
        Reports::Results.new(results, keys: [:week_created, :qty, :add_rate])
      end

      private def by_week_created(dataset)
        dataset.select_append { strftime('%Y-%W', created_at).as(week_created) }
          .group_by(:week_created)
      end

      private def issues
        db.issues.where(search_string: search_string)
          .where { created_at !~ nil }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
github-stats-0.2.0 lib/github_stats/created_by_week_report.rb