5 freie Kapitel aus Ruby Best Practices

Ruby Best Practices, aus dem OReilly-Verlag, stellt die ersten fünf Kapitel des Buches frei zu Verfügung. Der Autor Gregory Brown war schon längere Zeit daran interessiert das Buch unter Creative Common License anzubieten und OReilly hat ihm nun den Wunsch erfüllt.

 

Die Kapitel stehen einzeln im PDF Format bei Github für den Download bereit:

 
 

Das gesamte Werk ist auch als eBook bei OReilly erhältlich.

Phusion Passenger 2.2.10 veröffentlicht

Phusion Passenger wurde in der Version 2.2.10 veröffentlicht und steht somit zum Download bereit. Diese Version ist ein Bugfix-Release.

Es wurden folgende Fehler behoben:

  • Kompatibilität mit  Bundler
  • Descriptorfehler die zu Crashes führen konnten
  • Kompilierungsprobleme mit neueren GCC Versionen: Issue #430
  • Support der #size Methode in rack.input
 

Das Update kann wie gewohnt über die gems durchgeführt werden

[bash]
# Die Installation:
gem install passenger

# Danach folgendes bei der Verwendung von Apache aufrufen:
passenger-install-apache2-module

# Für Nginx-Benutzer:
passenger-install-nginx-module
[/bash]

Screencast: ActiveRecord Anfragen in Rails 3

Rails 3 führt ein paar Neuerungen in der Abfrage-Schnittstelle ein. Durch diese Neuerungen wird ActiveRecord schneller und einfacher zu benutzen sein. Ryan zeigt diese Woche wie die neuen Funktionen (incl. named scopes) genutzt werden können.

 

Download:

Download (17.8 MB, 10:43)
Alternativer Download für iPod & Apple TV (13.7 MB, 10:43)

 

Resourcen:

 

Quellcode:

[ruby]
# Article.find( :all, :order => "published_at desc", :limit => 10)
Article.order("published_at desc").limit(10)

# Article.find(:all, :conditions => ["published_at <= ?", Time.now], :include => :comments)
Article.where("published_at <= ?", Time.now).includes(:comments)

# Article.find(:first, :order => "published_at desc")
Article.order("published_at").last

# rails console
Article.all
articles = Article.order("name")
articles.all
articles.first
Article.recent.all
puts Article.recent.to_sql

# articles_controller.rb
@articles = Article.order("name")

if params[:hidden]
@articles = @articles.where(:hidden => (params[:hidden] == "1"))
end

# models/active_record.rb
scope :visible, where("hidden != ?", true)
scope :published, lambda { where("published_at <= ?", Time.zone.now) }
scope :recent, visible.published.order("published_at desc")
[/ruby]

Script-Tip: Hash mit Standardrückgabewert

Wenn bei der Benutzung von Hashes ein Standardwert anstatt von nil zurückgegeben werden soll, gibt es zwei Möglichkeiten wie das erreicht werden kann.

Das normale Verhalten bei einem Hash sieht folgendermaßen aus:

[ruby]
h = Hash.new # eine neue Hashinstanz erzeugen
h[5] # => gibt nil zurück
h[‚mein-index‘] # => gibt auch nil zurück
[/ruby]

Bei der ersten Variante für die Rückgabe von Standardwerten kann über den Konstruktor gelöst werden:

[ruby]
h = Hash.new("DEFAULT_VALUE") # eine neue Hashinstanz erzeugen
h[5] # => gibt "DEFAULT_VALUE" zurück
h[‚mein-index‘] # => gibt auch "DEFAULT_VALUE" zurück
[/ruby]

Die zweite Variante wird über einen Rückgabeblock gelöst:

[ruby]
h = Hash.new {|hash, key| (key.respond_to? :to_str) ? "DEFAULT_VALUE" : nil }
h[5] # => gibt nil zurück
h[‚mein-index‘] # => gibt "DEFAULT_VALUE" zurück
[/ruby]

Die beiden Varianten unterscheiden sich dadurch, dass nur bei fehlenden String-Indixes der Statndardwert zurückgegeben wird.

Screencast: Bundler

