aidengleave/acebook-desk-warriors

View on GitHub
app/models/post.rb

Summary

Maintainability
A
2 hrs
Test Coverage
class Post < ApplicationRecord
  belongs_to :user

  def can_edit(post_id, current_user_id)
    @post = Post.find(post_id)
    posted_at = @post.created_at
    editable = (Time.now - posted_at) > 600 ? false : true
    editable ? @post.user_id == current_user_id ? true : false : false
  end

  def verbose_timestamp(datetime)
    elapsed_time = Time.now.to_i - datetime.to_i
    case
    when elapsed_time < 60
      return "Just now"
    when elapsed_time < 3_600
      whole_mins = elapsed_time / 60
      message = whole_mins.to_s + " minute#{whole_mins < 2 ? "" : "s"}  ago"
      return message
    when elapsed_time < 86_400
      elapsed_time /= 3_600
      message = elapsed_time.to_s + " hour#{elapsed_time < 2 ? "" : "s"}  ago"
      return message
    when elapsed_time < 610_800
      elapsed_time /= 86_400
      message = elapsed_time.to_s + " day#{elapsed_time < 2 ? "" : "s"} ago"
      return message
    else
      message = "on " + (datetime.strftime("%b %d %Y")).to_s
      return message
    end
  end

end