Skip to content

Commit

Permalink
Merge pull request #775 from voc/feat/readable_viewcounts
Browse files Browse the repository at this point in the history
make larger viewcounts readable
  • Loading branch information
danimo authored Jan 17, 2025
2 parents 9681074 + b881735 commit 665303c
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 2 deletions.
12 changes: 12 additions & 0 deletions app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require "active_support/number_helper"

module ApplicationHelper
def line_break_filename(filename)
if filename.present?
Expand All @@ -6,4 +8,14 @@ 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
def delimited_views_count(count)
ActiveSupport::NumberHelper.number_to_delimited(count)
end
end
4 changes: 2 additions & 2 deletions app/views/frontend/events/show.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -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: #{delimited_views_count(@event.view_count)}"}
= human_readable_views_count(@event.view_count)
- if @event.link.present?
%li
%span.icon.icon-external-link
Expand Down
32 changes: 32 additions & 0 deletions test/helpers/application_helper_test.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 665303c

Please sign in to comment.