RubyGems 1.5.0 erschienen: Jetzt mit Ruby 1.9.2 Unterstützung

RubyGems ist in Version 1.5 erschienen und bringt nun endlich Unterstützung für Ruby 1.9.2 mit. Dieses Release behebt nun die Probleme die es in der vorherigen Version (rubygems 1.4) mit der aktuellen Ruby-Version gab.

Neben Bugfixes bringt diese Version auch einige Neuerungen und Verbesserungen mit.

  • Wie schon erwähnt Unterstützung für Ruby 1.9
  • Post-build hooks die ein „gem install“ abbrechen könnenl
  • Gem.find_files ist jetzt 40% schneller (on Ruby 1.9)
  • Bessere Fehlerausgabe für beschädigte/korrupte Gem Dateien (inklusive Pfad)
  • Neue Hilfe Dokumente zur Unterstützung von Ruby 1.9
  • gem update aktualsiert nicht mehr defaultmäßig und falscher weise RubyGems selber

Die Aktualisierung kann wie gewohnt über gem selber vollzogen werden:

 

[bash]
gem update –system
[/bash]

 

Alternative Installations- und Aktualisierungmöglichkeiten sind in der neuen Dokumentation verfügbar:

https://github.com/rubygems/rubygems/blob/master/UPGRADING.rdoc

 

Benutzer von Bundler sollten mit dem Update noch ein wenig warten, weil die atktuelle Bundler-Version nicht perfekt mit dem neuen RubyGems funktioniert. In der Regel sollte auch hier eine aktualisierte Version relativ schnell erscheinen.

Rails 3 Cheatsheet

Gregg Pollack von EnvyLabs hat ein Cheatsheet für Rails 3 Entwickler veröffentlicht. Es sollte ursprünglich früher erscheinen, aber die Arbeiten an seinen letzten Screencasts haben unerwartet mehr Zeit beansprucht. Auch wenn Rails 3 nun bereits seit einiger Zeit verfügbar ist, ist das Cheatsheet eine gute Quelle um das eine oder andere nachzuschlagen.

Es ist ein umfangreiches Cheatsheet geworden, dass sehr viele Bereiche abdeckt und somit auch für erfahrene Entwickler wertvoll/hilfreich sein wird.

Das PDF ist in sechs Haupt-Bereiche aufgeteilt und jeder Bereich ist in sich nochmal gegliedert:

  1. Routing:
    • Basic Routing
    • Optionale Parameter
    • Redirection
    • Named Routes
    • Rack Routing
    • Constraints
    • Legacy Route
    • Scope
  2. Bundler
    • Bundler Commands
    • Gemfile Syntax
    • Workflow
  3. ActiveRelation
    • Lazy Loading
    • CRUD Methods
    • Chain Methods
    • Chaining
    • (Named) Scopes
    • Deprecated
  4. XSS Protection & UJS
    • XSS Protection
    • Unobtrusive JavaScript
    • HTML5 Custom Data Attributes
    • Deprecated
    • Using JQuery
  5. ActionMailer & ActionController
    • Rails Mail Generator
    • Basic Mailer Syntax
    • Delivering Messages
    • Defaults and Attachements
    • Respond_To and Respond_With
  6. ActiveModel
    • Dirty
    • Validations
    • Serialization
    • Callbacks

Neben dem Umfang hat Gregg auch viel Wert auf das Layout gelegt.

Das Rails 3 Cheatsheet kann unter folgender URL runtergeladen werden: http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf

Der entsprechende Blogpost mit weiteren Details ist unter folgender Adresse erreichbar: http://blog.envylabs.com/2010/12/rails-3-cheat-sheets/

Dann bleibt uns nur noch übrig euch viel Spaß beim cheaten zu wünschen 🙂

Screencast: Ein Gem mit Bundler erstellen

Bundler kann nicht nur zur Installation von gems benutzt werden, es kann auch mit dem Befehl ‚bundle gem‘ ein gem generieren. Ryan zeigt wie das funktioniert und führt den Zuschauer durch die einzelnen Schritte.

 

Download:

Download(23.6 MB, 7:25)
Alternativer Download für iPod & Apple TV(19.4 MB, 7:25)

 

Resourcen:

 

Quellcode:

[bash]
bundle gem lorem
gem build lorem.gemspec
gem push lorem-0.0.1.gem
bundle
rake -T
rake build
rake install
rake release
[/bash]

[ruby]
# lorem.gemspec
# -*- encoding: utf-8 -*-
$:.push File.expand_path("../lib", __FILE__)
require "lorem/version"

Gem::Specification.new do |s|
s.name = "lorem"
s.version = Lorem::VERSION
s.platform = Gem::Platform::RUBY
s.authors = ["Ryan Bates"]
s.email = ["ryan@railscasts.com"]
s.homepage = ""
s.summary = %q{Lorem ipsum generator}
s.description = %q{Simply generates lorem ipsum text.}

s.add_development_dependency "rspec"

s.rubyforge_project = "lorem"

s.files = `git ls-files`.split("n")
s.test_files = `git ls-files — {test,spec,features}/*`.split("n")
s.executables = `git ls-files — bin/*`.split("n").map{ |f| File.basename(f) }
s.require_paths = ["lib"]
end

# Gemfile
source "http://rubygems.org"

# Specify your gem’s dependencies in lorem.gemspec
gemspec

# Rakefile
require ‚bundler‘
Bundler::GemHelper.install_tasks

# lib/lorem.rb
module Lorem
def self.ipsum
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
end
end

# lib/lorem/version.rb
module Lorem
VERSION = "0.0.2"
end
[/ruby]

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]