friends 0.49 → 0.54

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