Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version Jetzt Buch bestellen
* versandkostenfrei in (D) und (A)
Pfeil 12 Nützliche Helfer mit ActiveSupport
  Pfeil 12.1 Zahlen
  Pfeil 12.2 Zeichenketten
  Pfeil 12.3 Arrays
  Pfeil 12.4 Hashes
  Pfeil 12.5 Datentypunabhängig

12 Nützliche Helfer mit ActiveSupport

ActiveSupport bietet sehr nützliche Methoden, die den Alltag der Programmierer erleichtern.

Objekte erweitern

ActiveSupport ist eine Ansammlung von Hilfsklassen und Standard-Bibliothekerweiterungen, die sehr nützliche Methoden zur Verfügung stellen. Das Besondere an diesen Methoden ist, dass ActiveSupport die Standard-Datentypobjekte wie String, Fixnum, Array usw. um praktische Methoden erweitert. Zum Beispiel wird die Klasse Array um die Methode sum erweitern, um die Summe aller Elemente zu berechnen. Aber nicht nur die Standard Datentypobjekte werden erweitert, sondern es stehen auch Methoden zur Verfügung, die auf alle Objekte anwendbar sind.

In diesem Kapitel werden nur die wichtigsten Methoden vorgestellt. Einige Methoden sind nur für die interne Programmierung des Rails-Frameworks entwickelt worden und haben für Rails-Projekte in der Regel geringe Relevanz, weswegen wir diese Methoden hier nicht aufführen. In der Rails-Dokumentation http://api.rubyonrails.com/ können Sie alle Befehle nachschlagen.

Sie können die Methoden von ActiveSupport überall in Ihrem Rails-Projekt verwenden. Sie können ActiveSupport sogar unabhängig von Rails einsetzen, wenn Sie ihn am Anfang Ihres Scripts mit require einbinden.

require "rubygems"
require "active_support"

puts [1,2,3].sum
# => 6

>> 7.days.from_now
# => Tue Mar 04 00:07:17 +0100 2008

Rails-Konsole

Die Beispiele in diesem Kapitel können Sie zum Testen direkt in der Rails-Konsole (ruby script/console) eingeben. Der require -Befehl muss in der Rails-Konsole nicht angegeben werden, da ActiveSupport automatisch geladen wird.


Rheinwerk Computing - Zum Seitenanfang

12.1 Zahlen  Zur nächsten ÜberschriftZur vorigen Überschrift

ActiveSupport stellt eine Reihe von praktischen Methoden zur Verarbeitung von Zahlen zur Verfügung.


Rheinwerk Computing - Zum Seitenanfang

Gerade und ungerade Zahlen  Zur nächsten ÜberschriftZur vorigen Überschrift

Um festzustellen, ob eine ganze Zahl gerade ist oder nicht gibt, es verschiedene Möglichkeiten. Eine Möglichkeit besteht darin, den Rest der ganzzahligen Division (modulo) zu ermitteln.

zahl = 5
if zahl % 2 == 0
  "gerade"
else
  "ungerade"
end
=> "ungerade"

even?, odd?, multiple_of?

ActiveSupport erweitert die Klasse Integer, um die Methoden even?, odd? und multiple_of? . Die Methode even? überprüft, ob eine Zahl gerade ist, und die Methode odd? testet, ob eine Zahl ungerade ist. Die Methode multiple_of? überprüft, ob eine Zahl ein Vielfaches von einer anderen Zahl ist.

1.even?\textbf{}
=> false
1.odd?
=> true
9.multiple_of? 3
=> true

Rheinwerk Computing - Zum Seitenanfang

Ordinalzahlen  Zur nächsten ÜberschriftZur vorigen Überschrift

Ordinalzahlen werden in der englischen Sprache benötigt. Für die Umwandlung von einer ganzen Zahl (Integer) in eine Ordinalzahl nutzen wir die Methode ordinalize:

1.ordinalize
=> "1st"
2.ordinalize
=> "2nd"
3.ordinalize
=> "3rd"
5.ordinalize
=> "5th"
123.ordinalize
=> "123rd"

Rheinwerk Computing - Zum Seitenanfang

Kapazitätseinheiten  Zur nächsten ÜberschriftZur vorigen Überschrift

Bytes umwandeln

Die Methoden byte, kilobyte, megabyte, gigabyte, terabyte, petabyte und exabyte dienen zum Umwandeln der Kapazitätseinheiten. Es gibt die Methoden jeweils auch in der Pluralvariante, wie z. B. kilobytes . Der Rückgabewert dieser Methoden ist immer eine Zahl vom Typ Integer.

1.byte
=> 1
1.kilobyte
=> 1024
2.kilobytes
=> 2048
1.megabyte
=> 1048576
1.gigabyte
=> 1073741824
1.terabyte
=> 1099511627776
1.petabyte
=> 1125899906842624
1.exabyte
=> 1152921504606846976

Sie können auch Berechnungen durchführen:

1.kilobyte + 100.bytes
=> 1124
1500.kilobytes/1.megabyte
=> 1
1500.kilobytes/1.megabyte.to_f
=>  1.46484375

to_f

Da die Methoden als Rückgabewert ganzzahlige Zahlen zurückliefern, müssen Sie einen der Werte mit der Methode to_f in eine Fließkommazahl umwandeln, wenn Sie als Rückgabewert der Berechnung eine Kommazahl (float) erhalten möchten.


Rheinwerk Computing - Zum Seitenanfang

Datum und Zeit  topZur vorigen Überschrift

ActiveSupport erweitert das Date-, das DateTime- und das Time-Objekt um zahlreiche nützliche Methoden.

