Sha256: a1ca9cdf478922a44d297471aab91e4825d58fbbbd01035687244b535f6db9e4

Contents?: true

Size: 1.21 KB

Versions: 162

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

require 'avm/tools/core_ext'
require 'clipboard'

module Avm
  module Git
    module Issue
      class Deliver
        enable_simple_cache
        enable_speaker

        common_constructor :git_repo

        def run
          push
          clipboard_copy_tracker_message
          true
        end

        def start_banner
          infov 'Branch name', branch_name
          infov 'Commit ID', branch_commit_id
          infov 'Push arguments', ::Shellwords.join(push_args)
        end

        private

        def branch_commit_id
          git_repo.rev_parse(branch_name)
        end

        def branch_name_uncached
          git_repo.command('rev-parse', '--abbrev-ref', 'HEAD').execute!.strip
        end

        def clipboard_copy_tracker_message
          ::Clipboard.copy(textile_tracker_message)
          infov 'Copied to clipboard', textile_tracker_message
        end

        def push
          git_repo.command(*push_args).system!
        end

        def push_args
          %w[push origin --force] + ["#{branch_name}:refs/heads/#{branch_name}"]
        end

        def textile_tracker_message
          "#{branch_name}: commit:#{branch_commit_id}."
        end
      end
    end
  end
end

Version data entries

162 entries across 162 versions & 4 rubygems

Version Path
eac_tools-0.84.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.83.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.82.0 sub/avm-git/lib/avm/git/issue/deliver.rb
avm-git-0.14.0 lib/avm/git/issue/deliver.rb
eac_tools-0.81.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.80.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.79.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.78.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.77.1 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.77.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.76.1 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.76.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.75.2 sub/avm-git/lib/avm/git/issue/deliver.rb
avm-git-0.13.4 lib/avm/git/issue/deliver.rb
eac_tools-0.75.1 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.75.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.74.1 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.74.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.73.0 sub/avm-git/lib/avm/git/issue/deliver.rb
eac_tools-0.72.0 sub/avm-git/lib/avm/git/issue/deliver.rb