Article View: pl.comp.lang.ruby
Article #164Re: Przeciazanie nazw
From: janu
Date: Sat, 26 Aug 2006 10:10
Date: Sat, 26 Aug 2006 10:10
50 lines
2988 bytes
2988 bytes
Witam,
Marcin Mielżyński wrote:
> 1. W Rubym nie istnieje pojęcie przeciążania metod ;) - możliwe że
> perlowe multimetody będą w 2.0
Rzeczywiscie, zle nazwalem to, o co mi chodzi :) Swoja droga - na czym
polegaja owe perlowe multimetody, bo w perlu nigdy nie programowalem?
Chodzi mi o samo pojecie multimetody.
> 2. Podejrzewam że chodzi o widoczność helpera z widoku a nie kontrolera
>
> więc:
>
> w twoim kodzie eval tworzy nowy moduł znajdujący się w bieżącej klasie,
> który nie ma nic wspólnego z właściwym. Aby otworzyć istniejący wyżej
> moduł musisz wyjść z przestrzeni klasy w której robisz eval poprzez
> operator zakresu '::'
>
> eval %{
> module ::ApplicationHelper
> def tralalala
> 'hahaha'
> end
> end
> }
>
> ale tak czy inaczej ładniej będzie:
>
> ApplicationHelper.module_eval %{
> def tralalala
> 'hahaha'
> end
> }
>
> Tutaj już nie ma potrzeby robienia '::' (o ile byłby konflikt) bo
> odwołanie sugeruje Rubiemu że moduł już istnieje i jest dostępny.
Niestety, probowalem na szybko wprowadzic Twoje rozwiazania w swoj kod
i nie dzialaly. Jak znajde troche wiecej czasu, to przetestuje je
troche lepiej, a chwilowo sprawe "zalatwilem" tworzac swoja wersje
distance_of_time_in_words, w ktorej wywoluje evalowanie metody
zdefiniowanej w bazie danych (ta sama nazwa z sufiksem _alt), jesli ta
metoda jeszcze nie istnieje w moim srodowisku (wprowadzam sobie pole,
trzymajace informacje o tym, czy ta metoda istnieje). Rozwiazanie
metoda cepa, bardzo mi sie nie podoba, ale jak na ta chwile jedyne
dzialajace.
Pozdrawiam
Jachu
Technical Details
Message-ID:
<1156587038.612810.251440@b28g2000cwb.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b28g2000cwb.googlegroups.com!not-for-mailReferences:
<1156527006.131474.273750@b28g2000cwb.googlegroups.com> <ecnfc7$rbs$1@news.onet.pl> <1156534325.219773.39940@m79g2000cwm.googlegroups.com> <ecnusm$938$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b28g2000cwb.googlegroups.com!not-for-mail From: "janu" <jachuf@gmail.com> Newsgroups: pl.comp.lang.ruby Subject: Re: Przeciazanie nazw Date: 26 Aug 2006 03:10:38 -0700 Organization: http://groups.google.com Lines: 57 Message-ID: <1156587038.612810.251440@b28g2000cwb.googlegroups.com> References: <1156527006.131474.273750@b28g2000cwb.googlegroups.com> <ecnfc7$rbs$1@news.onet.pl> <1156534325.219773.39940@m79g2000cwm.googlegroups.com> <ecnusm$938$1@news.onet.pl> NNTP-Posting-Host: 83.238.70.51 Mime-Version: 1.0 X-Trace: posting.google.com 1156587042 5005 127.0.0.1 (26 Aug 2006 10:10:42 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 26 Aug 2006 10:10:42 +0000 (UTC) In-Reply-To: <ecnusm$938$1@news.onet.pl> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060731 Firefox/1.5.0.5 Flock/0.7.4.1,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: b28g2000cwb.googlegroups.com; posting-host=83.238.70.51; posting-account=ntEVaA0AAACC2OAaQ6hrHjnbG9iwpJgc Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit