Sha256: f8c01dd68d81e7ac633a2a92227ff3c8e4f8999bce3fc24349eaa1e6349e977c
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
require 'webrick' require_relative 'slug' require_relative 'constants' module Pbin class PBServerlet < WEBrick::HTTPServlet::AbstractServlet def do_GET(request, response) dirname = request.path.split('/').last dirpath = "#{STORENAME}/#{dirname}" # If the paste file is not found then return 404 with empty response begin content = File.read("#{dirpath}/index.txt") response.status = 200 response.body = content rescue Errno::ENOENT response.status = 404 response.body = "" end end def do_POST(request, response) content = request.query["p"] # Try to memoize this slug_size = 4 dirname = nil # file_name = Digest::SHA1.hexdigest(content)[0..5] loop do dirname = Slug.generate(slug_size) if File.exists?("#{STORENAME}/#{dirname}") if slug_size > 10 response.status = 422 response['Content-Type'] = 'text/plain' response.body = "Failed to create" break end slug_size += 1 else break end end dirpath = "#{STORENAME}/#{dirname}" Dir.mkdir(dirpath) f = File.open("#{dirpath}/index.txt", "wb") f.write(content) f.close response.status = 200 response['Content-Type'] = 'text/plain' response.body = dirname end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pbin-0.1.0 | lib/pbin/pb_servlet.rb |