Fast jede Rails/Ruby-Applikation hat Abhängigkeiten zu Bibliotheken und häufig auch zu einer bestimmten Version. Bundler kann solche Abhängigkeiten lösen und kann somit vieles vereinfachen. Ryan zeigt in dieser Woche wie Bundler eingesetzt werden kann.

 

Download:

Download (17 MB, 9:22)
Alternativer Download für iPod & Apple TV (11.7 MB, 9:22)

 

Resourcen:

 

Quellcode:

[bash]
gem install bundler
bundle install
bundle check
bundle help
bundle install –without=test
bundle lock
bundle install –relock
ls ~/.bundle
bundle pack
ls vendor/cache
[/bash]

[ruby]
gem "rails", "3.0.0.beta"
# gem "rails", :git => "git://github.com/rails/rails.git"

gem "sqlite3-ruby", :require => "sqlite3"

# gem "rspec", :group => :test
group :test do
gem "webrat"
end

gem "will_paginate", ">= 2.3.12"
[/ruby]

Links für Rails 3

Rails 3 Beta ist verfügbar und es dürfte nicht mehr allzu lange dauern bis die endgültige Version erscheint. Wir hatten bereits ein paar Tips/Links dazu vorgestellt und wollen euch heute eine erweiterte Version anbieten, damit ihr alles Nötige für euer Update zusammenhabt.

Unsere Beiträge:

  1. Screencast: Rails 3 Beta und RVM: http://www.rubyonrails.de/2010/02/screencast-rails-3-beta-und-rvm/
  2. Rails 3.0 Beta veröffentlicht: http://www.rubyonrails.de/2010/02/rails-3-0-beta-veroffentlicht/
  3. Update auf Rails 3 in 25 Minuten: http://www.rubyonrails.de/2010/02/update-auf-rails-3-in-25-minuten/
  4. Artikel zu Rails 3: http://www.rubyonrails.de/2010/01/artikel-zu-rails-3/
  5. Routes in Rails 3: http://www.rubyonrails.de/2009/12/routes-in-rails-3/
  6. Buch: Beginning Rails 3: http://www.rubyonrails.de/2009/11/beginning-rails-3/

Einführungen zu Rails 3:

  1. Rails 3 Introduction: http://omgbloglol.com/post/344792822/the-path-to-rails-3-introduction
  2. The Path to Rails 3: Greenfielding New Apps With The Rails 3 Beta: http://omgbloglol.com/post/371893012/the-path-to-rails-3-greenfielding-new-apps-with-the
  3. http://railsplugins.org/
  4. How To Install Rails 3.0 Beta: http://www.rubyinside.com/how-to-install-rails-3-0-prerelease-beta-2955.html

Rails 3 Tutorials und Blog Posts:

  1. Rails Guide
  2. Edging your way towards Ruby 1.9.1 and Rails 3.0pre
  3. Unobtrusive JavaScript in Rails 3 by Zach Carter
  4. A Fresh Cup: Seed Data in Rails 3 tutorial – feature summary + code example by Mike Gunderloy.
  5. Rails3: Stepping off of the golden path slides by Matt Aimonetti
  6. Rails Magazine – RailsConf 2009 Edition page 5 has a section called The Unofficial Guide to What’s New in Rails 3 by Rupak Ganguly
  7. Jason Ting’s RailsConf 2009 Notes includes some basic notes about Rails 3
  8. Noel Rappin: Railsconf 09 – After the RailsConfening article
  9. Yehuda Katz: Railsconf Wrapup blog – contains links to jQuery talk by Katz at RailsConf 09
  10. How to Begin Playing With Rails 3 by Oscar Del Ben
  11. My Five Favorite Things About Rails 3 by Yehuda Katz
  12. Rails 3: The Great Decoupling by Yehuda Katz
  13. Rails Edge Architecture by Yehuda Katz
  14. How to Build Sinatra on Rails 3 by Yehuda Katz

Update und Vorbereitung bestehender Applikationen

  1. rails_upgrade Plugin: http://github.com/rails/rails_upgrade
  2. 5 Things You Can Do Today to Make Your App Ready for Rails 3: http://www.enlightsolutions.com/articles/five-ways-to-prepare-your-application-for-ruby-on-rails-3-today/
  3. Rails 3 Ready Plugins: http://wiki.rubyonrails.org/rails/version3/plugins_and_gems
  4. How to upgrade plugins to Rails 3.0: http://boldr.net/upgrade-plugins-gems-rails-3/

Rails 3 Präsentationen und Mitschnitte von Konferenzen

  1. Yehuda: What to Expect in Rails 3.0 webcast recording
  2. Scotland on Rails: Yehuda on Rails & Merb Merge video. For more Scotland on Rails videos, check out this Ruby Inside post.
  3. Yehuda Katz on Rails 3 and beyond interview by Mark Coleman
  4. RailsConf: Yehuda – The Russian Doll Pattern video
  5. RailsConf 09: DHH Keynote video – DHH previews unobtrusive javascript, default escaping & more.
  6. Exploring Rails 3 Free Online Conference

Bücher zu Rails 3

  1. Rails Guide
  2. Rails 3 in Action by Yehuda Katz and Mike Gunderloy. Currently available is their Early Access Edition, which gives you access to chapters as they are written.
  3. Beginning Rails 3 by Jeffrey Allan Hardy , Cloves Carneiro Jr. & Rida Al Barazi
  4. Changes in Rails 3.0 for Agile Web Development with Rails Edition 3

Rails 3 Komponenten und Bibliotheken:

  1. ActiveModel: Make Any Ruby Object Feel Like ActiveRecord: http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/
  2. New ActionMailer API in Rails 3.0: http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3
  3. Generic Actions in Rails 3: http://yehudakatz.com/2009/12/20/generic-actions-in-rails-3/
  4. Active Record Query Interface 3.0: http://m.onkey.org/2010/1/22/active-record-query-interface
  5. Validations in Rails 3.0: http://lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true
  6. Render Options in Rails 3: http://www.engineyard.com/blog/2010/render-options-in-rails-3/
  7. Rails3_DataMapper: http://github.com/dkubb/rails3_datamapper
  8. Rails 3 I18N Changes: http://blog.plataformatec.com.br/2010/02/rails-3-i18n-changes/
  9. Making Generators for Rails 3 With Thor: http://caffeinedd.com/guides/331-making-generators-for-rails-3-with-thor
  10. The Rails Module: http://litanyagainstfear.com/blog/2010/02/03/the-rails-module/

Weitere Rails 3 Beiträge

  1. Internet News: Rails 3 Gets Supersized With Merb
  2. Extending Rails 3 Video
  3. eWeek: Rubyists Unite Ruby on Rails and Merb to Merge in Rails 3
  4. CIO: Rails 3 to add security enhancement
  5. Signed and Permanent Cookies in Rails 3
  6. Yehuda Katz: Rails and Merb Merge
  7. Let Your SQL Growl in Rails 3.0
  8. RubyOnRails.org: Rails + Merb Merge Announcement
  9. How to Install Rails 3.0 Beta on Ubuntu Linux
  10. Webbynode Gets Rails 3 Support for Rapid Deployment

Rails Magazine 5

Besser verspätet als nie: Bereits im Januar ist die fünfte Ausgabe des Rails Magazine erschienen. Diese Ausgabe ist 65 Seiten stark und behandelt verschiedenste Bereiche rund um Rails und Ruby.

 

Dies sind die aktuellen Themen:

 
  • Authentication with Gigya by Curtis Jennings Schofield
  • Background Processing in Rails by Erik Andrejko
  • On Your Rails (and Ruby) Education by Bob Martens
  • Sinatra: Fast Web Application in Ruby by Carlo Pecchia
  • Sprockets by Starr Horne
  • Adding Pre-made Extensions to Radiant CMS by Casper Fabricius
  • Protecting Your Application From Impostors by Gavin Morrice
  • Geography division select tag by Satish Kota
  • RailsBridge: Rebooting the Rails Community by Mike Gunderloy
  • Prince: Powerful PDF Generation by Michael Bleigh
  • Ruby C Extension Development by Claudio Fiorini
  • Using the Twitter API with Ruby by Brian Rivard
  • Continuous Integration Tools in Rails by Saurabh Bhatia
  • Active Scaffold by Payal Gupta
  • Implement a Full Text Search Engine with Xapian by Amit Mathur
 

