do NOT add devise
gem "rails_admin", :git => "git://github.com/sferik/rails_admin.git"
gem install pru | |
bundle exec ruby benchmark.rb > report | |
cat report | pru 'split(/\s+/)' 'reject{|a| a.size != 6 }.map{|a| [a[0], a[1]] }.sort_by(&:last).reverse.map{|a| "#{a[0].ljust(21)} -> #{a[1]}" }.join("\n")' | head -n20 | |
haml -> 0.320000 | |
prawn -> 0.270000 | |
mail -> 0.240000 | |
webrat -> 0.230000 | |
newrelic_rpm -> 0.210000 |
# capture commandline output and send responses if nothing was read | |
def interact(command, answers) | |
puts command | |
line = "" | |
write = false | |
PTY.spawn(command) do |output, input, pid| | |
loop do | |
rs, ws, = IO.select([output], [input]) |
ActiveRecord::ConnectionAdapters::ConnectionPool.class_eval do | |
def current_connection_id | |
# Thread.current.object_id | |
Thread.main.object_id | |
end | |
end |
# js-request tests cannot use transactions, since they happen in another process | |
# so if we are in js request tests, use the real test database and then clean it afterwards | |
module ActiveRecord | |
module TestFixtures | |
def run_in_transaction_with_js? | |
return false if $disable_transactions | |
run_in_transaction_without_js? | |
end | |
alias_method_chain :run_in_transaction?, :js |
@command = ARGV.join(' ') | |
if system @command | |
raise "Everything is fine here..." | |
end | |
def sh(cmd) | |
puts cmd | |
IO.popen(cmd) do |pipe| | |
while str = pipe.gets |
# extracted from https://github.com/grosser/project_template | |
rule /^version:bump:.*/ do |t| | |
sh "git status | grep 'nothing to commit'" # ensure we are not dirty | |
index = ['major', 'minor','patch'].index(t.name.split(':').last) | |
file = 'lib/GEM_NAME/version.rb' | |
version_file = File.read(file) | |
old_version, *version_parts = version_file.match(/(\d+)\.(\d+)\.(\d+)/).to_a | |
version_parts[index] = version_parts[index].to_i + 1 | |
version_parts[2] = 0 if index < 2 |
# https://gist.github.com/1214052 | |
require 'sinatra/base' | |
class ResqueWeb < Sinatra::Base | |
require 'resque/server' | |
use Rack::ShowExceptions | |
if CFG[:user].present? and CFG[:password].present? | |
Resque::Server.use Rack::Auth::Basic do |user, password| | |
user == CFG[:user] && password == CFG[:password] |
Get the most recommended games from steam (because steam does not tell...) this is an example and no invitation to DDos steam ;)
# drop this in a ruby file in my_rails_app/config/initializers | |
# restart your rails and app you're good to go! | |
class String | |
# remove middle from strings exceeding max length. | |
def ellipsize(options={}) | |
max = options[:max] || 40 | |
delimiter = options[:delimiter] || "..." | |
return self if self.size <= max | |
remainder = max - delimiter.size |