Sha256: 93cc026076db1cd43a798ea6d89678ab99654244a7857f3d1b473d5fc9375412

Contents?: true

Size: 846 Bytes

Versions: 1

Compression:

Stored size: 846 Bytes

Contents

require "boop/version"
require "securerandom"

class Boop
  def initialize(base_url, repo_dir)
    @base_url = base_url
    @repo_dir = File.expand_path(repo_dir)
  end

  def paste(name, contents)
    save(:txt, name, contents)
  end

  def html(name, contents)
    save(:html, name, contents)
  end

  private
  def save(file_extension, name, contents)
    name ||= SecureRandom.uuid.tr('-', '')

    filename = "#{name}.#{file_extension}"

    path = File.join(@repo_dir, filename)

    File.open(path, 'w') { |f| f.write contents }

    commit_and_push!(filename)

    print_url(filename)
  end

  def commit_and_push!(filename)
    Dir.chdir(@repo_dir) do
      `git add #{filename}`
      `git commit -q -m "Add paste: #{filename}"`
      `git push -q`
    end
  end

  def print_url(filename)
    puts "#{@base_url}/#{filename}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
boop-0.4.0 lib/boop.rb