Skip to content

Instantly share code, notes, and snippets.

@radar
Created March 5, 2010 02:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radar/322391 to your computer and use it in GitHub Desktop.
Save radar/322391 to your computer and use it in GitHub Desktop.
# In Rails 3 The require for the Numeric time helpers is simply:
# require 'active_support/core_ext/numeric/time'
# In Rails 2, it's all of this:
require 'active_support/core_ext/numeric/time'
require 'active_support/duration'
require 'i18n'
class Numeric #:nodoc:
include ActiveSupport::CoreExtensions::Numeric::Time
end
require 'active_support/core_ext/array/conversions'
class Array #:nodoc:
include ActiveSupport::CoreExtensions::Array::Conversions
end
# This is just a little taste of how many more things you're "not doing" in Rails 3.
# tl;dr Rails 2 sucks, Rails 3 will make the suck go away.
module Bench
module Matchers
class RunsIn #:nodoc:
def initialize(receiver=nil, &block)
@receiver = receiver
# Placeholder
end
def matches?(event_proc)
before = Time.now
event_proc.call
after = Time.now
return (after - before) < @receiver
end
end
def run_in(receiver=nil, &block)
Matchers::RunsIn.new(receiver, &block)
end
end
end
describe "Bench" do
it "runs in under 2.5 seconds" do
lambda { sleep(1) }.should run_in(2.5.seconds)
end
it "fails to run in under 2.5 seconds" do
lambda { sleep(2.6) }.should_not run_in(2.5.seconds)
end
end
Spec::Runner.configure do |config|
config.include(Bench::Matchers)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment