reading 1.3.0 → 1.3.1

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: 5a081fbab3e05154fcd493884223c2eedcc0c60dd4be99d56f2373ef5689d337
4
- data.tar.gz: e7f4dfef59413ce4ade78d2452193bec233482700cecee699655a1ea72a5e499
3
+ metadata.gz: ec7c69957c18686ee0fa910f82e4ffbaffae36ee1e489562f0995cb008d55f7b
4
+ data.tar.gz: 05f7be9abf21880fb2a935857c0b6d5c374eced42ca95872a1a4450c3fb494ce
5
5
  SHA512:
6
- metadata.gz: 45e98e729dd0422b5e0e2abe014f8bab41190b5bd4d3df6969097a60c5738dace9c190bea8e82476c8de880a5d1c34772caf0d9957a975ce417c663190128b11
7
- data.tar.gz: f5a9e4645ccc2b6b9a076197c1df92efb6f2219f51de1c7b8d746d08c98b4457aef143702cfabdf0b86eac4ac80bab56324814badae9bf739e56bcf4d49cd64f
6
+ metadata.gz: dfbcdf57e5e725da9f634eafebf9eca95f570f22caf14ca607fa937d381aa0cc959b540f234fb47e7485f71074b2ac3f95bf7861b51ec0e539a36fe042fe4c2e
7
+ data.tar.gz: a5961b47989e97894b15787dad5e6556f4cf5a220c725ac390ac37d4a50f4a7faf6dea28ec0167870880014e3accd7cf552c0dc80ba651a0fc19508f48d1c240
@@ -72,7 +72,7 @@ module Reading
72
72
  return items unless minimum_previous_rating
73
73
 
74
74
  items.select! do |item|
75
- max_previous_rating = item.notes.map { it.rating_change.first }.compact.max
75
+ max_previous_rating = item.notes.reject(&:private?).map { it.rating_change.first }.compact.max
76
76
  max_previous_rating && max_previous_rating >= minimum_previous_rating &&
77
77
  item.rating && item.rating < minimum_previous_rating
78
78
  end
@@ -17,6 +17,7 @@ module Reading
17
17
  content: note[:content],
18
18
  }
19
19
  }.then { distribute_dates_to_rating_changes!(it, parsed_row) }
20
+ .then { capitalize_content_of_rating_changes!(it, parsed_row) }
20
21
  end
21
22
 
22
23
  private
@@ -48,6 +49,15 @@ module Reading
48
49
  note[:date] = last_experience[:spans].last[:dates]&.end || last_experience[:spans].first[:dates]&.begin
49
50
  end
50
51
  end
52
+
53
+ def capitalize_content_of_rating_changes!(transformed_notes, parsed_row)
54
+ return unless transformed_notes
55
+
56
+ transformed_notes.each do |note|
57
+ next if note[:rating_change].empty? || note[:content].nil?
58
+ note[:content].capitalize!
59
+ end
60
+ end
51
61
  end
52
62
  end
53
63
  end
@@ -5,19 +5,31 @@ module Reading
5
5
  # See https://github.com/fpsvogel/reading/blob/main/doc/csv-format.md#notes-column
6
6
  # and https://github.com/fpsvogel/reading/blob/main/doc/csv-format.md#notes-column-special-notes
7
7
  class Notes < Column
8
+ RATING_CHANGED_WORDS = %w[
9
+ changed
10
+ updated
11
+ revised
12
+ downgraded
13
+ demoted
14
+ lowered
15
+ upgraded
16
+ promoted
17
+ raised
18
+ ]
19
+
8
20
  def self.segment_separator
9
21
  /\s*--\s*/
10
22
  end
11
23
 
12
24
  def self.regexes(segment_index)
13
25
  [%r{\A
14
- (?:(?<blurb>💬)|(?<private>🔒))?
26
+ (?:(?<blurb>💬)|(?<private>🔒))?\s*
15
27
  (?<date>\d{4}/\d\d?/\d\d?)?:?\s*
16
28
  (?:
17
29
  (?:
18
- (?:downgraded|upgraded|updated|changed)?\s*rating
30
+ (?:#{RATING_CHANGED_WORDS.join("|")})?\s*rating
19
31
  |
20
- rating\s*(?:downgraded|upgraded|updated|changed)?
32
+ rating\s*(?:#{RATING_CHANGED_WORDS.join("|")})?
21
33
  )?
22
34
  (?:\s+from\s+)?
23
35
  (?:
@@ -113,7 +113,7 @@ module Reading
113
113
  positive_operator = operator == :"!=" ? :== : operator
114
114
 
115
115
  matches = items.select { |item|
116
- actual_previous_ratings = item.notes.map { it.rating_change.first }.compact
116
+ actual_previous_ratings = item.notes.reject(&:private?).map { it.rating_change.first }.compact
117
117
 
118
118
  previous_ratings.any? { |previous_rating|
119
119
  if !actual_previous_ratings.empty? || %i[== !=].include?(operator)
@@ -1,3 +1,3 @@
1
1
  module Reading
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reading
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Vogel