Simplest static site on Heroku (plain Rack)?
gem 'rack-rewrite', '~> 1.0.0'
require 'rack/rewrite'
use Rack::Rewrite do
rewrite '/favicon.ico', '/images/favicon.ico'
rewrite '/', '/index.html'
end
run Rack::File.new('public')
Comments [0]
gem 'rack-rewrite', '~> 1.0.0'
require 'rack/rewrite'
use Rack::Rewrite do
rewrite '/favicon.ico', '/images/favicon.ico'
rewrite '/', '/index.html'
end
run Rack::File.new('public')
Comments [0]
It's been a while since I've had to deal with making a cross-browser 100% height layout - long enough that a couple version of IE have come out since. CSS support in IE has come a long way, so I thought I'd start fresh and try a purely standards based approach for the latest IE and standards based browsers, using the 'display: table-*' styles, and just do a fallback for older versions of IE (a 100% height modified Holy Grail layout that relies on the IE quirks box-model).
Unfortunately, while IE8 does support the table display styles, IE7 doesn't, and there doesn't seem to be any way to put IE7 in quirks mode, while keeping IE8 and every other browser in standards mode. So I just settled on the old-fashioned approach of having one layout for all other browsers and keeping the IEs clumped together in quirks mode.
Comments [1]
While git sub-tree merge strategy works great for merging a library into vendor (when you want to pull HEAD on that library instead of waiting for releases), I had trouble finding documentation on pushing back to upstream. This is annoying because one of the most obvious times you may want to use subtree is when you manage the library yourself, so can just pull straight from the repo, and want to push your maintenance changes back.
Surprisingly, and not what I have come to expect from git, it just works. From the example in the docs I linked, when you are checked out on master
git merge --squash -s subtree --no-commit rack_branch
will merge the rack_branch into where you have specified. But it just works the other way to. If checked out on rack_branch
git merge --squash -s subtree --no-commit master
will do what you expect, so you can now just push your library branch back to it's upstream.
Awesome!
Comments [4]
Comments [0]
The ever useful rack-test gem let's you easily integration test any rack project. All you have to do is include the Rack::Test::Methods and define an app method that returns your rack app. So people usually have a config.ru that just references their my_application.rb that they reference in their config.ru and then in their test file they can also reference that app and return it. Something to to this effect:
I had a project where I was actually trying to better breakdown a more complex app, and I wanted to just be able to use Rack's built-in map method at the top level of my config.ru to route to different apps. And in at least some of the cases I wanted to be able to test the whole thing. Also, I figured sometimes it's useful to actually be able to test your rackup file itself, all routing/mapping included. So I dug around in the rack code and found how the rackup command handles the .ru file, and came up with this:
Update
If you are running off of a new enough version of rack, you could also just use Rack::Builder.parse_file
Comments [0]
If you have global before_filters for things like requiring login to access pages (such as in authenticated_system.rb), be careful of missing formats in the respond_to. I just tracked down a bug on an app where we were getting DoubleRenderErrors because of unauthenticated requests directly against a dynamic csv file.
We had a before_filter that was denying request and redirecting them to login, in different ways, depending on the format, but hadn't thought to include csv. In this case, it is wise to include a catch-all at the end using .anyComments [0]
Comments [10]
Basically, you just want to be very careful properly escaping and ending color sequences in your bash prompt. If you mess them up, when you try to use spiffy bash tricks that alter the text on your current input line, such as control-r to search through your bash history and then left of right arrow to edit that line, you'll get a partially overwritten line that is impossible to read or edit properly.
Comments [0]
Either add this to your .git/config
[alias] datetag = !git tag `git name-rev --name-only HEAD`-`date \"+%Y%m%d%H%M\"`
or run it in your project folder to add it to the config for that project:
git config alias.datetag '!git tag `git name-rev --name-only HEAD`-`date "+%Y%m%d%H%M"`'
Then you can just run 'git datetag' to create a new tag to use as a release
Comments [0]