Beginning

Den Anfang der Woche, des Monats, des Quartals und des Jahres zu einem gegebenen Datum ermittelt man leicht mit den Methoden beginning_week, beginning_month, beginning_quarter und beginning_year.

date = Date.new(2008,12,24)
=> Wed, 24 Dec 2008
date.beginning_of_week
=> Mon, 22 Dec 2008
date.beginning_of_month
=> Mon, 01 Dec 2008
date.beginning_of_quarter
=> Wed, 01 Oct 2008
date.beginning_of_year
=> Tue, 01 Jan 2008

Ago

Mit der Methode months_ago(n) wird das Datum vor n Monaten bestimmt, mit der Methode months_since(n) das Datum nach n Monaten. Analog gibt es die Methoden years_ago(n) und years_since(n).

date = Date.new(2008,12,24)
=> Wed, 24 Dec 2008
date.months_ago(2)
=> Fri, 24 Oct 2008
date.months_since(3)
=> Tue, 24 Mar 2009
date.years_ago(10)
=> Thu, 24 Dec 1998
date.years_since(2)
=> Fri, 24 Dec 2010

Next

Die nächste Woche, der nächste Monat und das nächste Jahr werden mit den Methoden next_week, next_month und next_year berechnet.

Um den letzten Monat zu bestimmen, kann man die Methode last_month aufrufen. Das letzte Jahr kann mit der Methode last_year bestimmt werden.

Zur Berechnung des letzten Tages eines Monats dient die Methode end_of_month.

date = Date.new(2008,12,24)
=> Wed, 24 Dec 2008
date.next_week
=> Mon, 29 Dec 2008
date.next_month
=> Sat, 24 Jan 2009
date.next_year
=> Thu, 24 Dec 2009
date.last_month
=> Mon, 24 Nov 2008
date.last_year
=> Mon, 24 Dec 2007
date.end_of_month
=> Wed, 31 Dec 2008

Arithmetische Operationen

Sehr praktisch ist die Möglichkeit, arithmetische Operationen auf Zeit-Objekten durchzuführen. 1.day + 5.hour + 10.minutes ermittelt z. B. die Anzahl der Sekunden, die einem Tag, fünf Stunden und 10 Minuten entsprechen. Es stehen die folgenden Methoden zur Verfügung:

  • second, seconds
    für die Umwandlung von Sekunden nach Sekunden (liefert immer die identische Zahl)
  • minute, minutes
    für die Umwandlung von Minuten nach Sekunden
  • hour, hours
    für die Umwandlung von Stunden nach Sekunden
  • day, days
    für die Umwandlung von Tagen nach Sekunden
  • week, weeks
    für die Umwandlung von Wochen nach Sekunden
  • fortnight, fortnights
    für die Umwandlung von jeweils 14 Tagen nach Sekunden
  • year, years
    für die Umwandlung von Jahren nach Sekunden
1.week == 7.days
=> true
1.fortnight == 14.days
=> true

Sie können die Methoden auch nutzen, um z. B. die Anzahl Tage statt der Anzahl Sekunden zu berechnen. Um z. B. für zwei Wochen und drei Tage die Anzahl der Tage zu ermitteln, teilen Sie die Anzahl Sekunden durch einen Tag:

(2.weeks + 3.days)/1.day
=> 17

Sehr häufig treffen Sie im Programmieralltag auf folgende Aufgaben: Ermitteln Sie das Datum in genau 14 Tagen oder das Datum und die Uhrzeit vor 12 Stunden.

Zukunft

Für die Ermittlung von zukünftigen Zeiten wird die Methode from_now oder since verwendet:

0.day.from_now
=> Thu Feb 22 00:05:58 +0100 2007
1.day.from_now
=> Fri Feb 23 00:05:58 +0100 2007
(1.day + 3.hours).from_now
=> Fri Feb 23 03:07:02 +0100 2007

Vergangenheit

Für die Ermittlung von vergangenen Zeiten werden die Methoden ago und until verwendet:

0.day.until
=> Thu Feb 22 00:05:58 +0100 2007
1.day.until
=> Wed Feb 21 00:14:06 +0100 2007
(1.day + 3.hours).until
=> Tue Feb 20 21:14:27 +0100 2007

ActiveSupport stellt auch nützliche Methoden zur Verfügung, um Objekte der Klasse String oder Time in Datums-Objekte und Time-Objekte in Datums-Objekte oder Strings umzuwandeln.

In ein Datum umwandeln

Die Methode to_date wandelt ein als String formatiertes Datum oder ein Time-Objekt in ein Objekt der Klasse Date um:

"06-02-1968".to_date
=> 1968-02-06
puts Time.now.to_date
=> 2007-05-29

In eine Zeit umwandeln

Die Methode to_time wandelt eine als String formatierte Uhrzeit oder ein Datums-Objekt in ein Objekt der Klasse Time um. Als Parameter können Sie dieser Methode die Werte :utc (Standard) oder :local übergeben:

"06-02-1968 03:00:00".to_time
=> Tue Feb 06 03:00:00 UTC 1968

today, yesterday, tomorrow

Die Klassen-Methode today der Date-Klasse ermittelt das aktuelle Datum. ActiveSupport erweitert die Date-Klasse um die Methoden yesterday und tomorrow.

Date.today
=> Mon, 15 Oct 2007
Date.tomorrow
=> Tue, 16 Oct 2007
Date.yesterday
=>Sun, 14 Oct 2007


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Ruby on Rails 2
Ruby on Rails 2
Jetzt Buch bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern