From 7c3cbe867f97352ce45c42ce9c3ffda4e7fffb14 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Fri, 19 Jul 2013 19:55:44 +0700 Subject: [PATCH] Kitteh --- README.md | 3 +++ Rakefile | 4 ++-- .../css/{pastemaster.styl => pastekitten.styl} | 13 +++++++++++++ app/assets/img/kitten_70.png | Bin 0 -> 6366 bytes .../{pastemaster.coffee => pastekitten.coffee} | 0 app/views/default.slim | 9 +++++++-- app/views/error_403.slim | 2 +- config.ru | 4 ++-- config/deploy.rb | 6 +++--- config/examples/database.yml | 6 +++--- config/nginx.conf | 8 ++++---- config/unicorn.rb | 6 +++--- pastemaster.rb => pastekitten.rb | 7 ++++--- 13 files changed, 45 insertions(+), 23 deletions(-) create mode 100644 README.md rename app/assets/css/{pastemaster.styl => pastekitten.styl} (85%) create mode 100644 app/assets/img/kitten_70.png rename app/assets/js/{pastemaster.coffee => pastekitten.coffee} (100%) rename pastemaster.rb => pastekitten.rb (91%) diff --git a/README.md b/README.md new file mode 100644 index 0000000..c859ec2 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## Paste Kitten + +:heart: :heart: :heart: diff --git a/Rakefile b/Rakefile index d07427e..8a26d5b 100644 --- a/Rakefile +++ b/Rakefile @@ -1,4 +1,4 @@ -APP_FILE = 'pastemaster.rb' -APP_CLASS = 'Pastemaster' +APP_FILE = 'pastekitten.rb' +APP_CLASS = 'Pastekitten' require 'sinatra/assetpack/rake' diff --git a/app/assets/css/pastemaster.styl b/app/assets/css/pastekitten.styl similarity index 85% rename from app/assets/css/pastemaster.styl rename to app/assets/css/pastekitten.styl index 7307401..d2407ae 100644 --- a/app/assets/css/pastemaster.styl +++ b/app/assets/css/pastekitten.styl @@ -30,6 +30,19 @@ h1 text-transform uppercase color #ccc + &:before + display block + content '' + background url(../img/kitten_70.png) + width 43px + height 35px + background-size 43px 35px + background-position top left + background-repeat no-repeat + margin -10px 0 0 5px + float right + opacity .5 + .linenos padding-right .5em color #ccc diff --git a/app/assets/img/kitten_70.png b/app/assets/img/kitten_70.png new file mode 100644 index 0000000000000000000000000000000000000000..316d6d73c081a8e5d1d62a31d91079b42177a76e GIT binary patch literal 6366 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 "#{deploy_to}/#{current_path}" } @@ -55,7 +55,7 @@ namespace :assetpack do end namespace :unicorn do - set :unicorn_pid, "/tmp/pastemaster.unicorn.pid" + set :unicorn_pid, "/tmp/pastekitten.unicorn.pid" desc "Start unicorn" task :start => :environment do diff --git a/config/examples/database.yml b/config/examples/database.yml index 18ed089..f2bbd53 100644 --- a/config/examples/database.yml +++ b/config/examples/database.yml @@ -1,6 +1,6 @@ protocol: postgres -username: pastemaster -password: pastemaster +username: pastekitten +password: pastekitten host: localhost port: 5432 -database: pastemaster +database: pastekitten diff --git a/config/nginx.conf b/config/nginx.conf index 6c8815d..5c224a2 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -1,11 +1,11 @@ -upstream pastemaster_unicorns { - server unix:/tmp/pastemaster.unicorn.sock fail_timeout=0; +upstream pastekitten_unicorns { + server unix:/tmp/pastekitten.unicorn.sock fail_timeout=0; } server { listen pm.localhots.xxx:80; server_name pm.localhots.xxx; - root /home/www/apps/pastemaster/current; + root /home/www/apps/pastekitten/current; client_max_body_size 10M; keepalive_timeout 5; @@ -22,6 +22,6 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; - proxy_pass http://pastemaster_unicorns; + proxy_pass http://pastekitten_unicorns; } } diff --git a/config/unicorn.rb b/config/unicorn.rb index bd8a01c..e3881a6 100644 --- a/config/unicorn.rb +++ b/config/unicorn.rb @@ -1,9 +1,9 @@ -working_directory '/home/www/apps/pastemaster/current' +working_directory '/home/www/apps/pastekitten/current' worker_processes 2 timeout 10 -listen '/tmp/pastemaster.unicorn.sock', backlog: 64 -pid '/tmp/pastemaster.unicorn.pid' +listen '/tmp/pastekitten.unicorn.sock', backlog: 64 +pid '/tmp/pastekitten.unicorn.pid' stderr_path '/dev/null' stdout_path '/dev/null' diff --git a/pastemaster.rb b/pastekitten.rb similarity index 91% rename from pastemaster.rb rename to pastekitten.rb index d1a96d2..e579da8 100644 --- a/pastemaster.rb +++ b/pastekitten.rb @@ -21,7 +21,7 @@ require 'config/initializers/configuration' require 'config/initializers/database' require 'lib/error_pages' -class Pastemaster < Sinatra::Application +class Pastekitten < Sinatra::Application set :root, File.dirname(__FILE__) set :server, 'unicorn' set :public_folder, 'public' @@ -35,14 +35,15 @@ class Pastemaster < Sinatra::Application assets do serve '/assets/js', from: 'app/assets/js' serve '/assets/css', from: 'app/assets/css' + serve '/assets/img', from: 'app/assets/img' css :application, '/assets/css/application.css', [ - '/assets/css/pastemaster.css', + '/assets/css/pastekitten.css', '/assets/css/dropdown.css', '/assets/css/pygments_solarized_modified.css' ] js :application, '/assets/js/application.js', [ - '/assets/js/pastemaster.js', + '/assets/js/pastekitten.js', '/assets/js/dropdown.js' ]