Sha256: 577b3801c36a669c0a980deb20fbbe99e7762912a87927bacce3486dfc8e1564
Contents?: true
Size: 1.35 KB
Versions: 6
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require_relative '../helpers/os_helper' require_relative '../github/api_interface' require_relative '../github/gist' module Geet module Services class CreateGist include Geet::Helpers::OsHelper API_TOKEN_KEY = 'GITHUB_API_TOKEN' DEFAULT_GIT_CLIENT = Geet::Utils::GitClient.new def initialize(out: $stdout) @out = out api_token = extract_env_api_token @api_interface = Geet::Github::ApiInterface.new(api_token) end # options: # :description # :publik: defaults to false # :open_browser defaults to true # def execute(full_filename, stdin: false, description: nil, publik: false, open_browser: false) content = stdin ? $stdin.read : IO.read(full_filename) gist_access = publik ? 'public' : 'private' @out.puts "Creating a #{gist_access} gist..." filename = File.basename(full_filename) gist = Geet::Github::Gist.create(filename, content, @api_interface, description: description, publik: publik) if open_browser open_file_with_default_application(gist.link) else @out.puts "Gist address: #{gist.link}" end end private def extract_env_api_token ENV[API_TOKEN_KEY] || raise("#{API_TOKEN_KEY} not set!") end end end end
Version data entries
6 entries across 6 versions & 1 rubygems