Skip to content

Instantly share code, notes, and snippets.

@zernel
zernel / copsy.org.config
Created October 22, 2012 08:57 — forked from ouyangzhiping/copsy.org.config
nginx配置php站点示范
server {
server_name localhost www.copsy.org copsy.org;
access_log /srv/www/copsy.org/logs/access.log;
error_log /srv/www/copsy.org/logs/error.log;
root /srv/www/copsy.org/public_html;
location / {
index index.html index.htm index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
@zernel
zernel / 360buy.rb
Created October 23, 2012 15:55 — forked from mimosz/.gitignore
京东商品价格解析
# -*- encoding: utf-8 -*-
require 'mini_magick'
require 'rtesseract'
require 'nokogiri'
require 'nestful'
require 'csv'
require 'pp'
class Buy360
def initialize(url='')
@zernel
zernel / routes
Created October 24, 2012 03:12
Devise disable signup
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
# And then modify the app/views/devise/shared/_links.erb
@zernel
zernel / README.markdown
Created October 26, 2012 03:13 — forked from greypants/README.markdown
RAILS 3: nav_link helper for adding 'selected' class to navigation elements

#Behold, the nav_link:

The nav_link helper works just like the standard Rails link_to helper, but adds a 'selected' class to your link (or its wrapper) if certain criteria are met. By default, if the link's destination url is the same url as the url of the current page, a default class of 'selected' is added to the link.

For full usage details, see: http://viget.com/extend/rails-selected-nav-link-helper

Drop nav_link_helper.rb into app/helpers in your Rails 3.x app and enjoy.

@zernel
zernel / gist:4116514
Created November 20, 2012 07:07
Uncompress CSS
cat somefile.css | awk '{gsub(/{|}|;/,"&\n"); print}' >> uncompressed.css
@zernel
zernel / 0.rb
Created March 1, 2013 16:43 — forked from chancancode/0.rb
mbp:godfrey json_expressions [master] $ irb -Ilib
>> require 'json_expressions/matcher'
=> true
>> m = JsonExpressions::Matcher.new({a: :capture_me})
=> {:a=>:capture_me}
>> require 'json'
=> true
>> m =~ JSON.parse('{"a": 123}')
=> true
>> m.captures
#!/bin/bash
backup_path="/root/production_backup/database_backup"
mv $backup_path/bak_data.19.sql $backup_path/bak_data.20.sql
mv $backup_path/bak_data.18.sql $backup_path/bak_data.19.sql
mv $backup_path/bak_data.17.sql $backup_path/bak_data.18.sql
mv $backup_path/bak_data.16.sql $backup_path/bak_data.17.sql
mv $backup_path/bak_data.15.sql $backup_path/bak_data.16.sql
mv $backup_path/bak_data.14.sql $backup_path/bak_data.15.sql
mv $backup_path/bak_data.13.sql $backup_path/bak_data.14.sql
mv $backup_path/bak_data.12.sql $backup_path/bak_data.13.sql
# Resize selenium browser window to avoid Selenium::WebDriver::Error::MoveTargetOutOfBoundsError errors
#
# Example usage with Rspec (in spec/support/spec_helper.rb):
#
# config.before(:each) do
# set_selenium_window_size(1250, 800) if Capybara.current_driver == :selenium
# end
#
def set_selenium_window_size(width, height)
window = Capybara.current_session.driver.browser.manage.window
require 'rubygems'
require 'zip/zip'
def unzip_file (file, destination)
Zip::ZipFile.open(file) { |zip_file|
zip_file.each { |f|
f_path=File.join(destination, f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
}

Routes

小心地使用 Match(Rails 3 已实现)

Rails 3 提供了 match 方法供我们自定义 routes,然而我们要小心使用它以避免“跨站脚本攻击”(XSS Attack)。比如像这样的 routes:

注:(r3 代表 Rails 3,r4 代表 Rails 4)

# routes.rb