ruby 1.9.2 + async_sinatra + thin thin start
ab -n 10000 -c 100 http://localhost:3000/
-> 49ms / request
node server.js
Rails::Initializer.run do |config| | |
#....... | |
config.middleware.use 'ResqueWeb' | |
end |
class ResqueGenericJob | |
def self.perform(options={}) | |
options = options.with_indifferent_access | |
klass = options[:class] | |
method = options[:method] | |
if options.has_key?(:args) | |
klass.constantize.send(method, *options[:args]) | |
else | |
klass.constantize.send(method) | |
end |
# 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 |
Get the most recommended games from steam (because steam does not tell...) this is an example and no invitation to DDos steam ;)
# 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 |
@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 |
# 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 |
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 |