Daniel Dengler
                                                                                               web developer




   Ruby on Rails
               Workshop SS 2009


„Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
12
Ruby on Rails
  Plugins & Gems
Plugins & Gems
Installation & Verwendung
Installation - Plugin
script/plugin install NAME ODER URL
script/plugin update NAME
script/plugin remove NAME


Alle Plugins werden in der aktuellen Anwendung
installiert und beim Start des Servers automatisch
aus vendor/plugins geladen.
Installation - Gems

(sudo) gem install NAME
Gems werden nicht automatisch geladen, da sie nicht
in die Anwendung sondern auf dem aktuellen System
installiert werden.
Um Gems zu laden müssen diese den Con g-Dateien
der Anwendung hinzugefügt werden.
Installation - Gems
In der Kon gurationsdatei con g/environment.rb:
con g.gem ' rst_gem'
con g.gem 'second_gem', :version => '0.4.1'
con g.gem 'third_gem', :version => '>=1.1.0'


Es wird geprüft, ob die Gems vorhanden sind und
falls vorhanden, werden diese geladen.
Mögliche Pluginfeatures
Eigene integrierte Anwendungen (etwa
BrowserCMS)
 •   Controller
 •   Models
 •   Views
 •   Routes
 •   Migrations
Mögliche Pluginfeatures

•   Erweiterung alle Kernklassen um neue
    Features wie etwa act_as_tree,
    acts_as_versioned, ...
•   Generatoren
•   Rake-Tasks
•   Tests
Quellen für Plugins


•   github.com
•   agilewebdevelopment.com
Wichtige
Erweiterungen
Listen

ActiveRecord Erweiterung
 •   acts_as_list


Erlaubt das individuelle Sortieren von
ActiveRecord Datensätzen
Baumstrukturen
ActiveRecord Erweiterung
 •   acts_as_tree
 •   awesome_nested_set


Erlaubt es Baumstrukturen einfach in der
Datenbank abzubilden. Beide Plugins haben
verschiedene Vor- und Nachteile, die berücksichtigt
werden sollten.
Versionierung
ActiveRecord Erweiterung
 •   acts_as_versioned


Legt beim speichern immer eine neue Version des
Datensatzes an ohne eine alte zu überschreiben.
Zudem können alte Versionen eingesehen und
wiederhergestellt werden.
Paranoia

ActiveRecord Erweiterung
 •   acts_as_paranoid


Anstelle Datensätze zu löschen, werden diese als
gelöscht markiert und bei den normalen Abfragen
nicht mehr zurückgeliefert.
Tags

ActiveRecord Erweiterung
 •   acts_as_taggable
 •   acts_as_taggable_on_steroids


Erlaubt das einfache Taggen von Datensätzen
Dateinanhänge
ActiveRecord Erweiterung
 •   paperclip


Erlaubt es Dateien an Datensätze zu binden.
Zudem können Bilder, wie etwa Avatare
entsprechend den Vorgaben neu berechnet
werden.
Suche
ActiveRecord Erweiterung
 •   searchlogic
 •   squirrel


Erweiterung um einfacher komplexe Suchanfragen
formulieren zu können.
Einstellungen

Allgemeine Erweiterung
 •   settingslogic


Erlaubt es Einstellungen einfach zu verwalten.
Erweiterte Datenbankfunktionen

ActiveRecord Erweiterung
 •   redhillonrails_core
 •   foreign_key_migrations


Erlaubt die Verwendung von Foreign Keys, Views
und anderen erweiterten Datenbankfunktionen.
Tests
Testing Erweiterungen
 •   RSpec
 •   cucumber
 •   factory_girl
 •   shoulda


Erlaubt es Dateien an Datensätze zu binden. Zudem
können Bilder, wie etwa Avatare entsprechend den
Vorgaben neu berechnet werden.
HAML & SASS

ActionView Erweiterungen
 •   haml


Erlaubt die Verwendung der Markupsprache HAML
in Views und die De nition von CSS mittels SASS.
Authenti zierung

ActiveRecord & ActionController Erweiterungen
 •   restful-authentication
 •   authlogic


Authenti zierungssysteme auf Benutzerbasis
Paginierung

ActiveRecord & ActionView Erweiterung
 •   will_paginate


Bietet Funktionen zur Einteilung in Einzelseiten bei
langen Au istungen.
CMS

Eigenständige Erweiterung
 •   browsercms


Bringt ein umfangreiches Content Management
System in die Anwendung.
Viele, viele andere Erweiterungen



In den häu gsten Fällen lohnt die Suche nach
einem entsprechenden Plugin für eine bestimmte
Funktion, da viele grundlegende Probleme bereits
von anderen Entwicklern gelöst wurden.
Demo &
Praxis-Session
?

Ruby on Rails SS09 12