class GemToys::Template::Release

Template with gem release tool, expanding internally

Constants

VERSION_TYPES

Attributes

changelog_file_name[R]
unreleased_title[R]
version_file_path[R]
version_tag_prefix[R]

Public Class Methods

new( changelog_file_name:, version_file_path:, version_tag_prefix:, unreleased_title: ) click to toggle source
# File lib/gem_toys/template/release.rb, line 16
def initialize(
        changelog_file_name:,
        version_file_path:,
        version_tag_prefix:,
        unreleased_title:
)
        @changelog_file_name = changelog_file_name
        @version_file_path = version_file_path
        @version_tag_prefix = version_tag_prefix
        @unreleased_title = unreleased_title
end

Public Instance Methods

handle_keyword_in_new_version(current_version_parts, version_index) click to toggle source
# File lib/gem_toys/template/release.rb, line 83
def handle_keyword_in_new_version(current_version_parts, version_index)
        current_version_parts.map.with_index do |version_part, index|
                if index < version_index
                        version_part
                elsif index == version_index
                        Integer(version_part) + 1
                else
                        0
                end
        end.join('.')
end
handle_new_version() click to toggle source
# File lib/gem_toys/template/release.rb, line 69
def handle_new_version
        ## https://github.com/dazuma/toys/issues/103
        @new_version =
                if (version_index = self.class::VERSION_TYPES.index(new_version))
                        current_version_parts =
                                current_version.split('.')[0..(self.class::VERSION_TYPES.count - 1)]
                        handle_keyword_in_new_version current_version_parts, version_index
                else
                        new_version
                end

        clear_memery_cache! :current_version
end
manual_check_menu() click to toggle source
# File lib/gem_toys/template/release.rb, line 116
def manual_check_menu
        HighLine.new.choose do |menu|
                menu.layout = :one_line

                menu.prompt = 'Are these changes correct? '

                menu.choice(:yes)
                menu.choice(:no) { abort }
                menu.choice(:refresh) do
                        handle_new_version
                        wait_for_manual_check
                end
        end
end
print_files_diff() click to toggle source
update_version_file() click to toggle source
# File lib/gem_toys/template/release.rb, line 95
def update_version_file
        puts 'Updating version file...'

        File.write(
                version_file_path,
                version_file_content.sub(/(VERSION = )'.+'/, "\\1'#{@new_version}'")
        )
end
wait_for_manual_check() click to toggle source
# File lib/gem_toys/template/release.rb, line 104
def wait_for_manual_check
        print_files_diff

        manual_check_menu
end