friends 0.49 → 0.54

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: 723092682f9f7d7c5cbd9079a5aaa4e2e413a4ea9ea4a60ef871abf9d8a8b391
4
- data.tar.gz: e7f570b41f8c3e74dd19b4e540a804f4a585541a59efa29125e1f3c3000de213
3
+ metadata.gz: 555bc2e9643af62a0c4afb4d070d59de4ef54060d553e17d9eaa563bae82f1b5
4
+ data.tar.gz: a4f705f276a41c147aab67333c1ffec0ccc7bbba1ab454b9a014b7affa66f017
5
5
  SHA512:
6
- metadata.gz: 60573538a3ac488669c1f2eddff260823aafdd488f2972cd29f9081c06e37aa98d3afbbdb45c650fdb369e392e9cfb98e7a3b29a4ed5dbc09eb2cfeed7aa37d4
7
- data.tar.gz: 4f8e7159b3c99406d74c8cc4ba48cbfc9fd82114db29ab93c9bc855d9016bdd6c9bb570cf776083660b573660f110e6991600a17225f9c5f0fcd3af118f48d0a
6
+ metadata.gz: 3d8ca490b127f8a60e97e3dacd4cbc893ee33ad8959d8e3bf2c53289154a58e76714958dc29e297e74ff024ac86f3bbfb1e168e5eccc9bd37f178c6c41d903e7
7
+ data.tar.gz: 14159aa7682fd24ad0cab80d558b91a234eb6d5d52904828c45f6de595b281364da52080288c782b50488cf5ec40a30d36fc2c8e64a251c33924ac8d299fc0df
@@ -55,7 +55,7 @@ promise I don't bite. 😊
55
55
 
56
56
  ## Code of Conduct
57
57
 
58
- Note that this project follows a [Code of Conduct](https://github.com/JacobEvelyn/friends/blob/master/CODE_OF_CONDUCT.md).
58
+ Note that this project follows a [Code of Conduct](https://github.com/JacobEvelyn/friends/blob/main/CODE_OF_CONDUCT.md).
59
59
  If you're a polite, reasonable person you won't have any issues!
60
60
 
61
61
  ## Financial contributions
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.2
2
+ TargetRubyVersion: 2.3
3
3
 
4
4
  Gemspec/RequiredRubyVersion:
5
5
  Enabled: false
@@ -10,9 +10,18 @@ Layout/ClosingHeredocIndentation:
10
10
  Layout/DotPosition:
11
11
  EnforcedStyle: trailing
12
12
 
13
- Layout/IndentHeredoc:
13
+ Layout/HeredocIndentation:
14
14
  Enabled: false
15
15
 
16
+ Layout/LineLength:
17
+ Max: 100
18
+
19
+ Lint/RaiseException:
20
+ Enabled: true
21
+
22
+ Lint/StructNewOverride:
23
+ Enabled: true
24
+
16
25
  Metrics/AbcSize:
17
26
  Enabled: false
18
27
 
@@ -28,9 +37,6 @@ Metrics/ClassLength:
28
37
  Metrics/CyclomaticComplexity:
29
38
  Enabled: false
30
39
 
31
- Metrics/LineLength:
32
- Max: 100
33
-
34
40
  Metrics/MethodLength:
35
41
  Enabled: false
36
42
 
@@ -46,6 +52,15 @@ Naming/AccessorMethodName:
46
52
  Style/Documentation:
47
53
  Enabled: false
48
54
 
55
+ Style/HashEachMethods:
56
+ Enabled: true
57
+
58
+ Style/HashTransformKeys:
59
+ Enabled: true
60
+
61
+ Style/HashTransformValues:
62
+ Enabled: true
63
+
49
64
  Style/MultilineBlockChain:
50
65
  Enabled: false
51
66
 
@@ -1,24 +1,24 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
- - 2.1
4
- - 2.2
5
4
  - 2.3
6
5
  - 2.4
7
- - 2.5 # 2.6 is tested below
6
+ - 2.5
7
+ - 2.6 # 2.7 is tested below
8
8
  gemfile: Gemfile.old # The latest Ruby version uses Gemfile below
9
9
  script:
10
10
  - bundle exec rake test
11
11
  matrix:
12
12
  include:
13
- - rvm: 2.6
13
+ - rvm: 2.7
14
14
  gemfile: Gemfile
15
15
  script:
16
16
  - bundle exec rake test
17
- - gem install --no-document rubocop -v 0.67 && rubocop
17
+ - bundle exec rubocop
18
18
  env:
19
19
  - CODE_COVERAGE=true
20
20
  branches:
21
21
  only:
22
- - master # Always run on the master branch
22
+ - main # Always run on the main branch
23
23
  notifications:
24
24
  email: false
@@ -4,6 +4,78 @@
4
4
  making a small donation (🙏) with the **Sponsor** button at the top of this page to
5
5
  show you appreciate its continued development.
6
6
 
7
+ ## [v0.54](https://github.com/JacobEvelyn/friends/tree/v0.54) (2020-10-29)
8
+
9
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.53...v0.54)
10
+
11
+ **Implemented enhancements:**
12
+
13
+ - Add location nicknames [\#242](https://github.com/JacobEvelyn/friends/issues/242)
14
+
15
+ **Merged pull requests:**
16
+
17
+ - Add location alias [\#269](https://github.com/JacobEvelyn/friends/pull/269) ([RenCloud](https://github.com/RenCloud))
18
+ - Update codecov requirement from ~\> 0.1.14 to ~\> 0.2.0 [\#267](https://github.com/JacobEvelyn/friends/pull/267) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
19
+
20
+ ## [v0.53](https://github.com/JacobEvelyn/friends/tree/v0.53) (2020-07-06)
21
+
22
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.52...v0.53)
23
+
24
+ **Fixed bugs:**
25
+
26
+ - undefined method error occurred when “add tag" or “add nickname” executed with no arguments [\#265](https://github.com/JacobEvelyn/friends/issues/265)
27
+
28
+ **Merged pull requests:**
29
+
30
+ - Fix for the case of add tag or add nickname args are nill [\#266](https://github.com/JacobEvelyn/friends/pull/266) ([m-t-a-n-a-k-a](https://github.com/m-t-a-n-a-k-a))
31
+
32
+ ## [v0.52](https://github.com/JacobEvelyn/friends/tree/v0.52) (2020-06-03)
33
+
34
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.51...v0.52)
35
+
36
+ **Fixed bugs:**
37
+
38
+ - undefined method error occurred when "remove tag" is executed with no arguments [\#262](https://github.com/JacobEvelyn/friends/issues/262)
39
+
40
+ **Closed issues:**
41
+
42
+ - Try using bundler caching in Travis [\#260](https://github.com/JacobEvelyn/friends/issues/260)
43
+
44
+ **Merged pull requests:**
45
+
46
+ - Use correct RuboCop version in Travis [\#264](https://github.com/JacobEvelyn/friends/pull/264) ([JacobEvelyn](https://github.com/JacobEvelyn))
47
+ - Fix convert\_to\_tag for the case of str is nil [\#263](https://github.com/JacobEvelyn/friends/pull/263) ([m-t-a-n-a-k-a](https://github.com/m-t-a-n-a-k-a))
48
+ - Cache bundler directory in Travis [\#261](https://github.com/JacobEvelyn/friends/pull/261) ([JacobEvelyn](https://github.com/JacobEvelyn))
49
+ - Update rubocop requirement from 0.67 to 0.81.0 [\#259](https://github.com/JacobEvelyn/friends/pull/259) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
50
+
51
+ ## [v0.51](https://github.com/JacobEvelyn/friends/tree/v0.51) (2020-04-05)
52
+
53
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.50...v0.51)
54
+
55
+ **Implemented enhancements:**
56
+
57
+ - Drop Semverse dependency [\#256](https://github.com/JacobEvelyn/friends/issues/256)
58
+
59
+ **Closed issues:**
60
+
61
+ - Drop support for Ruby \<2.3 [\#257](https://github.com/JacobEvelyn/friends/issues/257)
62
+
63
+ **Merged pull requests:**
64
+
65
+ - Remove Semverse dependency, and require Ruby 2.3+ [\#258](https://github.com/JacobEvelyn/friends/pull/258) ([JacobEvelyn](https://github.com/JacobEvelyn))
66
+
67
+ ## [v0.50](https://github.com/JacobEvelyn/friends/tree/v0.50) (2020-04-03)
68
+
69
+ [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.49...v0.50)
70
+
71
+ **Implemented enhancements:**
72
+
73
+ - Add support for Ruby 2.7 [\#254](https://github.com/JacobEvelyn/friends/issues/254)
74
+
75
+ **Merged pull requests:**
76
+
77
+ - Add Travis tests for Ruby 2.7 [\#255](https://github.com/JacobEvelyn/friends/pull/255) ([JacobEvelyn](https://github.com/JacobEvelyn))
78
+
7
79
  ## [v0.49](https://github.com/JacobEvelyn/friends/tree/v0.49) (2020-04-02)
8
80
 
9
81
  [Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.48...v0.49)
@@ -24,7 +96,7 @@ show you appreciate its continued development.
24
96
 
25
97
  **Implemented enhancements:**
26
98
 
27
- - Change trigger for implicit location from `moved to \_LOCATION\_` to `to \_LOCATION\_` [\#245](https://github.com/JacobEvelyn/friends/pull/245) ([shen-sat](https://github.com/shen-sat))
99
+ - Change trigger for implicit location from `moved to _LOCATION_` to `to _LOCATION_` [\#245](https://github.com/JacobEvelyn/friends/pull/245) ([shen-sat](https://github.com/shen-sat))
28
100
 
29
101
  **Closed issues:**
30
102
 
@@ -45,7 +117,7 @@ show you appreciate its continued development.
45
117
 
46
118
  **Fixed bugs:**
47
119
 
48
- - Tests are failing in `master` [\#238](https://github.com/JacobEvelyn/friends/issues/238)
120
+ - Tests are failing in `main` [\#238](https://github.com/JacobEvelyn/friends/issues/238)
49
121
 
50
122
  **Merged pull requests:**
51
123
 
@@ -309,7 +381,7 @@ show you appreciate its continued development.
309
381
 
310
382
  **Implemented enhancements:**
311
383
 
312
- - Add `--since \<date\>` and `--until \<date\>` flags, and remove extraneous months from `graph` [\#153](https://github.com/JacobEvelyn/friends/issues/153)
384
+ - Add `--since <date>` and `--until <date>` flags, and remove extraneous months from `graph` [\#153](https://github.com/JacobEvelyn/friends/issues/153)
313
385
  - Add integration tests for bin/friends? [\#127](https://github.com/JacobEvelyn/friends/issues/127)
314
386
 
315
387
  **Merged pull requests:**
@@ -598,7 +670,7 @@ show you appreciate its continued development.
598
670
  **Merged pull requests:**
599
671
 
600
672
  - Highlight multiple occurrences [\#70](https://github.com/JacobEvelyn/friends/pull/70) ([GuruKhalsa](https://github.com/GuruKhalsa))
601
- - Fix Travis badge \(master only\) [\#67](https://github.com/JacobEvelyn/friends/pull/67) ([JacobEvelyn](https://github.com/JacobEvelyn))
673
+ - Fix Travis badge \(main only\) [\#67](https://github.com/JacobEvelyn/friends/pull/67) ([JacobEvelyn](https://github.com/JacobEvelyn))
602
674
  - Move activity prompt to bin/friends [\#64](https://github.com/JacobEvelyn/friends/pull/64) ([JacobEvelyn](https://github.com/JacobEvelyn))
603
675
  - Adds the --debug flag for printing backtraces on error [\#63](https://github.com/JacobEvelyn/friends/pull/63) ([JacobEvelyn](https://github.com/JacobEvelyn))
604
676
  - Move file writes to end of command actions [\#61](https://github.com/JacobEvelyn/friends/pull/61) ([JacobEvelyn](https://github.com/JacobEvelyn))
data/Gemfile CHANGED
@@ -5,10 +5,10 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  group :development, :test do
8
- gem "rubocop", "0.67"
8
+ gem "rubocop", "0.81.0"
9
9
  end
10
10
 
11
11
  group :test do
12
- gem "codecov", "~> 0.1.14"
12
+ gem "codecov", "~> 0.2.0"
13
13
  gem "simplecov"
14
14
  end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/friends.svg)](https://badge.fury.io/rb/friends)
2
- [![Code Coverage](https://codecov.io/gh/JacobEvelyn/friends/branch/master/graph/badge.svg)](https://codecov.io/gh/JacobEvelyn/friends)
3
- [![Build Status](https://travis-ci.com/JacobEvelyn/friends.svg?branch=master)](https://travis-ci.com/JacobEvelyn/friends)
2
+ [![Code Coverage](https://codecov.io/gh/JacobEvelyn/friends/branch/main/graph/badge.svg)](https://codecov.io/gh/JacobEvelyn/friends)
3
+ [![Build Status](https://travis-ci.com/JacobEvelyn/friends.svg?branch=main)](https://travis-ci.com/JacobEvelyn/friends)
4
4
  [![Readme Score](http://readme-score-api.herokuapp.com/score.svg?url=JacobEvelyn/friends&bust=1)](http://clayallsopp.github.io/readme-score?url=JacobEvelyn/friends)
5
5
  [![Inline docs](http://inch-ci.org/github/JacobEvelyn/friends.png)](http://inch-ci.org/github/JacobEvelyn/friends)
6
6
  [![Gem](https://img.shields.io/gem/dt/friends.svg)](https://rubygems.org/gems/friends)
@@ -37,6 +37,7 @@ lots of help), and give feedback! This project is
37
37
  - [`add tag`](#add-tag)
38
38
  - [`add location`](#add-location)
39
39
  - [`add nickname`](#add-nickname)
40
+ - [`add alias`](#add-alias)
40
41
  - [Adding a default location](#adding-a-default-location)
41
42
  - [`clean`](#clean)
42
43
  - [`graph`](#graph)
@@ -54,6 +55,7 @@ lots of help), and give feedback! This project is
54
55
  - `remove`
55
56
  - [`remove tag`](#remove-tag)
56
57
  - [`remove nickname`](#remove-nickname)
58
+ - [`remove alias`](#remove-alias)
57
59
  - `rename`
58
60
  - [`rename friend`](#rename-friend)
59
61
  - [`rename location`](#rename-location)
@@ -181,7 +183,7 @@ The `friends.md` Markdown file that stores all of your data contains:
181
183
  ```
182
184
 
183
185
  See the example
184
- [`friends.md`](https://github.com/JacobEvelyn/friends/blob/master/friends.md)
186
+ [`friends.md`](https://github.com/JacobEvelyn/friends/blob/main/friends.md)
185
187
  file for more information.
186
188
 
187
189
  ### Global flags
@@ -291,11 +293,13 @@ $ friends add activity Got lunch with Earnest H and Earnest S. in the park. Man,
291
293
  Activity added: "2017-05-01: Got lunch with Earnest Hemingway and Earnest Shackleton in the park. Man, I like Earnest Hemingway but really love Earnest Shackleton."
292
294
  ```
293
295
 
294
- And locations will be matched as well:
296
+ And locations or their aliases will be matched as well:
295
297
 
296
298
  ```bash
297
299
  $ friends add activity Went swimming near atlantis with George.
298
300
  Activity added: "2017-01-06: Went swimming near Atlantis with George Washington Carver."
301
+ $ friends add activity Had lunch in nyc with George.
302
+ Activity added: "2017-01-06: Had lunch in New York City with George Washington Carver."
299
303
  ```
300
304
 
301
305
  Tags will be colored if they're provided (though this README can't display
@@ -411,6 +415,15 @@ $ friends add nickname "Grace Hopper" "Amazing Grace"
411
415
  Nickname added: "Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace)"
412
416
  ```
413
417
 
418
+ #### `add alias`
419
+
420
+ ```bash
421
+ $ friends add alias "New York City" "NYC"
422
+ Alias added: "New York City (a.k.a. NYC)
423
+ $ friends add alias "New York City" "Big Apple"
424
+ Alias added: "New York City (a.k.a. NYC a.k.a. Big Apple)"
425
+ ```
426
+
414
427
  #### Setting a default location
415
428
 
416
429
  When an activity includes the phrase to \_LOCATION\_ (e.g., Took a plane to \_Paris\_), all future activities that have no explicit location will be associated with that location:
@@ -876,6 +889,15 @@ $ friends remove nickname "Grace Hopper" "The Admiral"
876
889
  Nickname removed: "Grace Hopper (a.k.a. Amazing Grace)"
877
890
  ```
878
891
 
892
+ #### `remove alias`
893
+
894
+ Removes a specific alias from a location:
895
+
896
+ ```bash
897
+ $ friends remove alias "New York City" "Big Apple"
898
+ Alias removed: "New York City (a.k.a. NYC)"
899
+ ```
900
+
879
901
  #### `rename friend`
880
902
 
881
903
  ```bash
@@ -956,7 +978,7 @@ If you have an idea,
956
978
  [make a GitHub issue](https://github.com/JacobEvelyn/friends/issues/new)!
957
979
  Suggestions are very very welcome, and usually are implemented very
958
980
  quickly. And if you'd like to do the implementing yourself, see the
959
- [contributing guide](https://github.com/JacobEvelyn/friends/blob/master/.github/CONTRIBUTING.md).
981
+ [contributing guide](https://github.com/JacobEvelyn/friends/blob/main/.github/CONTRIBUTING.md).
960
982
 
961
983
  A big big thanks to all of this project's lovely
962
984
  [contributors](https://github.com/JacobEvelyn/friends/graphs/contributors):
@@ -988,10 +1010,10 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
988
1010
 
989
1011
  ## Code of Conduct
990
1012
 
991
- Note that this project follows a [Code of Conduct](https://github.com/JacobEvelyn/friends/blob/master/CODE_OF_CONDUCT.md).
1013
+ Note that this project follows a [Code of Conduct](https://github.com/JacobEvelyn/friends/blob/main/CODE_OF_CONDUCT.md).
992
1014
  If you're a polite, reasonable person you won't have any issues!
993
1015
 
994
1016
  ## License
995
1017
 
996
1018
  Friends is released under the
997
- [MIT License](https://github.com/JacobEvelyn/friends/blob/master/LICENSE.txt).
1019
+ [MIT License](https://github.com/JacobEvelyn/friends/blob/main/LICENSE.txt).
@@ -2,7 +2,7 @@
2
2
 
3
3
  These are steps for the maintainer to take to release a new version of this gem.
4
4
 
5
- 1. On the `master` branch, update the `VERSION` constant in
5
+ 1. On the `main` branch, update the `VERSION` constant in
6
6
  `lib/friends/version.rb`.
7
7
  2. Commit the change (`git add -A && git commit -m 'Bump to vX.X'`).
8
8
  3. Add a tag (`git tag -am "vX.X" vX.X`).
@@ -12,7 +12,6 @@ end
12
12
  require "gli"
13
13
  require "paint"
14
14
  require "readline"
15
- require "semverse"
16
15
 
17
16
  require "friends/introvert"
18
17
  require "friends/version"
@@ -35,7 +34,7 @@ class Tag
35
34
  # conversions for arguments.
36
35
  # See: https://github.com/davetron5000/gli/issues/241
37
36
  def self.convert_to_tag(str)
38
- str = str.strip
37
+ str = str.to_s.strip
39
38
  !str.empty? && str[0] == "@" ? str : "@#{str}"
40
39
  end
41
40
  end
@@ -48,10 +47,7 @@ class Stripped; end
48
47
  accept(Stripped, &:strip)
49
48
 
50
49
  class InputDate; end
51
- accept(InputDate) do |value|
52
- time = Chronic.parse(value)
53
- time && time.to_date
54
- end
50
+ accept(InputDate) { |value| Chronic.parse(value)&.to_date }
55
51
 
56
52
  switch [:quiet],
57
53
  negatable: false,
@@ -102,7 +98,7 @@ post do
102
98
  rescue Errno::ENOENT
103
99
  # If the pager is not installed, just print the output.
104
100
  puts @introvert.output
105
- rescue Errno::EPIPE # rubocop:disable Lint/HandleExceptions
101
+ rescue Errno::EPIPE
106
102
  # Occurs when quitting the pager.
107
103
  end
108
104
  end
@@ -23,17 +23,15 @@ Gem::Specification.new do |spec|
23
23
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- # We need Ruby 2.1's default-less keyword arguments and default UTF-8
27
- # encoding.
28
- spec.required_ruby_version = ">= 2.1"
26
+ # We need Ruby 2.3's safe navigation operator.
27
+ spec.required_ruby_version = ">= 2.3"
29
28
 
30
29
  spec.add_dependency "chronic", "~> 0.10"
31
30
  spec.add_dependency "gli", "~> 2.14"
32
31
  spec.add_dependency "paint", "~> 2.0"
33
- spec.add_dependency "semverse", ">= 2", "< 4"
34
32
  spec.add_dependency "tty-pager", "~> 0.11"
35
33
 
36
34
  spec.add_development_dependency "minitest", "~> 5.5"
37
35
  spec.add_development_dependency "minitest-proveit", "~> 1.0"
38
- spec.add_development_dependency "rake", "~> 12.3"
36
+ spec.add_development_dependency "rake", "~> 13.0"
39
37
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- desc "Adds a friend (or nickname), activity, note, or location"
3
+ desc "Adds a friend (or nickname), activity, note, or location (or alias)"
4
4
  command :add do |add|
5
5
  add.desc "Adds a friend"
6
6
  add.arg_name "NAME"
@@ -35,7 +35,16 @@ command :add do |add|
35
35
  add.arg_name "NAME NICKNAME"
36
36
  add.command :nickname do |add_nickname|
37
37
  add_nickname.action do |_, _, args|
38
- @introvert.add_nickname(name: args.first.strip, nickname: args[1].strip)
38
+ @introvert.add_nickname(name: args.first.to_s.strip, nickname: args[1].to_s.strip)
39
+ @dirty = true # Mark the file for cleaning.
40
+ end
41
+ end
42
+
43
+ add.desc "Adds an alias to a location"
44
+ add.arg_name "LOCATION ALIAS"
45
+ add.command :alias do |add_alias|
46
+ add_alias.action do |_, _, args|
47
+ @introvert.add_alias(name: args.first.to_s.strip, nickname: args[1].to_s.strip)
39
48
  @dirty = true # Mark the file for cleaning.
40
49
  end
41
50
  end
@@ -46,7 +55,7 @@ command :add do |add|
46
55
  add_tag.action do |_, _, args|
47
56
  @introvert.add_tag(
48
57
  name: args[0..-2].join(" "),
49
- tag: Tag.convert_to_tag(args.last.strip)
58
+ tag: Tag.convert_to_tag(args.last.to_s.strip)
50
59
  )
51
60
  @dirty = true # Mark the file for cleaning.
52
61
  end
@@ -73,8 +73,11 @@ command :list do |list|
73
73
 
74
74
  list.desc "List all locations"
75
75
  list.command :locations do |list_locations|
76
- list_locations.action do
77
- @introvert.list_locations
76
+ list_locations.switch [:verbose],
77
+ negatable: false,
78
+ desc: "Output location aliases"
79
+ list_locations.action do |_, options|
80
+ @introvert.list_locations(verbose: options[:verbose])
78
81
  end
79
82
  end
80
83