Sha256: 960e00862898e80f6770a4bb3d32e4bd08289a47f8d5ca0761bc20f181cb3aab

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require "hanami/view"
require "refinements/string"

module Milestoner
  module Views
    module Milestones
      # Produces release notes in HTML format.
      class Show < Hanami::View
        using Refinements::String

        config.default_context = Context.new
        config.part_namespace = Parts
        config.paths = Container[:configuration].build_template_paths
        config.template = "milestones/show"

        expose :commits
        expose :uri, default: Container[:configuration].project_uri
        expose :at, default: Time.now.utc
        expose(:date) { |at| at.strftime "%Y-%m-%d" }
        expose(:datetime) { |at| at.strftime "%Y-%m-%dT%H:%M:%S%z" }

        expose :total_commits do |commits|
          total = commits.size
          "#{total} commit".pluralize "s", total
        end

        expose :total_files do |commits|
          total = commits.sum(&:files_changed)
          "#{total} file".pluralize "s", total
        end

        expose :total_deletions do |commits|
          total = commits.sum(&:deletions)
          "#{total} deletion".pluralize "s", total
        end

        expose :total_insertions do |commits|
          total = commits.sum(&:insertions)
          "#{total} insertion".pluralize "s", total
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
milestoner-17.11.0 lib/milestoner/views/milestones/show.rb
milestoner-17.10.0 lib/milestoner/views/milestones/show.rb
milestoner-17.9.0 lib/milestoner/views/milestones/show.rb