friends 0.42 → 0.43

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
- SHA256:
3
- metadata.gz: f22962545b83fa5532f7533ff3695a860a2f0190a0b2b6ff9e4ce86437de3821
4
- data.tar.gz: 037cafd4b8f73d84bb1d7a609899079371621a1469a7705730902df3788f4291
2
+ SHA1:
3
+ metadata.gz: 779330dcc4a5fb8acc1ab8f7454045d9d69d0967
4
+ data.tar.gz: '04199e1544035835057259d1a4640609d4fa15d4'
5
5
  SHA512:
6
- metadata.gz: ad3125d9527c7eed75e44e1317488faeaa5f4a9a8725fde13b76cb785f9f049bf0915bc931e36ee60a7d157ec17ed87d0a846baa26c24e2659387cf1afad81f7
7
- data.tar.gz: a8d68d8dda6427becab02cd0456574f535ab9d2ecd6c73455124f61b607d2b08ada41ee7767cefbf1bcf43ee3f01a180f87cfc318bddf335cc421472dbb22bf6
6
+ metadata.gz: f32cb8224ae8eefbf19696f940109ade23f6092eb4c180907f30b4e0c4cb84ed047989235d5dcab54759be909bf25ac8e14527142dd1ae2a3b3f0da898c721ac
7
+ data.tar.gz: 760b017d4d42f127091227d592b4c3d044b5f2570e0156d0cd94789e7dce02cd128bb9c45628001537ead08374604667aa7738852106f2cd15e4dcd7549e1f8a
@@ -1,12 +1,19 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.0
4
- - 2.2.0
5
- - 2.3.0
6
- - 2.4.0
7
- - 2.5.0
3
+ - 2.1.0
4
+ - 2.2.0
5
+ - 2.3.0
6
+ - 2.4.0 # 2.5.0 is tested below
7
+ branches:
8
+ only:
9
+ - master
8
10
  script:
9
- - bundle exec rake test
10
- - bundle exec rubocop
11
+ - bundle exec rake test
12
+ matrix:
13
+ include:
14
+ - rvm: 2.5.0
15
+ script:
16
+ - bundle exec rake test
17
+ - gem install rubocop && rubocop
11
18
  notifications:
12
19
  email: false
@@ -14,6 +14,26 @@ making a small donation (🙏) to show you appreciate its continued development.
14
14
 
15
15
  👆 Donate with these buttons! 👆
16
16
 
