diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0047b3f0..12e55de6 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -6,4 +6,11 @@ def line_break_filename(filename) '' end end + def human_readable_views_count(count) + if count < 1000 + "#{count}" + else + "#{(count / 1000.0).round(1)}k" + end + end end diff --git a/app/views/frontend/events/show.html.haml b/app/views/frontend/events/show.html.haml index b71ccbf2..4d5ef305 100644 --- a/app/views/frontend/events/show.html.haml +++ b/app/views/frontend/events/show.html.haml @@ -131,8 +131,8 @@ %span.icon.icon-upload{title: 'release date'} = @event.release_date.to_date %li - %span.icon.icon-eye - = @event.view_count + %span.icon.icon-eye{title: "view count: #{@event.view_count}"} + = human_readable_views_count(@event.view_count) - if @event.link.present? %li %span.icon.icon-external-link diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb new file mode 100644 index 00000000..7fbc04dd --- /dev/null +++ b/test/helpers/application_helper_test.rb @@ -0,0 +1,32 @@ +# test/helpers/application_helper_test.rb +require 'test_helper' + +class ApplicationHelperTest < ActionView::TestCase + test 'returns "0" for 0 views' do + assert_equal '0', human_readable_views_count(0) + end + + test 'returns "1" for 1 view' do + assert_equal '1', human_readable_views_count(1) + end + + test 'returns "500" for 500 views' do + assert_equal '500', human_readable_views_count(500) + end + + test 'returns "999" for 999 views' do + assert_equal '999', human_readable_views_count(999) + end + + test 'returns "1.0k" for 1000 views' do + assert_equal '1.0k', human_readable_views_count(1000) + end + + test 'returns "10.0k" for 10000 views' do + assert_equal '10.0k', human_readable_views_count(10000) + end + + test 'returns "100.0k" for 100000 views' do + assert_equal '100.0k', human_readable_views_count(100000) + end +end