friends 0.47 → 0.52
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CONTRIBUTING.md +41 -36
- data/.github/FUNDING.yml +4 -0
- data/.github/ISSUE_TEMPLATE.md +1 -6
- data/.rubocop.yml +20 -5
- data/.travis.yml +5 -5
- data/CHANGELOG.md +78 -10
- data/Gemfile +2 -4
- data/README.md +31 -28
- data/RELEASING.md +1 -1
- data/bin/friends +3 -7
- data/friends.gemspec +3 -5
- data/friends.md +2 -2
- data/lib/friends/commands/edit.rb +1 -1
- data/lib/friends/commands/update.rb +2 -2
- data/lib/friends/event.rb +4 -4
- data/lib/friends/friend.rb +20 -13
- data/lib/friends/graph.rb +1 -1
- data/lib/friends/introvert.rb +47 -9
- data/lib/friends/location.rb +1 -1
- data/lib/friends/post_install_message.rb +1 -2
- data/lib/friends/regex_builder.rb +8 -8
- data/lib/friends/sem_ver_comparator.rb +20 -0
- data/lib/friends/serializable.rb +1 -1
- data/lib/friends/version.rb +1 -1
- data/test/add_event_helper.rb +59 -3
- data/test/commands/add/activity_spec.rb +294 -0
- data/test/commands/edit_spec.rb +33 -2
- data/test/commands/graph_spec.rb +4 -4
- data/test/commands/list/activities_spec.rb +55 -25
- data/test/commands/list/favorite/friends_spec.rb +1 -1
- data/test/commands/list/favorite/locations_spec.rb +8 -8
- data/test/commands/list/locations_spec.rb +1 -1
- data/test/commands/remove/tag_spec.rb +9 -0
- data/test/commands/rename/friend_spec.rb +2 -2
- data/test/commands/suggest_spec.rb +2 -2
- data/test/editor +2 -0
- data/test/helper.rb +7 -7
- metadata +7 -25
data/test/commands/edit_spec.rb
CHANGED
@@ -36,6 +36,37 @@ clean_describe "edit" do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe "when editor is multiple words" do
|
40
|
+
let(:editor) { "'cat -u'" }
|
41
|
+
|
42
|
+
describe "when output is quieted" do
|
43
|
+
let(:quiet) { "--quiet" }
|
44
|
+
|
45
|
+
it 'opens the file in the "editor"' do
|
46
|
+
stdout_only content
|
47
|
+
end
|
48
|
+
|
49
|
+
it "cleans the file" do
|
50
|
+
file_equals CONTENT # File is cleaned (no longer scrambled).
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "when output is not quieted" do
|
55
|
+
let(:quiet) { nil }
|
56
|
+
|
57
|
+
# Since our "editor" is just `cat -u`, our STDOUT output will include both the opening
|
58
|
+
# message and the contents of the file.
|
59
|
+
it 'prints a message and opens the file in the "editor"' do
|
60
|
+
stdout_only "Opening \"#{filename}\" with \"#{editor.tr("'", '')}\""\
|
61
|
+
"\n#{content}File cleaned: \"#{filename}\""
|
62
|
+
end
|
63
|
+
|
64
|
+
it "cleans the file" do
|
65
|
+
file_equals CONTENT # File is cleaned (no longer scrambled).
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
39
70
|
describe "when editor does not exit successfully" do
|
40
71
|
let(:editor) { "'exit 1 #'" }
|
41
72
|
|
@@ -78,7 +109,7 @@ Not cleaning file: "#{filename}" ("exit 1 #" did not exit successfully)
|
|
78
109
|
<<-EXPECTED_CONTENT
|
79
110
|
### Activities:
|
80
111
|
- 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.
|
81
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
112
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
82
113
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
83
114
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
84
115
|
- 2014-12-16: Okay, yep, I definitely just saw **Bigfoot** in the _Mysterious Mountains_!
|
@@ -101,7 +132,7 @@ Not cleaning file: "#{filename}" ("exit 1 #" did not exit successfully)
|
|
101
132
|
|
102
133
|
### Locations:
|
103
134
|
- Atlantis
|
104
|
-
-
|
135
|
+
- Martha's Vineyard
|
105
136
|
- Mysterious Mountains
|
106
137
|
- Paris
|
107
138
|
EXPECTED_CONTENT
|
data/test/commands/graph_spec.rb
CHANGED
@@ -27,7 +27,7 @@ clean_describe "graph" do
|
|
27
27
|
let(:content) do
|
28
28
|
<<-FILE
|
29
29
|
### Activities:
|
30
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
30
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
31
31
|
- 2015-01-14: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
32
32
|
- 2015-01-06: Did some other things in _Paris_.
|
33
33
|
- 2015-01-06: Did even more things in _Paris_.
|
@@ -42,7 +42,7 @@ clean_describe "graph" do
|
|
42
42
|
|
43
43
|
### Locations:
|
44
44
|
- Atlantis
|
45
|
-
-
|
45
|
+
- Martha's Vineyard
|
46
46
|
- Paris
|
47
47
|
FILE
|
48
48
|
end
|
@@ -273,7 +273,7 @@ Nov 2014 |∙|
|
|
273
273
|
|
274
274
|
it "matches tag case-insensitively and scales the graph" do
|
275
275
|
stdout_only <<-OUTPUT
|
276
|
-
Nov 2015
|
276
|
+
Nov 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
277
277
|
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
278
278
|
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
279
279
|
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
@@ -294,7 +294,7 @@ Nov 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
|
294
294
|
|
295
295
|
it "matches tag case-insensitively and does not scale graph" do
|
296
296
|
stdout_only <<-OUTPUT
|
297
|
-
Nov 2015
|
297
|
+
Nov 2015 |∙|
|
298
298
|
Oct 2015 |
|
299
299
|
Sep 2015 |
|
300
300
|
Aug 2015 |
|
@@ -26,13 +26,13 @@ clean_describe "list activities" do
|
|
26
26
|
# only reads from the (usually-sorted) file.
|
27
27
|
let(:content) { SCRAMBLED_CONTENT }
|
28
28
|
|
29
|
-
it "lists activities in
|
29
|
+
it "lists activities in sorted order" do
|
30
30
|
stdout_only <<-OUTPUT
|
31
|
-
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
32
|
-
2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
|
33
31
|
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.
|
34
|
-
|
32
|
+
2015-11-01: Grace Hopper and I went to Martha's Vineyard. George had to cancel at the last minute.
|
33
|
+
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
35
34
|
2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
|
35
|
+
2014-11-15: Talked to George Washington Carver on the phone for an hour.
|
36
36
|
OUTPUT
|
37
37
|
end
|
38
38
|
|
@@ -55,15 +55,16 @@ clean_describe "list activities" do
|
|
55
55
|
|
56
56
|
describe "when implicit location is set" do
|
57
57
|
let(:location_name) { "atlantis" }
|
58
|
-
|
59
|
-
|
58
|
+
describe "when activities are in order" do
|
59
|
+
let(:content) do
|
60
|
+
<<-FILE
|
60
61
|
### Activities:
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
62
|
+
- 2000-01-06: Went to a museum with **George Washington Carver**.
|
63
|
+
- 2000-01-05: Moved to _Paris_.
|
64
|
+
- 2000-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
65
|
+
- 2000-01-03: Celebrated my birthday in _Paris_ with **Marie Curie**. @partying @food
|
66
|
+
- 2000-01-02: Went to _Atlantis_.
|
67
|
+
- 2000-01-01: Talked to **George Washington Carver** on the phone for an hour.
|
67
68
|
|
68
69
|
### Friends:
|
69
70
|
- George Washington Carver
|
@@ -73,14 +74,44 @@ clean_describe "list activities" do
|
|
73
74
|
### Locations:
|
74
75
|
- Atlantis
|
75
76
|
- Paris
|
76
|
-
|
77
|
+
FILE
|
78
|
+
end
|
79
|
+
|
80
|
+
it "matches location case-insensitively" do
|
81
|
+
stdout_only <<-OUTPUT
|
82
|
+
2000-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
83
|
+
2000-01-02: Went to Atlantis.
|
84
|
+
OUTPUT
|
85
|
+
end
|
77
86
|
end
|
87
|
+
describe "when activities are not in order" do
|
88
|
+
let(:content) do
|
89
|
+
<<-FILE
|
90
|
+
### Activities:
|
91
|
+
- 2000-01-06: Went to a museum with **George Washington Carver**.
|
92
|
+
- 2000-01-02: Went to _Atlantis_.
|
93
|
+
- 2000-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
94
|
+
- 2000-01-03: Celebrated my birthday in _Paris_ with **Marie Curie**. @partying @food
|
95
|
+
- 2000-01-05: Moved to _Paris_.
|
96
|
+
- 2000-01-01: Talked to **George Washington Carver** on the phone for an hour.
|
78
97
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
98
|
+
### Friends:
|
99
|
+
- George Washington Carver
|
100
|
+
- Marie Curie [Atlantis] @science
|
101
|
+
- Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Paris] @navy @science
|
102
|
+
|
103
|
+
### Locations:
|
104
|
+
- Atlantis
|
105
|
+
- Paris
|
106
|
+
FILE
|
107
|
+
end
|
108
|
+
|
109
|
+
it "matches location case-insensitively" do
|
110
|
+
stdout_only <<-OUTPUT
|
111
|
+
2000-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
112
|
+
2000-01-02: Went to Atlantis.
|
113
|
+
OUTPUT
|
114
|
+
end
|
84
115
|
end
|
85
116
|
end
|
86
117
|
end
|
@@ -127,7 +158,6 @@ clean_describe "list activities" do
|
|
127
158
|
it "matches tag case-insensitively" do
|
128
159
|
stdout_only <<-OUTPUT
|
129
160
|
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
130
|
-
2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
|
131
161
|
OUTPUT
|
132
162
|
end
|
133
163
|
|
@@ -139,7 +169,7 @@ clean_describe "list activities" do
|
|
139
169
|
<<-FILE
|
140
170
|
### Activities:
|
141
171
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
142
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
172
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
143
173
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
144
174
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying @food
|
145
175
|
|
@@ -161,11 +191,11 @@ FILE
|
|
161
191
|
describe "--since" do
|
162
192
|
subject { run_cmd("list activities --since 'January 4th 2015'") }
|
163
193
|
|
164
|
-
it "lists activities on and after the specified date" do
|
194
|
+
it "lists activities on and after the specified date in order" do
|
165
195
|
stdout_only <<-OUTPUT
|
166
|
-
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
167
|
-
2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
|
168
196
|
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.
|
197
|
+
2015-11-01: Grace Hopper and I went to Martha's Vineyard. George had to cancel at the last minute.
|
198
|
+
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
169
199
|
OUTPUT
|
170
200
|
end
|
171
201
|
end
|
@@ -173,11 +203,11 @@ FILE
|
|
173
203
|
describe "--until" do
|
174
204
|
subject { run_cmd("list activities --until 'January 4th 2015'") }
|
175
205
|
|
176
|
-
it "lists activities before and on the specified date" do
|
206
|
+
it "lists activities before and on the specified date in order" do
|
177
207
|
stdout_only <<-OUTPUT
|
178
208
|
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
179
|
-
2014-11-15: Talked to George Washington Carver on the phone for an hour.
|
180
209
|
2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
|
210
|
+
2014-11-15: Talked to George Washington Carver on the phone for an hour.
|
181
211
|
OUTPUT
|
182
212
|
end
|
183
213
|
end
|
@@ -26,7 +26,7 @@ clean_describe "list favorite friends" do
|
|
26
26
|
<<-FILE
|
27
27
|
### Activities:
|
28
28
|
- 2017-01-01: Did some math with **Grace Hopper**.
|
29
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
29
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
30
30
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
31
31
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
32
32
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
@@ -25,8 +25,8 @@ clean_describe "list favorite locations" do
|
|
25
25
|
let(:content) do
|
26
26
|
<<-FILE
|
27
27
|
### Activities:
|
28
|
-
- 2017-01-01: **Grace Hopper** and I went to
|
29
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
28
|
+
- 2017-01-01: **Grace Hopper** and I went to _Martha's Vineyard_ for breakfast.
|
29
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
30
30
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
31
31
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
32
32
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
@@ -38,7 +38,7 @@ clean_describe "list favorite locations" do
|
|
38
38
|
|
39
39
|
### Locations:
|
40
40
|
- Atlantis
|
41
|
-
-
|
41
|
+
- Martha's Vineyard
|
42
42
|
- Paris
|
43
43
|
FILE
|
44
44
|
end
|
@@ -46,9 +46,9 @@ FILE
|
|
46
46
|
it "lists locations in order of decreasing activity" do
|
47
47
|
stdout_only <<-OUTPUT
|
48
48
|
Your favorite locations:
|
49
|
-
1.
|
50
|
-
2. Paris
|
51
|
-
3. Atlantis
|
49
|
+
1. Martha's Vineyard (2 activities)
|
50
|
+
2. Paris (1)
|
51
|
+
3. Atlantis (0)
|
52
52
|
OUTPUT
|
53
53
|
end
|
54
54
|
|
@@ -120,10 +120,10 @@ FILE
|
|
120
120
|
<<-FILE
|
121
121
|
### Activities:
|
122
122
|
- 2015-01-30: Went to a museum with **George Washington Carver**.
|
123
|
-
- 2015-01-29:
|
123
|
+
- 2015-01-29: Moved to _Paris_.
|
124
124
|
- 2015-01-01: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
125
125
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying @food
|
126
|
-
- 2014-12-30:
|
126
|
+
- 2014-12-30: Went to _Atlantis_.
|
127
127
|
- 2014-12-29: Talked to **George Washington Carver** on the phone for an hour.
|
128
128
|
|
129
129
|
### Friends:
|
@@ -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" }
|
@@ -35,7 +35,7 @@ clean_describe "rename friend" do
|
|
35
35
|
it "updates friend name in activities" do
|
36
36
|
value(run_cmd("list activities")[:stdout]).must_equal <<-FILE
|
37
37
|
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.
|
38
|
-
2015-11-01: Grace Hopper and I went to
|
38
|
+
2015-11-01: Grace Hopper and I went to Martha's Vineyard. George had to cancel at the last minute.
|
39
39
|
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
40
40
|
2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
|
41
41
|
2014-11-15: Talked to George Washington Carver on the phone for an hour.
|
@@ -43,7 +43,7 @@ clean_describe "rename friend" do
|
|
43
43
|
subject
|
44
44
|
value(run_cmd("list activities")[:stdout]).must_equal <<-FILE
|
45
45
|
2018-02-06: @science:indoors:agronomy-with-hydroponics: Norman Borlaug and George Washington scored a tour of Atlantis' hydroponics gardens through wetplants@example.org and they took me along.
|
46
|
-
2015-11-01: Grace Hopper and I went to
|
46
|
+
2015-11-01: Grace Hopper and I went to Martha's Vineyard. George had to cancel at the last minute.
|
47
47
|
2015-01-04: Got lunch with Grace Hopper and George Washington. @food
|
48
48
|
2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
|
49
49
|
2014-11-15: Talked to George Washington on the phone for an hour.
|
@@ -48,7 +48,7 @@ Close friend: None found
|
|
48
48
|
- 2016-03-01: Met up with **Grace Hopper**.
|
49
49
|
- 2016-02-01: Met up with **Grace Hopper**.
|
50
50
|
- 2016-01-01: Met up with **Grace Hopper**.
|
51
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
51
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
52
52
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
53
53
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
54
54
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
@@ -60,7 +60,7 @@ Close friend: None found
|
|
60
60
|
|
61
61
|
### Locations:
|
62
62
|
- Atlantis
|
63
|
-
-
|
63
|
+
- Martha's Vineyard
|
64
64
|
- Paris
|
65
65
|
FILE
|
66
66
|
end
|
data/test/editor
CHANGED
@@ -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
|
data/test/helper.rb
CHANGED
@@ -24,10 +24,10 @@ require "securerandom"
|
|
24
24
|
|
25
25
|
require "friends"
|
26
26
|
|
27
|
-
CONTENT = <<-FILE
|
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
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
30
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
31
31
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
32
32
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
33
33
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
@@ -47,15 +47,15 @@ CONTENT = <<-FILE.freeze
|
|
47
47
|
|
48
48
|
### Locations:
|
49
49
|
- Atlantis
|
50
|
-
-
|
50
|
+
- Martha's Vineyard
|
51
51
|
- Paris
|
52
52
|
FILE
|
53
53
|
|
54
54
|
# This is CONTENT but with activities, friends, and locations unsorted.
|
55
|
-
SCRAMBLED_CONTENT = <<-FILE
|
55
|
+
SCRAMBLED_CONTENT = <<-FILE
|
56
56
|
### Activities:
|
57
57
|
- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
|
58
|
-
- 2015-11-01: **Grace Hopper** and I went to
|
58
|
+
- 2015-11-01: **Grace Hopper** and I went to _Martha's Vineyard_. George had to cancel at the last minute.
|
59
59
|
- 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.
|
60
60
|
- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
|
61
61
|
- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
|
@@ -76,7 +76,7 @@ SCRAMBLED_CONTENT = <<-FILE.freeze
|
|
76
76
|
### Locations:
|
77
77
|
- Paris
|
78
78
|
- Atlantis
|
79
|
-
-
|
79
|
+
- Martha's Vineyard
|
80
80
|
FILE
|
81
81
|
|
82
82
|
# Define these methods so they can be referenced in the methods below. They'll be overridden in
|
@@ -135,7 +135,7 @@ def line_added(expected)
|
|
135
135
|
n_initial_lines = File.read(filename).split("\n").size
|
136
136
|
subject
|
137
137
|
lines = File.read(filename).split("\n")
|
138
|
-
value(lines
|
138
|
+
value(lines).must_include expected # Output includes our line
|
139
139
|
value(lines.size).must_equal(n_initial_lines + 1) # Line was added, not changed.
|
140
140
|
end
|
141
141
|
|
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.
|
4
|
+
version: '0.52'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Evelyn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-03 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: '
|
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: '
|
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
|
@@ -137,6 +117,7 @@ extensions: []
|
|
137
117
|
extra_rdoc_files: []
|
138
118
|
files:
|
139
119
|
- ".github/CONTRIBUTING.md"
|
120
|
+
- ".github/FUNDING.yml"
|
140
121
|
- ".github/ISSUE_TEMPLATE.md"
|
141
122
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
142
123
|
- ".gitignore"
|
@@ -176,6 +157,7 @@ files:
|
|
176
157
|
- lib/friends/note.rb
|
177
158
|
- lib/friends/post_install_message.rb
|
178
159
|
- lib/friends/regex_builder.rb
|
160
|
+
- lib/friends/sem_ver_comparator.rb
|
179
161
|
- lib/friends/serializable.rb
|
180
162
|
- lib/friends/tag_regex.rb
|
181
163
|
- lib/friends/version.rb
|
@@ -223,7 +205,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
223
205
|
requirements:
|
224
206
|
- - ">="
|
225
207
|
- !ruby/object:Gem::Version
|
226
|
-
version: '2.
|
208
|
+
version: '2.3'
|
227
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
210
|
requirements:
|
229
211
|
- - ">="
|