fewald-worklog 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '018cec3ea12e143d9b2011a4bf99d57f614bf6e531538c3c217419e614b62bb3'
4
- data.tar.gz: e06c77c9729d45729c6a9529d7503bcf766ba2b2d20811c5cd57abd372d03fdd
3
+ metadata.gz: 3d7b526988aa437d677d22f9e55c93584b84f55089b7bbeb92164761d99e40ea
4
+ data.tar.gz: c47b08cba0340519c0b87075347d85a94d592d9d8fcb65c849e3ad94196b08a2
5
5
  SHA512:
6
- metadata.gz: 7ece5674d30de4b66b306c9bd29f03c94102153fc82c2fda5c066660ddf8f30b484816a5c7a887f759bb7e5c1656ed38175110b8fb3e81b5240606f81ed1ab1a
7
- data.tar.gz: 8711b1763ae17d7a7679d1ef63feb1243794eb923cbaefefa350e1549422afb185bb5dfe87c81dbd751725fad3f8c64c896b44d80f54816661b18fdd8b2a1520
6
+ metadata.gz: 208a814fa3b9c3b134c51de73ca9cdecb7b758a652b993cd1dd5fc3c83a7ed2e01ef33b5c371285e5632610c4fbc94cf4a2a9cc74c686b0f6722b5594fc2a39e
7
+ data.tar.gz: 9c5fd33b185a96da7800428c1b018e5e9919c25d93d28c03125d41a3090918294ee1c4f3a360e799d4dabf962c91b58a9179580fe6b6ef15d1de07d8f8251d13
data/.version CHANGED
@@ -1 +1 @@
1
- 0.1.19
1
+ 0.1.21
data/worklog/cli.rb CHANGED
@@ -98,9 +98,9 @@ class WorklogCLI < Thor
98
98
  end
99
99
 
100
100
  desc 'people', 'Show all people mentioned in the work log'
101
- def people
101
+ def people(person = nil)
102
102
  worklog = Worklog.new
103
- worklog.people(options)
103
+ worklog.people(person, options)
104
104
  end
105
105
 
106
106
  desc 'tags', 'Show all tags used in the work log'
data/worklog/person.rb CHANGED
@@ -13,6 +13,8 @@ class Person
13
13
  end
14
14
 
15
15
  def to_s
16
+ return "#{name} (~#{handle})" if @email.nil?
17
+
16
18
  "#{name} (~#{handle}) <#{email}>"
17
19
  end
18
20
 
data/worklog/printer.rb CHANGED
@@ -6,6 +6,8 @@ require 'rainbow'
6
6
  class Printer
7
7
  attr_reader :people
8
8
 
9
+ # Initializes the printer with a list of people.
10
+ # @param people [Array<Person>] An array of Person objects.
9
11
  def initialize(people = nil)
10
12
  @people = (people || []).to_h { |person| [person.handle, person] }
11
13
  end
data/worklog/worklog.rb CHANGED
@@ -85,25 +85,53 @@ class Worklog
85
85
  end
86
86
  end
87
87
 
88
- def people(_options = {})
89
- puts 'People mentioned in the work log:'
90
-
91
- mentions = {}
88
+ def people(person = nil, _options = {})
89
+ all_people = @storage.load_people!
90
+ people_map = all_people.to_h { |p| [p.handle, p] }
92
91
  all_logs = @storage.all_days
93
- all_people = @storage.load_people
94
- people_map = all_people.to_h { |person| [person.handle, person] }
95
92
 
96
- all_logs.map(&:people).each do |people|
97
- mentions.merge!(people) { |_key, oldval, newval| oldval + newval }
93
+ if person
94
+ unless people_map.key?(person)
95
+ WorkLogger.error Rainbow("No person found with handle #{person}.").red
96
+ return
97
+ end
98
+ person_detail(all_logs, all_people, people_map[person.strip])
99
+ else
100
+ puts 'People mentioned in the work log:'
101
+
102
+ mentions = {}
103
+
104
+ all_logs.map(&:people).each do |people|
105
+ mentions.merge!(people) { |_key, oldval, newval| oldval + newval }
106
+ end
107
+
108
+ mentions.each do |handle, v|
109
+ if people_map.key?(handle)
110
+ print "#{Rainbow(people_map[handle].name).gold} (#{handle})"
111
+ else
112
+ print handle
113
+ end
114
+ puts ": #{v} #{pluralize(v, 'occurrence')}"
115
+ end
116
+ end
117
+ end
118
+
119
+ def person_detail(all_logs, all_people, person)
120
+ printer = Printer.new(all_people)
121
+ puts "All interactions with #{Rainbow(person.name).gold}"
122
+
123
+ if person.notes
124
+ puts 'Notes:'
125
+ person.notes.each do |note|
126
+ puts "* #{note}"
127
+ end
98
128
  end
99
129
 
100
- mentions.each do |handle, v|
101
- if people_map.key?(handle)
102
- print "#{Rainbow(people_map[handle].name).gold} (#{handle})"
103
- else
104
- print handle
130
+ puts 'Interactions:'
131
+ all_logs.each do |daily_log|
132
+ daily_log.entries.each do |entry|
133
+ printer.print_entry(daily_log, entry, true) if entry.people.include?(person.handle)
105
134
  end
106
- puts ": #{v} #{pluralize(v, 'occurrence')}"
107
135
  end
108
136
  end
109
137
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fewald-worklog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.1.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Friedrich Ewald
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-24 00:00:00.000000000 Z
10
+ date: 2025-04-30 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: httparty