hab mir soeben das rails 2.1 changelog angesehen, und dort gibt es folgende nette erweiterungen.
- zimezones
- dirty tracking
- gem dependencies
- names scope
- utc-migrations
- better-caching
wie immer hat rails gute ideen, und eine sehr schoene umsetzung. aber es freut mich umso mehr, dass webtek bereites schon die haelfter der features hatte :)
timezones
in rails setzt man einen before_filter:
class ApplicationController < ActionController::Base
before_filter :set_timezone
def set_timezone
# current_user.time_zone #=> 'London'
Time.zone = current_user.time_zone
end
end
in webtek macht man das mit einem event:
event->register(
'name' => 'request-prepare-end'
'method' => sub { request->timezone(session->user->timezone) }
)
dirty tracking
hiermit kriegt man informationen welche felder in einem model neu sind (d.h. noch nicht in der db), und welche geaendert wurden (nach einem partial update). hier in rails:
article = Article.find(:first)
article.changed? #=> false
# Track changes to individual attributes with
# attr_name_changed? accessor
article.title #=> "Title"
article.title = "New Title"
article.title_changed? #=> true
# Access previous value with attr_name_was accessor
article.title_was #=> "Title"
# See both previous and current value with attr_name_change accessor
article.title_change #=> ["Title", "New Title"]
und wieder in webtek
$article = app::Model::Article->find_one;
$article->_lazy; # => [] liefert ein leeres array;
# Track changes to individual attributes with
# attr_name_changed? accessor
$article->title #=> "Title"
$article->title("New Title")
$article->_lazy; # => ['title']
# Access previous value with attr_name_was accessor
$article->{'persistent_content'}->{'title'};
# => 'Title' ... gut nicht so schoen aber machbar
# See both previous and current value with attr_name_change accessor
# das geht nicht, aber man weiss zumindest was geaendert wurde
# nach dem speichern
$article->save;
$article->_updated; # => ['title']
... zugegeben, rails macht es schoener, aber immerhin, dieses feature hatte webtek schon lange
utc-migrations
gut, das ist jetzt zwar nix besonderes, aber die webtek migrations funktionieren auch genauso. hier wieder in rails
> script/generate migration one
create db/migrate/20080402122512_one.rb
> rake db:migrate:up
...
> rake db:migrate:down
...
und webtek:
> ./webtek migrate create Test
=> create /WebTek/app/Test/scripts/migrate/20080610220557_Test.pl
> ./webtek migrate up
...
> ./webtek migrate down
...
1 Kommentar(e):
Neuen Kommentar schreiben: