Sha256: 870a9b1c6630bc9633ec7850c194eb640dd4bb1e74a003f7bc2761ed807d4bed

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

require_relative "../../../boilercode"

module Boilercode
  module Commands
    class Snippets
      class Create < Boilercode::Command
        def initialize(options)
          @options = options
        end

        def execute(input: $stdin, output: $stdout)
          res = client.post("/snippets", payload(@options))
          if res.code == 201
            response = parse_json(res)
            output.puts pastel.blue(link_to(response.name, response_url(response.url)))
          else
            output.puts pastel.red res
          end
        end

        def response_url(url)
          url.gsub(".json", "")
        end

        def payload(options)
          {
            snippet: {
              code: Clipboard.paste,
              language:,
              name:
            }
          }
        end

        def language
          ask("Enter the language of the snippet:")
        end

        def name
          ask("Enter the name of the snippet:")
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
boilercode-0.1.2 lib/boilercode/commands/snippets/create.rb
boilercode-0.1.1 lib/boilercode/commands/snippets/create.rb
boilercode-0.1.0 lib/boilercode/commands/snippets/create.rb