Sha256: 5ae0658df6d5db174e5236ec4a9c72df884843d764d817d98a23d106b7d25a13

Contents?: true

Size: 873 Bytes

Versions: 1

Compression:

Stored size: 873 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} >/dev/null`
      `git commit -m "Add paste: #{filename}" >/dev/null`
      `git push >/dev/null`
    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.2.0 lib/boop.rb