Wie auch die vier Vorgänger ist auch diese Version frei als PDF erhältlich und steht auf der Projektseite zum Download zur Verfügung: http://pdf.railsmagazine.com/rails-magazine-issue5.pdf

 

Die Liste aller Ausgaben:

  1. http://pdf.railsmagazine.com/rails-magazine-issue1.pdf
  2. http://pdf.railsmagazine.com/rails-magazine-issue2.pdf
  3. http://pdf.railsmagazine.com/rails-magazine-issue3.pdf
  4. http://pdf.railsmagazine.com/rails-magazine-issue4.pdf
  5. http://pdf.railsmagazine.com/rails-magazine-issue5.pdf

Screencast: Rails 3 Beta und RVM

Letzte Woche ist Rails 3.0 erschienen und Ryan hat dies zu dem Thema seines Screencasts für diese Woche gemacht. Neben Rails 3 zeigt er auch wie Ruby 1.9.1 mit RVM installiert und genutzt werden.

 

Download:

Download (32.1 MB, 8:43)
Alternativer Download für iPod & Apple TV (16 MB, 8:43)

 

Resourcen:

Quellcode:

[bash]
ruby -v
mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone git://github.com/wayneeseguin/rvm.git && cd rvm && ./install
rvm install 1.9.1
rvm list
rvm 1.9.1
rvm 1.9.1 –default
rvm system
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
gem install rails –pre
rails topscore
cd topscore
rails server
gem install sqlite3-ruby
rails generate scaffold game name:string
rake db:migrate
[/bash]

Rails 3.0 Beta veröffentlicht

David hat heute bekannt gegeben, dass die erste Beta Version von Rails 3.0 veröffentlicht wurde. Laut seinem Blogeintrag haben 250 Helfer dieses Release möglich gemacht und es waren knapp 4000 Commits von Version 2.3 zu dieser Beta Version.

Wir hatten schon an mehreren Stellen die Neuerungen aufgelistet, aber wir wollen an dieser Stelle kurz zusammenfassen:

  • Komplett überarbeiteter Router
  • Neue ActionMailer API
  • „Treiber“ für JavaScript Bibliotheken
  • Expliziete Abhängigkeiten-Management mit Bundler
  • Neue ActiveRecord Abfrage Erweiterung

Eine vollständige Liste der Neuerungen findet ihr in den Rlease-Notes:  http://guides.rails.info/3_0_release_notes.html

 

Das Release lässt sich folgendermaßen installieren:

[bash]
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
gem install rails –pre
[/bash]

 

Davids Blogeintrag dazu: http://weblog.rubyonrails.org/2010/2/5/rails-3-0-beta-release?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A%2BRidingRails%2B%28Riding%2BRails%29

eBooks über Rails und Ruby

OReilly hat einen Teil seiner Werke auch als eBooks veröffentlich. Nutzer von IPhone und IPod Touch können neben den PDF-Versionen auch im ITunes-Store die Bücher erwerben. Diese liegen im epub-Format vor und können so bequem auf dem Gerät gelesen werden.

 

Ein weiterer Vorteil dieser Version ist, dass sie um einiges günstiger als die Papier-Variante sind.

Wir haben euch ein paar Bücher rund um das Thema Ruby und Rails rausgepickt

 

(Die iTunes-Buttons sind Affiliatelinks und öffnen die ITunes-Applikation)

Reguläre Ausdrücke: Reguläre Ausdrücke

 

Die Programmiersprache Ruby: Die Programmiersprache Ruby

 

Ruby Best Practices: Ruby Best Practices

 

Ruby Cookbook: Ruby Cookbook

 

The Ruby Programming Language: The Ruby Programming Language

 

Rails: Up and Running: Rails: Up and Running

 

RESTful Web Services: RESTful Web Services

 

Rails Cookbook: Rails Cookbook