examples/app/chat/model/history.rb in Pistos-ramaze-2009.02 vs examples/app/chat/model/history.rb in Pistos-ramaze-2009.04.08
- old
+ new
@@ -1,30 +1,32 @@
-class History
- include Ramaze::Helper::CGI
+require 'ramaze/gestalt'
+class History
def initialize(size = 13)
@size = size
@history = []
end
def write(nick, text)
text.strip!
return if text.empty?
@history.shift until @history.size < @size
- @history << Message.new(h(nick), h(text), Time.now)
+ @history << Message.new(nick, text, Time.now)
true
end
def to_html
- @history.map {|message|
- '<div class="message">' <<
- [:time, :nick, :text].map{|key| span_for(message, key)}.join("\n") <<
- '</div>'
- }.join("\n")
- end
+ g = Ramaze::Gestalt.new
- def span_for(message, key)
- "<span class='#{key}'>#{message[key]}</span>"
+ each do |message|
+ g.div(:class => :message) do
+ g.span(:class => :time){ message[:time].strftime('%X') }
+ g.span(:class => :nick){ message[:nick] }
+ g.span(:class => :text){ message[:text] }
+ end
+ end
+
+ g.to_s
end
include Enumerable
def each