Skip to content

Instantly share code, notes, and snippets.

@jswanner
jswanner / gist:5863448
Created Jun 25, 2013
Including multiple modules into class
View gist:5863448
$ irb
irb(main):001:0> module Mod1
irb(main):002:1> def self.included base
irb(main):003:2> puts 'included Mod1'
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> module Mod2
irb(main):007:1> def self.included base
irb(main):008:2> puts 'included Mod2'
View searchable_example.rb
require 'textacular/searchable'
class Book
# :title, String
# :author, String
extend Searchable(:title)
end
Book.create :title => "Poignant Guide to Ruby", :author => "_why"
@jswanner
jswanner / routes.rb
Last active Dec 12, 2015
Rails 3 concern-like, with options.
View routes.rb
sociable = ->(options = {}) {
resources :comments, options
resources :categories, options
resources :tags, options
}
resources :messages do sociable.(only: :create) end
resources :posts, &sociable
resources :items, &sociable
@jswanner
jswanner / Weather.js.diff
Created Jul 20, 2012
Prevent OS X dashboard weather widget from moving around.
View Weather.js.diff
--- /Library/Widgets/Weather.wdgt/Weather.js 2012-07-20 10:53:24.000000000 -0400
+++ /Library/Widgets/Weather.wdgt/Weather.js 2012-07-20 10:53:40.000000000 -0400
@@ -406,7 +406,7 @@
if (entry != null)
{
iconData.push(entry);
- maxOffset = entry.voffset > maxOffset ? entry.voffset : maxOffset;
+ // maxOffset = entry.voffset > maxOffset ? entry.voffset : maxOffset;
if (entry.hoffset < 0)
@jswanner
jswanner / address.rb
Created Jul 18, 2012
Haversine formula with Arel, with possibility of portability.
View address.rb
class Address < ActiveRecord::Base
def self.order_proximity_to(latitude, longitude)
order(Arel::Nodes::Haversine.new(arel_table[:latitude],
arel_table[:longitude],
latitude,
longitude))
end
end
@jswanner
jswanner / 0-Ruby-1.9.3-p194
Created Jul 17, 2012
Compare: gem executable, bundler binstubs, bundle exec gem executable
View 0-Ruby-1.9.3-p194
$ time rspec --help > /dev/null
real 0m0.292s
user 0m0.221s
sys 0m0.064s
$ time ./bin/rspec --help > /dev/null
real 0m1.167s
user 0m1.017s
sys 0m0.137s
@jswanner
jswanner / 0-readme.md
Created Jul 17, 2012
ruby-1.9.3-p194 cumulative performance patch.
View 0-readme.md

Patched ruby 1.9.3-p194 for 30% faster rails boot

What is this?

This script installs a patched version of ruby 1.9.3-p194 with patches for boot-time performance improvements (#66 and #68), and runtime performance improvements (#83 and #84). It also includes the new backported GC from ruby-trunk.

Huge thanks to funny-falcon for the performance patches.

@jswanner
jswanner / application.rb
Created Jun 22, 2012
Basic auth for certain RefineryCMS page.
View application.rb
module MyApplication
class Application < Rails::Application
config.to_prepare do
Refinery::PagesController.class_eval do
before_filter :require_auth, :only => [:show]
def require_auth
if params[:id] == 'secret-page'
authenticate_or_request_with_http_basic('Administration') do |username, password|
username == 'admin' && password == 'password'
end
@jswanner
jswanner / gist:2002935
Created Mar 8, 2012
Unique table alias names
View gist:2002935
terms = ['asdf', 'ghjk']
alias_numbers = (1..terms.length).to_a
tags = Tags.arel_table.alias "tags_#{alias_numbers.shift}"
View index.html.haml
%script#extras-column-template(type="text/x-jquery-tmpl")
%div.extras(data-bind="foreach: extrasAndExpenses")
%div
/ ko text: text
/ /ko
%a.delete-link X
# OR
%script#extras-column-template(type="text/x-jquery-tmpl")