Skip to content

Instantly share code, notes, and snippets.

@shageman
shageman / conductor.rb
Created November 17, 2011 01:20 — forked from paul/conductor.rb
class Conductor
include ActiveModel::Conversion
extend ActiveModel::Naming
include ActiveModel::Validations
class_attribute :object_names
def self.presents(*object_names)
self.object_names = object_names
object_names.each do |object_name|
class SignUpPage
def initialize
current_path.should == sign_up_path
end
def with_email(email)
fill_in "Login", :with => email
end
def with_password(password, confirmation = password)
@shageman
shageman / .ideamodules.xml
Created February 8, 2012 01:38
InetlliJ Modules in Rubymine
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/custom_engine1/module1.iml" filepath="$PROJECT_DIR$/custom_engine1/custom_engine1.iml" />
<module fileurl="file://$PROJECT_DIR$/custom_engine2/module2.iml" filepath="$PROJECT_DIR$/custom_engine2/custom_engine2.iml" />
</modules>
</component>
</project>
@shageman
shageman / bar.rake
Created February 8, 2012 02:08
Testing rake tasks
File: lib/tasks/bar.rake
class BarOutput
def self.banner text
puts '*' * 60
puts " #{text}"
puts '*' * 60
end
def self.puts string
puts string
@shageman
shageman / predicate_matchers.rb
Created March 8, 2012 03:40
The problem of rspec predicate matchers
require 'rspec/core'
class VeryImportantQuestions
def self.really?(answer)
answer == 'Yes. I am telling you.'
end
def self.really_really?(answer)
answer == 'Yes. I am telling you.' ? 42 : nil
end
@shageman
shageman / the_class_that_is_true_but_never_in_the_same_way.rb
Created March 9, 2012 06:39
Why a question mark method should return the true object or the false object
require 'rspec/core'
class TheClassThatIsTrueButNeverInTheSameWay
def initialize(truthiness)
@truthiness = truthiness
end
def truthy?
@truthiness ? Time.now : false
end
@shageman
shageman / object_creation_methods.rb
Last active October 6, 2015 23:38
ObjectCreationMethods a la Jeff Dean
#lives in spec/support/object_creation_methods.rb
# Source: https://pivotallabs.com/users/jdean/blog/articles/1900-rolling-your-own-object-creation-methods-for-specs
module ObjectCreationMethods
def new_post(overrides = {})
defaults = {:title => "Some title #{counter}"}
Post.new { |post| apply(post, defaults, overrides) }
end
@shageman
shageman / application.js
Created September 1, 2012 22:25
Rails environment indicator
<% if Rails.env != 'production' %>
document.addEventListener("DOMContentLoaded", function() {
$('body').append($('<div>').css({
display: 'block',
position: 'fixed',
left: '20px',
top: '500px',
'-webkit-transform': 'rotate(-90deg)',
'-moz-transform': 'rotate(-90deg)',
'-o-transform': 'rotate(-90deg)',
#Count the lines of Ruby code in your app
find . -iname "*.rb" -type f -exec cat {} \; | wc -l
#Sort the Ruby files in your project by LOC
find . -iname "*.rb" -type f -exec wc -l {} \; | sort -rn