Class: Milestoner::Views::Parts::Commit
- Inherits:
-
Hanami::View::Part
- Object
- Hanami::View::Part
- Milestoner::Views::Parts::Commit
- Defined in:
- lib/milestoner/views/parts/commit.rb
Overview
The commit presentation logic. :reek:RepeatedConditional
Instance Method Summary collapse
- #at ⇒ Object
- #avatar_url(user) ⇒ Object
- #date ⇒ Object
- #datetime ⇒ Object
- #emoji ⇒ Object
- #fingerprint ⇒ Object
- #fingerprint_key ⇒ Object
- #icon ⇒ Object
-
#initialize ⇒ Commit
constructor
A new instance of Commit.
- #kind ⇒ Object
- #popover_id ⇒ Object
- #profile_url(user) ⇒ Object
- #safe_body ⇒ Object
- #safe_notes ⇒ Object
- #security ⇒ Object
- #signature_label ⇒ Object
- #tag ⇒ Object
- #time ⇒ Object
- #total_deletions ⇒ Object
-
#total_insertions ⇒ Object
:reek:FeatureEnvy.
- #weekday ⇒ Object
- #zone ⇒ Object
Constructor Details
#initialize ⇒ Commit
Returns a new instance of Commit.
20 21 22 23 24 |
# File 'lib/milestoner/views/parts/commit.rb', line 20 def initialize(**) super @prefixes = settings.commit_categories.pluck :label @authored_at = Time.at(value..to_i).utc end |
Instance Method Details
#at ⇒ Object
90 |
# File 'lib/milestoner/views/parts/commit.rb', line 90 def at = .strftime "%Y-%m-%dT%H:%M:%S%z" |
#avatar_url(user) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/milestoner/views/parts/commit.rb', line 26 def avatar_url user warn "`#{self.class}##{__method__}` is deprecated, use user scope instead.", category: :deprecated format settings.avatar_uri, id: user.external_id end |
#date ⇒ Object
96 |
# File 'lib/milestoner/views/parts/commit.rb', line 96 def date = .strftime "%Y-%m-%d" |
#datetime ⇒ Object
92 |
# File 'lib/milestoner/views/parts/commit.rb', line 92 def datetime = .strftime "%Y-%m-%d (%A) at %H:%M %p %Z" |
#emoji ⇒ Object
47 48 49 50 51 |
# File 'lib/milestoner/views/parts/commit.rb', line 47 def emoji settings.commit_categories .find { |category| category.fetch(:label) == prefix } .then { |category| category ? category.fetch(:emoji) : "🔶" } end |
#fingerprint ⇒ Object
86 |
# File 'lib/milestoner/views/parts/commit.rb', line 86 def fingerprint = value.fingerprint.then { |text| text.empty? ? "N/A" : text } |
#fingerprint_key ⇒ Object
88 |
# File 'lib/milestoner/views/parts/commit.rb', line 88 def fingerprint_key = value.fingerprint_key.then { |text| text.empty? ? "N/A" : text } |
#icon ⇒ Object
53 54 55 56 57 58 |
# File 'lib/milestoner/views/parts/commit.rb', line 53 def icon if prefixes.include? prefix then String(prefix).downcase elsif value.directive? then "rebase" else "invalid" end end |
#kind ⇒ Object
40 41 42 43 44 45 |
# File 'lib/milestoner/views/parts/commit.rb', line 40 def kind if prefixes.include? prefix then "normal" elsif value.directive? then "alert" else "error" end end |
#popover_id ⇒ Object
78 |
# File 'lib/milestoner/views/parts/commit.rb', line 78 def popover_id = "po-#{value.sha}" |
#profile_url(user) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/milestoner/views/parts/commit.rb', line 33 def profile_url user warn "`#{self.class}##{__method__}` is deprecated, use user scope instead.", category: :deprecated format settings.profile_uri, id: user.handle end |
#safe_body ⇒ Object
60 |
# File 'lib/milestoner/views/parts/commit.rb', line 60 def safe_body = sanitizer.call(value.body).html_safe |
#safe_notes ⇒ Object
62 |
# File 'lib/milestoner/views/parts/commit.rb', line 62 def safe_notes = sanitizer.call(value.notes).html_safe |
#security ⇒ Object
80 |
# File 'lib/milestoner/views/parts/commit.rb', line 80 def security = value.signature == "Good" ? "secure" : "insecure" |
#signature_label ⇒ Object
82 83 84 |
# File 'lib/milestoner/views/parts/commit.rb', line 82 def signature_label value.signature.then { |kind| kind == "Good" ? "🔒 #{kind}" : "🔓 #{kind}" } end |
#tag ⇒ Object
71 72 73 74 75 76 |
# File 'lib/milestoner/views/parts/commit.rb', line 71 def tag return "rebase" if value.directive? return "invalid" unless prefixes.include? prefix value.milestone end |
#time ⇒ Object
98 |
# File 'lib/milestoner/views/parts/commit.rb', line 98 def time = .strftime "%H:%M %p" |
#total_deletions ⇒ Object
64 |
# File 'lib/milestoner/views/parts/commit.rb', line 64 def total_deletions = format "%d", -value.deletions |
#total_insertions ⇒ Object
:reek:FeatureEnvy
67 68 69 |
# File 'lib/milestoner/views/parts/commit.rb', line 67 def total_insertions value.insertions.then { |total| total.positive? ? "+#{total}" : total.to_s } end |
#weekday ⇒ Object
94 |
# File 'lib/milestoner/views/parts/commit.rb', line 94 def weekday = .strftime "%A" |
#zone ⇒ Object
100 |
# File 'lib/milestoner/views/parts/commit.rb', line 100 def zone = .strftime "%Z" |