Skip to content

Instantly share code, notes, and snippets.

View paneq's full-sized avatar
🏠
Working from home

Robert Pankowecki paneq

🏠
Working from home
View GitHub Profile
@paneq
paneq / Gemfile
Created June 14, 2012 22:36
Wrong way of specifying gems for different ruby platforms
gem 'libnotify' if RUBY_PLATFORM =~ /linux/
gem 'growl' if RUBY_PLATFORM =~ /darwin/
@paneq
paneq / example.rb
Created June 12, 2012 09:57
json + associations based on game/prize/level/level_prize example
class Prize < Struct.new(:name, :img); end
class Level < Struct.new(:name, :order, :image); end
class Achievement < Struct.new(:prize, :level); end
class Rewarding
def add(achviement); end
def level_rewards(level_or_order); end
def level_for_prize(prize); end
def max_rewarding_level; end
end
@paneq
paneq / env.rb
Created June 6, 2012 14:52
Capybara, SSL and non-SSL pages tested via Selenium with javascript.
instruction = <<-COMMENT
# Yo dawg, I heard you like tests that are easy to setup...
#
# Define domains "trainer.project.test login.project.test" in /etc/hosts
# to point to one of your local interface (probably 127.0.0.1)
#
# /etc/hosts:
# 192.168.50.1 trainer.project.test
# 192.168.50.1 login.project.test
#
@paneq
paneq / alter1.rb
Created May 23, 2012 11:46
Alternative respond formats
respond_to(:json, :html) do |json, html|
json { render :json => UserSessionPresenter.new(current_user) }
html { redirect_back_or_default root_path }
end
@paneq
paneq / absence_controller.rb
Created May 4, 2012 22:28
Apotomo widgets that depends on current user and roles
class AbsenceController < ApplicationController
has_widgets do |root|
current_role.widgets_for(current_user).each do |widget|
root << widget(widget.path, widget.css, :position => widget.position)
end
end
end
@paneq
paneq / absence_controller.rb
Created May 4, 2012 22:12
Simple controller with apotomo widgets
class AbsenceController < ApplicationController
has_widgets do |root|
root << widget("absence/absences", "absence_absences")
root << widget("absence/events", "absence_events")
root << widget("absence/documents", "absence_documents")
end
end
@paneq
paneq / rails.rb
Created April 9, 2012 17:34
My fix for local database definition in rails
namespace :db do
def local_database?(config, &block)
if config['host'].in?(['127.0.0.1', 'localhost', '192.168.30.1']) || config['host'].blank?
yield
else
$stderr.puts "This task only modifies local databases. #{config['database']} is on a remote host."
end
end
end
@paneq
paneq / output.txt
Created April 8, 2012 00:57
does Socket::SO_REUSEADDR work in ruby ?
tcp 0 0 127.0.0.1:35648 127.0.0.1:9876 TIME_WAIT
tcp 0 0 127.0.0.1:9876 127.0.0.1:35646 TIME_WAIT
retrying ...
tcp 0 0 127.0.0.1:35648 127.0.0.1:9876 TIME_WAIT
tcp 0 0 127.0.0.1:9876 127.0.0.1:35646 TIME_WAIT
retrying ...
tcp 0 0 127.0.0.1:35648 127.0.0.1:9876 TIME_WAIT
tcp 0 0 127.0.0.1:9876 127.0.0.1:35646 TIME_WAIT
retrying ...
@paneq
paneq / ensure.txt
Created April 7, 2012 20:40
defined local variable in ensure
irb(main):010:0> def m
irb(main):011:1> puts defined?(a)
irb(main):012:1> a = 1
irb(main):013:1> puts defined?(a)
irb(main):014:1> raise "x"
irb(main):015:1> b = 3
irb(main):016:1> ensure
irb(main):017:1* puts defined?(a)
irb(main):018:1> puts defined?(b)
irb(main):019:1> end
@paneq
paneq / roles.rb
Created April 6, 2012 17:21
dynamic role AndrzejKrzywda way?
class Person
def role(obj)
obj.role_for = self # if role object needs it
@roles << obj
end
def unrole(obj)
@roles.delete(obj)
end