Parse XML or HTML with Nokogiri
To parse XML-documents, I recommend the gem nokogiri.
A few hints:
-
xml = Nokogiri::XML("<list><item>foo</item><item>bar</item></list>")parses an xml string. You can also callNokogiri::HTMLto be more liberal about accepting invalid XML. -
xml / 'list item'returns all matching nodes;list itemis used like a CSS selector -
xml / './/list/item'also returns all matching nodes, but.//list/itemis now an XPath selector- XPath seems to be triggered by a leading
....
- XPath seems to be triggered by a leading
Rails - Multi Language with Fast_Gettext
sudo gem install gettext --no-ri --no-rdocsudo gem install fast_gettext --no-ri --no-rdoc-
script/plugin install git://github.com/grosser/gettext_i18n_rails.git(didn't work as gem) - environment.rb: see code example at the bottom
-
if this is your first translation:
cp locale/app.pot locale/de/app.pofor every locale you want to use - use method "_" like
_('text')in your rails code - run
rake gettext:findto let GetText find all translations used - translate messages in 'locale/de/app.po' (leave msgstr blank and ms...
Automatically build sprites with Lemonade
How it works
See the lemonade descriptions.
Unfortunately, the gem has a few problems:
- it does not work with Sass2
- it always generates all sprites when the sass file changes, which is too slow for big projects
- it expects a folder structure quite different to our usual
All these problems are solved for us, in our own lemonade fork. This fork has since been merged to the original gem, maybe we can use t...
Using Passenger for development (with optional SSL)
- install apache
sudo apt-get install ruby1.8-devsudo gem install passengersudo passenger-install-apache2-module- follow the instructions
Manually: configure a vhost in /etc/apache2/sites-available and link it to /etc/apache2/sites-enabled with something like the following
^
NameVirtualHost *:80
<VirtualHost *:80>
ServerName application.local
DocumentRoot /opt/application/public
RailsEnv development
RailsAllowModRewrite off
</VirtualHost>
<VirtualH...
Freeze (vendor, unpack) a single Ruby gem with and without Bundler
When you need to patch an existing gem, one way is to "vendor" the gem by copying it into the vendor/gems directory of your Rails project. You can then make any changes you require and Rails will use the vendored version of the gem after a server restart. Unfortunately you need to perform some additional steps to marry Rails and the copied gem. This notes describes what to do.
With Bundler
This is super-painful. If you just copy the gem to vendor/gems, Rails will complain:
Unpacked gem foolib in vendor/gems has no s...
How to install the date_performance gem
sudo gem install zip
git clone git://github.com/rtomayko/date-performance.git
cd date-performance
rake package:build
cd dist
sudo gem install --no-ri --no-rdoc date-performance-0.4.7.gem
Install a gem without RI and RDdoc
To improve installation times of gems you can use the following approach:
gem install xyz --no-document
To permanently ignore ri and rdoc when installing gems, add this line to ~/.gemrc:
gem: --no-document
Be aware that eliding local documentation may disable documentation support in your IDE.
Create an application with an older Rails version
sudo gem install rails --version="=1.2.3"
rails _1.2.3_ new-project-folder
Run a single test in Test::Unit
To run a single test file:
rake test:units TEST=test/unit/post_test.rb
rake test:functionals TEST=test/functional/posts_controller_test.rb
rake test:integration TEST=test/integration/admin_news_posts_test.rb
You may even run a single test method:
ruby -I test test/unit/post_test.rb -n "name of the test"
ruby -I test test/functional/posts_controller_test.rb -n test_name_of_the_test # underscored, prefixed with 'test_'
Or all tests matching a regular expression:
ruby -I test test/integration/admin_news_posts_test.r...
Configuring Git with .gitconfig
Basic configuration
Please keep this config simple. It should be a starting point for new developers learning Git.
[user]
name = Your Name
email = your.name@domain.com
[branch]
sort = -committerdate
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
whitespace = white reverse
meta = blue reverse
frag = blue reverse
old = red
new = green
[color "status"]
added = green
changed = yellow
untracked = cyan
[interactive]
singlekey = true # Do not requir...
Slugs with FriendlyId
Gem to provide nice looking urls ("/blog/the-greatest-bug-i-never-fixed"). If you don't need anything too special (like i18n for the urls) it works as a drop-in-replacement. It basically overwrites #to_param to return the slug, and .find to search by the slug.
Make sure, everywhere you build paths, you use model_path(:id => model) instead of model_path(:id => model.id). You also need to adapt all code using something like .find_by_id. The regular .find is fine.
See the github README for installation instructions.
Don't forget ...
Cerberus: Home
Cerberus is a lightweight and easy-to-use Continuous Builder software for Ruby. It could be run periodically from a scheduler and check if application tests are broken. In case of failed tests Cerberus sends notification to developers.
Sanitize: A whitelist-based Ruby HTML sanitizer
Given a list of acceptable elements and attributes, Sanitize will remove all unacceptable HTML from a string.
It's an HTTParty and Everyone Is Invited! // RailsTips by John Nunemaker
Awesome library to consume web services in Ruby.
Railscheck project home page
This project is (or will be) a best effort semi-static verifier for your Ruby on Rails projects. Delivered as a Ruby gem it provides a shell command task "railscheck" that you can run against your Rails projects to test for a number of typical bugs, potential problems and inconsistencies.
Ruby, Rails, Web2.0 » Blog Archive » Great Ruby on Rails REST resources
I have been playing around with RESTful Rails recently. Below is my collection or Rails REST howtos, tutorials and other resources I have found so far.
Super-simple Ruby Subversion Command Line Wrapper — Agile Web Operations
I was setting up a Subversion repository one year ago. Of course, I also wanted to have regular backups of my Subversion repository. As I was tired of writing bash scripts for such a task, I looked into writing a simple Ruby script for backing up my Subversion repositories.
Sinatra
Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort.
faker
Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc. T
Object#andand
Guarded method invocation or safe navigation method for Ruby.
iPhone on Rails and ObjectiveResource; Making communication between the iPhone and a Rails web-service pain-free.
ObjectiveResource is an Objective-C port of Ruby on Rails' ActiveResource. It provides a way to serialize objects to and from Rails' standard RESTful web-services (via XML or JSON) and handles much of the complexity involved with invoking web-services of any language from the iPhone.
Objective-C for Rubyists | PeepCode Screencasts for Web Developers and Alpha Geeks
If you know Ruby and you want to write applications for Mac OS X or the iPhone, you’re in a great place to start! This concise and content-packed 80-minute screencast will teach you what you need to know to start programming in Objective-C.
Introducing RMM, the Rails Maturity Model - Ruby on Rails meets the business world | Google Groups
A couple of Railsconfs ago, Courtenay and I did indeed discuss