I commonly need to get a big list of all the stuff people think of when they think new and shiny these days. This list is for that.
I take a very inclusionist approach to it. 1
- Web Storage (localStorage, sessionStorage)
- Web SQL Database
# adapted from rspec-rails http://github.com/rspec/rspec-rails/blob/master/spec/rspec/rails/mocks/mock_model_spec.rb | |
shared_examples_for "ActiveModel" do | |
require 'test/unit/assertions' | |
require 'active_model/lint' | |
include Test::Unit::Assertions | |
include ActiveModel::Lint::Tests | |
# to_s is to support ruby-1.9 | |
ActiveModel::Lint::Tests.public_instance_methods.map{|m| m.to_s}.grep(/^test/).each do |m| |
# Rails developers have long had bad experiences with fixtures for | |
# several reasons, including misuse. | |
# | |
# Misuse of fixtures is characterized by having a huge number of them, | |
# requiring the developer to maintain a lot of data and creating dependencies | |
# between tests. In my experience working (and rescuing) many applications, 80% | |
# of fixtures are only used by 20% of tests. | |
# | |
# An example of such tests is one assuring that a given SQL query with | |
# GROUP BY and ORDER BY conditions returns the correct result set. As expected, |
I commonly need to get a big list of all the stuff people think of when they think new and shiny these days. This list is for that.
I take a very inclusionist approach to it. 1
// desire: localStorage and sessionStorage should accept objects | |
// in fact they do according to spec. | |
// http://code.google.com/p/chromium/issues/detail?id=43666 | |
// but so far that part isnt implemented anywhere. | |
// so we duckpunch set/getItem() to stringify/parse on the way in/out | |
// this seems to work in chrome | |
// but fails in FF (cant redefine setItem as a function, it just tostring's it) |
// 1: how could you rewrite the following to make it shorter? | |
if (foo) { | |
bar.doSomething(el); | |
} else { | |
bar.doSomethingElse(el); | |
} | |
With Rails 3.0 released a few weeks ago I've migrated a few apps and I'm constantly finding useful new improvements. One such improvement is the ability to log anything in the same way that Rails internally logs ActiveRecord and ActionView. By default Rails 3 logs look slightly spiffier than those produced by Rails 2.3: (notice the second line has been cleaned up)
Started GET "/" for 127.0.0.1 at Mon Sep 06 01:07:11 -0400 2010
Processing by HomeController#index as HTML
User Load (0.2ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1
CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1
Rendered layouts/_nav.html.erb (363.4ms)
# needs the "hashie" gem in Gemfile | |
require 'erb' | |
module Movies | |
class Application < Rails::Application | |
# read from "settings.yml" and optional "settings.local.yml" | |
settings = ERB.new(IO.read(File.expand_path('../settings.yml', __FILE__))).result | |
mash = Hashie::Mash.new(YAML::load(settings)[Rails.env.to_s]) | |
<!DOCTYPE html> | |
<!-- Helpful things to keep in your <head/> | |
// Brian Blakely, 360i | |
// http://twitter.com/brianblakely/ | |
--> | |
<head> | |
<!-- According to Heather Champ, former community manager at flickr, | |
you should not allow search engines to index your "Contact Us" |
# Copy this to features/support/ssl_fix.rb to make Capybara work with sites that switch between HTTP and HTTPS | |
module Capybara::Driver::RackTest::SslFix | |
[:get, :post, :put, :delete].each do |method| | |
define_method method do |*args| | |
args[0] = path_to_ssl_aware_url(args[0]) | |
super(*args) | |
end | |
end |