Sha256: d09e1297c178cc1be11b5aad60a8bf446d38e769697393c09fe4dac5d5f3c394

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require "hanami/view"
require "pathname"
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 :at, default: Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S%z")
        expose :date, default: Time.now.utc.strftime("%Y-%m-%d")
        expose :commits
        expose :uri, default: Container[:configuration].project_uri

        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

1 entries across 1 versions & 1 rubygems

Version Path
milestoner-17.0.0 lib/milestoner/views/milestones/show.rb