Class: LedgerWeb::Decorators::LinkDecorator

Inherits:
Object
  • Object
show all
Defined in:
lib/ledger_web/decorators.rb

Instance Method Summary collapse

Constructor Details

#initialize(href_pattern) ⇒ LinkDecorator

Returns a new instance of LinkDecorator.



19
20
21
# File 'lib/ledger_web/decorators.rb', line 19

def initialize(href_pattern)
  @href_pattern = href_pattern
end

Instance Method Details

#decorate(cell, row) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ledger_web/decorators.rb', line 23

def decorate(cell, row)
  url = String.new(@href_pattern)
  row.each_with_index do |c,i|
    url.gsub!(":#{i}", CGI.escape(c.value.to_s))
  end
  url.gsub!(':title', CGI.escape(cell.title.to_s))
  url.gsub!(':now', CGI.escape(DateTime.now.strftime('%Y-%m-%d')))
  url.gsub!(':this', CGI.escape(cell.value.to_s))
  prev_text = cell.text
  cell.text = "<a href=\"#{url}\">#{cell.text}</a>"
  cell
end