friends 0.49 → 0.54

Sign up to get free protection for your applications and to get access to all the features.
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