Commit 8951ae049ebac949a42096e80c157d34a266acdc

Authored by Rafael Reggiani Manzo
1 parent a2b4c459

Refactor EventBlock#human_time_left into helper

This method fits bteer into a helper since it is formatting data for the
view.
plugins/event/lib/event_block_helper.rb
... ... @@ -1,10 +0,0 @@
1   -module EventBlockHelper
2   - include DatesHelper
3   -
4   - def date_to_html(date)
5   - content_tag(:span, show_day_of_week(date, true), :class => 'week-day') +
6   - content_tag(:span, month_name(date.month, true), :class => 'month') +
7   - content_tag(:span, date.day.to_s, :class => 'day') +
8   - content_tag(:span, date.year.to_s, :class => 'year')
9   - end
10   -end
plugins/event/lib/event_plugin/event_block.rb
... ... @@ -47,21 +47,6 @@ class EventPlugin::EventBlock < Block
47 47 event_list
48 48 end
49 49  
50   - def human_time_left(days_left)
51   - months_left = (days_left/30.0).round
52   - if days_left <= -60
53   - n_('One month ago', '%d months ago', -months_left) % -months_left
54   - elsif days_left < 0
55   - n_('Yesterday', '%d days ago', -days_left) % -days_left
56   - elsif days_left == 0
57   - _("Today")
58   - elsif days_left < 60
59   - n_('Tomorrow', '%d days left to start', days_left) % days_left
60   - else
61   - n_('One month left to start', '%d months left to start', months_left) % months_left
62   - end
63   - end
64   -
65 50 def self.expire_on
66 51 { :profile => [:article], :environment => [:article] }
67 52 end
... ...
plugins/event/lib/event_plugin/event_block_helper.rb 0 → 100644
... ... @@ -0,0 +1,25 @@
  1 +module EventPlugin::EventBlockHelper
  2 + include DatesHelper
  3 +
  4 + def date_to_html(date)
  5 + content_tag(:span, show_day_of_week(date, true), :class => 'week-day') +
  6 + content_tag(:span, month_name(date.month, true), :class => 'month') +
  7 + content_tag(:span, date.day.to_s, :class => 'day') +
  8 + content_tag(:span, date.year.to_s, :class => 'year')
  9 + end
  10 +
  11 + def human_time_left(days_left)
  12 + months_left = (days_left/30.0).round
  13 + if days_left <= -60
  14 + n_('One month ago', '%d months ago', -months_left) % -months_left
  15 + elsif days_left < 0
  16 + n_('Yesterday', '%d days ago', -days_left) % -days_left
  17 + elsif days_left == 0
  18 + _("Today")
  19 + elsif days_left < 60
  20 + n_('Tomorrow', '%d days left to start', days_left) % days_left
  21 + else
  22 + n_('One month left to start', '%d months left to start', months_left) % months_left
  23 + end
  24 + end
  25 +end
... ...
plugins/event/test/unit/event_block_helper_test.rb
1 1 require 'test_helper'
2 2  
3 3 class EventBlockHelperTest < ActionView::TestCase
4   - include EventBlockHelper
  4 + include EventPlugin::EventBlockHelper
5 5  
6 6 should 'write formatable data in html' do
7 7 html = '<span class="week-day">Tue</span>'+
... ... @@ -11,4 +11,24 @@ class EventBlockHelperTest &lt; ActionView::TestCase
11 11  
12 12 assert_equal html, date_to_html(Date.new 1983, 9, 27)
13 13 end
  14 +
  15 + should 'say human left time for an event' do
  16 + assert_match /Tomorrow/, human_time_left(1)
  17 + assert_match /5 days left/, human_time_left(5)
  18 + assert_match /30 days left/, human_time_left(30)
  19 + assert_match /2 months left/, human_time_left(60)
  20 + assert_match /3 months left/, human_time_left(85)
  21 + end
  22 +
  23 + should 'say human past time for an event' do
  24 + assert_match /Yesterday/, human_time_left(-1)
  25 + assert_match /5 days ago/, human_time_left(-5)
  26 + assert_match /30 days ago/, human_time_left(-30)
  27 + assert_match /2 months ago/, human_time_left(-60)
  28 + assert_match /3 months ago/, human_time_left(-85)
  29 + end
  30 +
  31 + should 'say human present time for an event' do
  32 + assert_match /Today/, human_time_left(0)
  33 + end
14 34 end
... ...
plugins/event/test/unit/event_block_test.rb
... ... @@ -77,26 +77,6 @@ class EventBlockTest &lt; ActiveSupport::TestCase
77 77 assert_equal 2, @block.events.length
78 78 end
79 79  
80   - should 'say human left time for an event' do
81   - assert_match /Tomorrow/, @block.human_time_left(1)
82   - assert_match /5 days left/, @block.human_time_left(5)
83   - assert_match /30 days left/, @block.human_time_left(30)
84   - assert_match /2 months left/, @block.human_time_left(60)
85   - assert_match /3 months left/, @block.human_time_left(85)
86   - end
87   -
88   - should 'say human past time for an event' do
89   - assert_match /Yesterday/, @block.human_time_left(-1)
90   - assert_match /5 days ago/, @block.human_time_left(-5)
91   - assert_match /30 days ago/, @block.human_time_left(-30)
92   - assert_match /2 months ago/, @block.human_time_left(-60)
93   - assert_match /3 months ago/, @block.human_time_left(-85)
94   - end
95   -
96   - should 'say human present time for an event' do
97   - assert_match /Today/, @block.human_time_left(0)
98   - end
99   -
100 80 should 'show unlimited time distance events' do
101 81 @block.box.owner = @env
102 82 @block.all_env_events = true
... ...
plugins/event/views/blocks/event.html.erb
  1 +<% extend EventPlugin::EventBlockHelper %>
  2 +
1 3 <%= block_title(block.title, block.subtitle) %>
2 4  
3 5 <ul class="events">
... ... @@ -10,7 +12,7 @@
10 12 :event => event,
11 13 :block => block,
12 14 :time_class => days_left < 0 ? 'past' : 'future',
13   - :time_left_str => block.human_time_left(days_left)
  15 + :time_left_str => human_time_left(days_left)
14 16 }
15 17 )
16 18 %>
... ...
plugins/event/views/event_plugin/event_block_item.html.erb
1 1 <%
2   - extend EventBlockHelper
  2 + extend EventPlugin::EventBlockHelper
3 3  
4 4 # compute layout values
5 5 ev_days_tag = ''
... ...