Sha256: 7cbd91b01ebfe02969cd28c02995bdab9834b007ddc68b14a9c20c1441b0b8b3

Contents?: true

Size: 1.63 KB

Versions: 11

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

require "refinements/struct"

module Hanamismith
  module Builders
    module Documentation
      # Builds project skeleton README documentation.
      class Readme < Rubysmith::Builders::Documentation::Readme
        using Refinements::Struct

        def call
          return configuration unless configuration.build_readme

          super
          builder.call(configuration.merge(template_path: "%project_name%/README.#{kind}.erb"))
                 .replace(/Setup.+Usage/m, setup)
                 .replace("Rubysmith", "Hanamismith")
                 .replace("rubysmith", "hanamismith")

          configuration
        end

        private

        attr_reader :configuration, :builder

        def kind = configuration.documentation_format

        def setup = kind == "adoc" ? ascii_setup : markdown_setup

        # rubocop:disable Metrics/MethodLength
        def ascii_setup
          <<~CONTENT.strip
            Setup

            To set up the project, run:

            [source,bash]
            ----
            git clone #{configuration.computed_project_url_source}
            cd #{configuration.project_name}
            bin/setup
            ----

            == Usage
          CONTENT
        end

        def markdown_setup
          <<~CONTENT.strip
            Setup

            To set up the project, run:

            ``` bash
            git clone #{configuration.computed_project_url_source}
            cd #{configuration.project_name}
            bin/setup
            ```

            ## Usage
          CONTENT
        end
        # rubocop:enable Metrics/MethodLength
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
hanamismith-0.34.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.33.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.32.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.31.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.30.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.29.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.28.1 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.28.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.27.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.26.0 lib/hanamismith/builders/documentation/readme.rb
hanamismith-0.25.0 lib/hanamismith/builders/documentation/readme.rb