Thread View: pl.comp.lang.ruby
6 messages
6 total messages
Started by edek
Tue, 19 Feb 2008 10:59
Powtarzany blok kodu
Author: edek
Date: Tue, 19 Feb 2008 10:59
Date: Tue, 19 Feb 2008 10:59
16 lines
948 bytes
948 bytes
Witam, w swojej aplikacji często powtrzam kod for time in ['morning', 'afternoon', 'evening', 'night'] do # (mój kod) end jak można zapisać to jakąś formułą, by nie pisać tego za każdym razem? Typu: costam do # (mój kod) end m.
Re: Powtarzany blok kodu
Author: Piotr 'piter' Hlawski
Date: Tue, 19 Feb 2008 12:01
Date: Tue, 19 Feb 2008 12:01
32 lines
1631 bytes
1631 bytes
edek wrote:
> Witam,
>
> w swojej aplikacji często powtrzam kod
>
> for time in ['morning', 'afternoon', 'evening', 'night'] do
> # (mój kod)
> end
>
> jak można zapisać to jakąś formułą, by nie pisać tego za każdym razem?
> Typu:
>
> costam do
> # (mój kod)
> end
Może tak (pisane na szybko):
def costam(arr = ['morning', 'afternoon', 'evening', 'night'])
arr.each do |x|
yield(x) if block.given?
end
end
costam do |a|
# Twój kod, np:
puts a
end
--
[ Piotr 'piter' Hlawski ( <phlawski$gmail,com> ) ( GG: 4534287 ) ]
Re: Powtarzany blok kodu
Author: Piotr 'piter' Hlawski
Date: Tue, 19 Feb 2008 12:09
Date: Tue, 19 Feb 2008 12:09
31 lines
1715 bytes
1715 bytes
Piotr 'piter' Hlawski wrote: > edek wrote: > >> Witam, >> >> w swojej aplikacji często powtrzam kod >> >> for time in ['morning', 'afternoon', 'evening', 'night'] do >> # (mój kod) >> end >> >> jak można zapisać to jakąś formułą, by nie pisać tego za każdym razem? >> Typu: >> >> costam do >> # (mój kod) >> end > > Może tak (pisane na szybko): > > def costam(arr = ['morning', 'afternoon', 'evening', 'night']) > arr.each do |x| > yield(x) if block.given? > end > end poprawka, if block_given? oczywiście -- [ Piotr 'piter' Hlawski ( <phlawski$gmail,com> ) ( GG: 4534287 ) ]
Re: Powtarzany blok kodu
Author: edek
Date: Wed, 20 Feb 2008 08:41
Date: Wed, 20 Feb 2008 08:41
3 lines
887 bytes
887 bytes
dzięki! m.
Re: Powtarzany blok kodu
Author: edek
Date: Fri, 22 Feb 2008 16:11
Date: Fri, 22 Feb 2008 16:11
39 lines
1863 bytes
1863 bytes
OK, a jak w railsach można zrobić coś takiego. Definiuję w application
helper kod, który ma mi generować HTMLa z zakładkami:
def tabbox(headers)
# Tutaj powinien wypluć parę tagów
# otwierających diva zakładkami itd.
headers.each do |x|
# Tutaj powinien wypluć parę tagów
# z nagłówkami zakładek
end
headers.each do |x|
yield(x) if block_given?
end
# Tutaj powinien wypluć parę tagów
# zamykających zakładki
end
Przewidywany sposób użycia wyglądałby mniej więcej tak:
tabbox(['zakladka1', 'zakladka2']) do |tab|
case tab
when 'zakladka1'
# renderowanie tresci zakladki 1
when 'zakladka2'
# renderowanie tresci zakladki 2
end
end
Jestem w stanie to zrobić normalnie w rubym, tam gdzie piszę, że "tutaj
powinno wypluć kod" wystarczy dać puts, ale w railsach to nie działa.
Jakiej metody powinienem użyć?
m.
Re: Powtarzany blok kodu
Author: Przemysław Kowalczyk
Date: Fri, 22 Feb 2008 17:05
Date: Fri, 22 Feb 2008 17:05
49 lines
2255 bytes
2255 bytes
On Fri, 22 Feb 2008 17:11:35 +0100, edek <akjdjkdaiu@amazon.com> wrote: > OK, a jak w railsach można zrobić coś takiego. Definiuję w application > helper kod, który ma mi generować HTMLa z zakładkami: > > def tabbox(headers) > # Tutaj powinien wypluć parę tagów > # otwierających diva zakładkami itd. > > headers.each do |x| > # Tutaj powinien wypluć parę tagów > # z nagłówkami zakładek > end > > headers.each do |x| > yield(x) if block_given? > end > > # Tutaj powinien wypluć parę tagów > # zamykających zakładki > > end najprostszy sposob to taki, zeby ta metoda zwracala stringa. mozesz go sobie w niej zlepic w dowolny sposob > Przewidywany sposób użycia wyglądałby mniej więcej tak: > > tabbox(['zakladka1', 'zakladka2']) do |tab| > case tab > when 'zakladka1' > # renderowanie tresci zakladki 1 > > when 'zakladka2' > # renderowanie tresci zakladki 2 > end > end > > Jestem w stanie to zrobić normalnie w rubym, tam gdzie piszę, że "tutaj > powinno wypluć kod" wystarczy dać puts, ale w railsach to nie działa. > Jakiej metody powinienem użyć? <%= tabbox(...) %> pzdr szeryf -- Przemysław ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads