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.
@@ -7,6 +7,15 @@ clean_describe "add nickname" do
7
7
 
8
8
  let(:content) { CONTENT }
9
9
 
10
+ describe "when friend name and nickname are blank" do
11
+ let(:friend_name) { nil }
12
+ let(:nickname) { nil }
13
+
14
+ it "prints an error message" do
15
+ stderr_only 'Error: Expected "[Friend Name]" "[Nickname]"'
16
+ end
17
+ end
18
+
10
19
  describe "when friend name has no matches" do
11
20
  let(:friend_name) { "Garbage" }
12
21
  let(:nickname) { "Georgie" }
@@ -7,6 +7,15 @@ clean_describe "add tag" do
7
7
 
8
8
  let(:content) { CONTENT }
9
9
 
10
+ describe "when friend name and tag are blank" do
11
+ let(:friend_name) { nil }
12
+ let(:tag) { nil }
13
+
14
+ it "prints an error message" do
15
+ stderr_only 'Error: Expected "[Friend Name]" "[Tag]"'
16
+ end
17
+ end
18
+
10
19
  describe "when friend name has no matches" do
11
20
  let(:friend_name) { "Garbage" }
12
21
  let(:tag) { "school" }
@@ -134,6 +134,7 @@ Not cleaning file: "#{filename}" ("exit 1 #" did not exit successfully)
134
134
  - Atlantis
135
135
  - Martha's Vineyard
136
136
  - Mysterious Mountains
137
+ - New York City (a.k.a. NYC a.k.a. NY)
137
138
  - Paris
138
139
  EXPECTED_CONTENT
139
140
  end
@@ -31,7 +31,21 @@ clean_describe "list locations" do
31
31
  Paris
32
32
  Atlantis
33
33
  Martha's Vineyard
34
+ New York City
34
35
  OUTPUT
35
36
  end
37
+
38
+ describe "--verbose" do
39
+ subject { run_cmd("list locations --verbose") }
40
+
41
+ it "lists locations in file order with details" do
42
+ stdout_only <<-OUTPUT
43
+ Paris
44
+ Atlantis
45
+ Martha's Vineyard
46
+ New York City (a.k.a. NYC a.k.a. NY)
47
+ OUTPUT
48
+ end
49
+ end
36
50
  end
37
51
  end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "remove alias" do
6
+ subject { run_cmd("remove alias #{location_name} #{nickname}") }
7
+
8
+ let(:content) { CONTENT }
9
+
10
+ describe "when location and nickname are nil" do
11
+ let(:location_name) { nil }
12
+ let(:nickname) { nil }
13
+
14
+ it "prints an error message" do
15
+ stderr_only 'Error: Expected "[Location Name]" "[Alias]"'
16
+ end
17
+ end
18
+
19
+ describe "when location name has no matches" do
20
+ let(:location_name) { "Garbage" }
21
+ let(:nickname) { "'Big Apple Pie'" }
22
+
23
+ it "prints an error message" do
24
+ stderr_only 'Error: No location found for "Garbage"'
25
+ end
26
+ end
27
+
28
+ describe "when location name has one match" do
29
+ let(:location_name) { "'New York City'" }
30
+
31
+ describe "when alias is nil" do
32
+ let(:nickname) { nil }
33
+ it "prints an error message" do
34
+ stderr_only "Error: Alias cannot be blank"
35
+ end
36
+ end
37
+
38
+ describe "when alias is not present on location" do
39
+ let(:nickname) { "Gotham" }
40
+ it "prints an error message" do
41
+ stderr_only 'Error: Alias "Gotham" not found for "New York City"'
42
+ end
43
+ end
44
+
45
+ describe "when alias is present on location" do
46
+ let(:nickname) { "'NYC'" }
47
+
48
+ it "removes alias from location" do
49
+ line_changed(
50
+ "- New York City (a.k.a. NYC a.k.a. NY)",
51
+ "- New York City (a.k.a. NY)"
52
+ )
53
+ end
54
+
55
+ it "removes parenthetical from file when location has no more nicknames" do
56
+ run_cmd("remove alias #{location_name} 'NY'")
57
+ line_changed(
58
+ "- New York City (a.k.a. NYC)",
59
+ "- New York City"
60
+ )
61
+ end
62
+
63
+ it "prints an output message" do
64
+ stdout_only 'Alias removed: "New York City (a.k.a. NY)"'
65
+ end
66
+ end
67
+ end
68
+ end
@@ -7,6 +7,15 @@ clean_describe "remove tag" do
7
7
 
8
8
  let(:content) { CONTENT }
9
9
 
10
+ describe "when friend name and tag are blank" do
11
+ let(:friend_name) { nil }
12
+ let(:tag) { nil }
13
+
14
+ it "prints an error message" do
15
+ stderr_only 'Error: No friend found for ""'
16
+ end
17
+ end
18
+
10
19
  describe "when friend name has no matches" do
11
20
  let(:friend_name) { "Garbage" }
12
21
  let(:tag) { "science" }
@@ -42,7 +42,7 @@ Total time elapsed: 0 days
42
42
  stdout_only <<-OUTPUT
43
43
  Total activities: 5
44
44
  Total friends: 5
45
- Total locations: 3
45
+ Total locations: 4
46
46
  Total notes: 4
47
47
  Total tags: 10
48
48
  Total time elapsed: 1179 days
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # frozen_string_literal: true
4
+
3
5
  # This is an example "editor" used to test the `friends edit` command.
4
6
  # It inserts a new activity into the second line of the file, allowing
5
7
  # us to test that friends and locations added in an `edit` command are
@@ -24,7 +24,7 @@ require "securerandom"
24
24
 
25
25
  require "friends"
26
26
 
27
- CONTENT = <<-FILE.freeze
27
+ CONTENT = <<-FILE
28
28
  ### Activities:
29
29
  - 2018-02-06: @science:indoors:agronomy-with-hydroponics: **Norman Borlaug** and **George Washington Carver** scored a tour of _Atlantis_' hydroponics gardens through wetplants@example.org and they took me along.
30
30
  - 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
@@ -48,11 +48,12 @@ CONTENT = <<-FILE.freeze
48
48
  ### Locations:
49
49
  - Atlantis
50
50
  - Martha's Vineyard
51
+ - New York City (a.k.a. NYC a.k.a. NY)
51
52
  - Paris
52
53
  FILE
53
54
 
54
55
  # This is CONTENT but with activities, friends, and locations unsorted.
55
- SCRAMBLED_CONTENT = <<-FILE.freeze
56
+ SCRAMBLED_CONTENT = <<-FILE
56
57
  ### Activities:
57
58
  - 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
58
59
  - 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
@@ -77,6 +78,7 @@ SCRAMBLED_CONTENT = <<-FILE.freeze
77
78
  - Paris
78
79
  - Atlantis
79
80
  - Martha's Vineyard
81
+ - New York City (a.k.a. NYC a.k.a. NY)
80
82
  FILE
81
83
 
82
84
  # Define these methods so they can be referenced in the methods below. They'll be overridden in
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.49'
4
+ version: '0.54'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Evelyn
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-02 00:00:00.000000000 Z
11
+ date: 2020-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -52,26 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: semverse
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '2'
62
- - - "<"
63
- - !ruby/object:Gem::Version
64
- version: '4'
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: '2'
72
- - - "<"
73
- - !ruby/object:Gem::Version
74
- version: '4'
75
55
  - !ruby/object:Gem::Dependency
76
56
  name: tty-pager
77
57
  requirement: !ruby/object:Gem::Requirement
@@ -120,14 +100,14 @@ dependencies:
120
100
  requirements:
121
101
  - - "~>"
122
102
  - !ruby/object:Gem::Version
123
- version: '12.3'
103
+ version: '13.0'
124
104
  type: :development
125
105
  prerelease: false
126
106
  version_requirements: !ruby/object:Gem::Requirement
127
107
  requirements:
128
108
  - - "~>"
129
109
  - !ruby/object:Gem::Version
130
- version: '12.3'
110
+ version: '13.0'
131
111
  description: Spend time with the people you care about. Introvert-tested. Extrovert-approved.
132
112
  email:
133
113
  - jacobevelyn@gmail.com
@@ -177,11 +157,13 @@ files:
177
157
  - lib/friends/note.rb
178
158
  - lib/friends/post_install_message.rb
179
159
  - lib/friends/regex_builder.rb
160
+ - lib/friends/sem_ver_comparator.rb
180
161
  - lib/friends/serializable.rb
181
162
  - lib/friends/tag_regex.rb
182
163
  - lib/friends/version.rb
183
164
  - test/add_event_helper.rb
184
165
  - test/commands/add/activity_spec.rb
166
+ - test/commands/add/alias_spec.rb
185
167
  - test/commands/add/friend_spec.rb
186
168
  - test/commands/add/location_spec.rb
187
169
  - test/commands/add/nickname_spec.rb
@@ -198,6 +180,7 @@ files:
198
180
  - test/commands/list/locations_spec.rb
199
181
  - test/commands/list/notes_spec.rb
200
182
  - test/commands/list/tags_spec.rb
183
+ - test/commands/remove/alias_spec.rb
201
184
  - test/commands/remove/nickname_spec.rb
202
185
  - test/commands/remove/tag_spec.rb
203
186
  - test/commands/rename/friend_spec.rb
@@ -224,20 +207,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
224
207
  requirements:
225
208
  - - ">="
226
209
  - !ruby/object:Gem::Version
227
- version: '2.1'
210
+ version: '2.3'
228
211
  required_rubygems_version: !ruby/object:Gem::Requirement
229
212
  requirements:
230
213
  - - ">="
231
214
  - !ruby/object:Gem::Version
232
215
  version: '0'
233
216
  requirements: []
234
- rubygems_version: 3.0.3
235
- signing_key:
217
+ rubygems_version: 3.1.4
218
+ signing_key:
236
219
  specification_version: 4
237
220
  summary: Spend time with the people you care about.
238
221
  test_files:
239
222
  - test/add_event_helper.rb
240
223
  - test/commands/add/activity_spec.rb
224
+ - test/commands/add/alias_spec.rb
241
225
  - test/commands/add/friend_spec.rb
242
226
  - test/commands/add/location_spec.rb
243
227
  - test/commands/add/nickname_spec.rb
@@ -254,6 +238,7 @@ test_files:
254
238
  - test/commands/list/locations_spec.rb
255
239
  - test/commands/list/notes_spec.rb
256
240
  - test/commands/list/tags_spec.rb
241
+ - test/commands/remove/alias_spec.rb
257
242
  - test/commands/remove/nickname_spec.rb
258
243
  - test/commands/remove/tag_spec.rb
259
244
  - test/commands/rename/friend_spec.rb