17
+ ## [v0.43](https://github.com/JacobEvelyn/friends/tree/v0.43) (2018-11-25)
18
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.42...v0.43)
19
+
20
+ **Implemented enhancements:**
21
+
22
+ - Improve matches for friends with only first names [\#215](https://github.com/JacobEvelyn/friends/issues/215)
23
+ - Better match friends with middle names [\#213](https://github.com/JacobEvelyn/friends/issues/213)
24
+
25
+ **Closed issues:**
26
+
27
+ - When specifying a file that does not exist, prompt to create it instead of aborting [\#214](https://github.com/JacobEvelyn/friends/issues/214)
28
+ - Dependabot can't evaluate your Ruby dependency files [\#211](https://github.com/JacobEvelyn/friends/issues/211)
29
+ - Sqlite as a backing datastore [\#210](https://github.com/JacobEvelyn/friends/issues/210)
30
+ - Generate Searchable Static Site [\#209](https://github.com/JacobEvelyn/friends/issues/209)
31
+
32
+ **Merged pull requests:**
33
+
34
+ - Improve friend name matching for various edge cases [\#216](https://github.com/JacobEvelyn/friends/pull/216) ([JacobEvelyn](https://github.com/JacobEvelyn))
35
+ - Fix contributing guide link [\#212](https://github.com/JacobEvelyn/friends/pull/212) ([Nitemice](https://github.com/Nitemice))
36
+
17
37
  ## [v0.42](https://github.com/JacobEvelyn/friends/tree/v0.42) (2018-09-22)
18
38
  [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.41...v0.42)
19
39
 
@@ -67,7 +87,7 @@ making a small donation (🙏) to show you appreciate its continued development.
67
87
  - Give name-matching priority to full-text matches [\#203](https://github.com/JacobEvelyn/friends/pull/203) ([JacobEvelyn](https://github.com/JacobEvelyn))
68
88
  - Prevent the addition of blank events, names, and locations [\#200](https://github.com/JacobEvelyn/friends/pull/200) ([JacobEvelyn](https://github.com/JacobEvelyn))
69
89
  - Fix Rubocop errors [\#196](https://github.com/JacobEvelyn/friends/pull/196) ([JacobEvelyn](https://github.com/JacobEvelyn))
70
- - Update rake requirement to ~\> 12.3 [\#194](https://github.com/JacobEvelyn/friends/pull/194) ([dependabot[bot]](https://github.com/marketplace/dependabot))
90
+ - Update rake requirement to ~\> 12.3 [\#194](https://github.com/JacobEvelyn/friends/pull/194) ([dependabot[bot]](https://github.com/apps/dependabot))
71
91
 
72
92
  ## [v0.37](https://github.com/JacobEvelyn/friends/tree/v0.37) (2018-02-24)
73
93
  [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.36...v0.37)
@@ -608,4 +628,4 @@ making a small donation (🙏) to show you appreciate its continued development.
608
628
  ## [v0.0.1](https://github.com/JacobEvelyn/friends/tree/v0.0.1) (2014-12-11)
609
629
 
610
630
 
611
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
631
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/README.md CHANGED
@@ -932,7 +932,7 @@ If you have an idea,
932
932
  [make a GitHub issue](https://github.com/JacobEvelyn/friends/issues/new)!
933
933
  Suggestions are very very welcome, and usually are implemented very
934
934
  quickly. And if you'd like to do the implementing yourself, see the
935
- [contributing guide](https://github.com/JacobEvelyn/friends/blob/master/CONTRIBUTING.md).
935
+ [contributing guide](https://github.com/JacobEvelyn/friends/blob/master/.github/CONTRIBUTING.md).
936
936
 
937
937
  A big big thanks to all of this project's lovely
938
938
  [contributors](https://github.com/JacobEvelyn/friends/graphs/contributors):
@@ -38,6 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "minitest", "~> 5.5"
39
39
  spec.add_development_dependency "minitest-proveit", "~> 1.0"
40
40
  spec.add_development_dependency "rake", "~> 12.3"
41
- spec.add_development_dependency "rubocop", "~> 0.49"
42
41
  spec.add_development_dependency "simplecov", "~> 0.14"
43
42
  end
@@ -131,7 +131,7 @@ module Friends
131
131
  # We check nicknames before first names because nicknames may contain
132
132
  # first names, as in "Amazing Grace" being a nickname for Grace Hopper.
133
133
  [
134
- chunks,
134
+ chunks, # Match a full name with the highest priority.
135
135
  *@nicknames.map { |n| [n] },
136
136
 
137
137
  # Match a first name followed by a last name initial, period, and then
@@ -139,16 +139,16 @@ module Friends
139
139
  # the "Jake E." part of something like "Jake E. and I went skiing." This
140
140
  # allows us to correctly count the period as part of the name when it's
141
141
  # in the middle of a sentence.
142
- [chunks.first, "#{chunks.last[0]}\.(?=#{splitter}(?-i)[a-z])"],
142
+ ([chunks.first, "#{chunks.last[0]}\.(?=#{splitter}(?-i)[a-z])"] if chunks.size > 1),
143
143
 
144
144
  # If the above doesn't match, we check for just the first name and then
145
145
  # a last name initial. This matches the "Jake E" part of something like
146
146
  # "I went skiing with Jake E." This allows us to correctly exclude the
147
147
  # period from the name when it's at the end of a sentence.
148
- [chunks.first, chunks.last[0]],
148
+ ([chunks.first, chunks.last[0]] if chunks.size > 1),
149
149
 
150
- [chunks.first]
151
- ].map do |words|
150
+ *(1..chunks.size - 1).map { |i| chunks.take(i) }.reverse
151
+ ].compact.map do |words|
152
152
  Friends::RegexBuilder.regex(words.join(splitter))
153
153
  end
154
154
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Friends
4
- TAG_REGEX = /(?<!\p{Alnum})@\p{Alnum}(?:[:-]?\p{Alnum})*/
4
+ TAG_REGEX = /(?<!\p{Alnum})@\p{Alnum}(?:[:-]?\p{Alnum})*/.freeze
5
5
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Friends
4
- VERSION = "0.42".freeze
4
+ VERSION = "0.43".freeze
5
5
  end
@@ -258,6 +258,59 @@ FILE
258
258
  end
259
259
  end
260
260
 
261
+ describe "when a friend's first and middle name matches two other friends' first names" do
262
+ let(:description) { "Met Martin Luther." }
263
+
264
+ # Make sure "Martin Jones" and "Luther Jones" are closer friends than
265
+ # "Martin Luther King" so we know our test result isn't due to chance.
266
+ let(:content) do
267
+ <<-FILE
268
+ ### Activities:
269
+ - 2018-01-01: Singing with **Martin Jones**.
270
+ - 2018-01-01: Dancing with **Luther Jones**.
271
+
272
+ ### Notes:
273
+
274
+ ### Friends:
275
+ - Luther Jones
276
+ - Martin Jones
277
+ - Martin Luther King
278
+
279
+ ### Locations:
280
+ FILE
281
+ end
282
+
283
+ it { line_added "- #{date}: Met **Martin Luther King**." }
284
+ if test_stdout
285
+ it { stdout_only "#{capitalized_event} added: \"#{date}: Met Martin Luther King.\"" }
286
+ end
287
+ end
288
+
289
+ describe "when a friend has a first name only" do
290
+ # We want to explicitly check that the first-name last-initial behavior
291
+ # doesn't kick in here and match "Alejandra A" when the friend has no
292
+ # last name.
293
+ let(:description) { "Met Alejandra a few times." }
294
+
295
+ let(:content) do
296
+ <<-FILE
297
+ ### Activities:
298
+
299
+ ### Notes:
300
+
301
+ ### Friends:
302
+ - Alejandra
303
+
304
+ ### Locations:
305
+ FILE
306
+ end
307
+
308
+ it { line_added "- #{date}: Met **Alejandra** a few times." }
309
+ if test_stdout
310
+ it { stdout_only "#{capitalized_event} added: \"#{date}: Met Alejandra a few times.\"" }
311
+ end
312
+ end
313
+
261
314
  describe "when description has a friend's name with leading asterisks" do
262
315
  let(:description) { "Lunch with **Grace Hopper." }
263
316
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friends
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.42'
4
+ version: '0.43'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Evelyn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-22 00:00:00.000000000 Z
11
+ date: 2018-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '12.3'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.49'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.49'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: simplecov
169
155
  requirement: !ruby/object:Gem::Requirement
@@ -279,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
265
  version: '0'
280
266
  requirements: []
281
267
  rubyforge_project:
282
- rubygems_version: 2.7.3
268
+ rubygems_version: 2.6.8
283
269
  signing_key:
284
270
  specification_version: 4
285
271
  summary: Spend time with the people you care about.