friends 0.28 → 0.29

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -4
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +2 -0
  5. data/CHANGELOG.md +13 -0
  6. data/README.md +35 -5
  7. data/Rakefile +1 -1
  8. data/bin/friends +7 -379
  9. data/friends.gemspec +3 -1
  10. data/lib/friends/activity.rb +4 -4
  11. data/lib/friends/commands/add.rb +64 -0
  12. data/lib/friends/commands/clean.rb +9 -0
  13. data/lib/friends/commands/edit.rb +12 -0
  14. data/lib/friends/commands/graph.rb +56 -0
  15. data/lib/friends/commands/list.rb +143 -0
  16. data/lib/friends/commands/remove.rb +27 -0
  17. data/lib/friends/commands/rename.rb +30 -0
  18. data/lib/friends/commands/set.rb +14 -0
  19. data/lib/friends/commands/stats.rb +11 -0
  20. data/lib/friends/commands/suggest.rb +20 -0
  21. data/lib/friends/commands/update.rb +29 -0
  22. data/lib/friends/graph.rb +7 -7
  23. data/lib/friends/introvert.rb +23 -18
  24. data/lib/friends/version.rb +1 -1
  25. data/test/commands/add/activity_spec.rb +379 -0
  26. data/test/commands/add/friend_spec.rb +30 -0
  27. data/test/commands/add/location_spec.rb +30 -0
  28. data/test/commands/add/nickname_spec.rb +50 -0
  29. data/test/commands/add/tag_spec.rb +65 -0
  30. data/test/commands/clean_spec.rb +39 -0
  31. data/test/commands/graph_spec.rb +147 -0
  32. data/test/commands/help_spec.rb +45 -0
  33. data/test/commands/list/activities_spec.rb +136 -0
  34. data/test/commands/list/favorite/friends_spec.rb +77 -0
  35. data/test/commands/list/favorite/locations_spec.rb +82 -0
  36. data/test/commands/list/friends_spec.rb +76 -0
  37. data/test/commands/list/locations_spec.rb +35 -0
  38. data/test/commands/list/tags_spec.rb +58 -0
  39. data/test/commands/remove/nickname_spec.rb +63 -0
  40. data/test/commands/remove/tag_spec.rb +64 -0
  41. data/test/commands/rename/friend_spec.rb +55 -0
  42. data/test/commands/rename/location_spec.rb +43 -0
  43. data/test/commands/set/location_spec.rb +54 -0
  44. data/test/commands/stats_spec.rb +41 -0
  45. data/test/commands/suggest_spec.rb +86 -0
  46. data/test/commands/update_spec.rb +13 -0
  47. data/test/helper.rb +114 -0
  48. metadata +89 -15
  49. data/test/activity_spec.rb +0 -597
  50. data/test/friend_spec.rb +0 -241
  51. data/test/graph_spec.rb +0 -92
  52. data/test/introvert_spec.rb +0 -969
  53. data/test/location_spec.rb +0 -60
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "rename friend" do
6
+ subject { run_cmd("rename friend #{old_name} #{new_name}") }
7
+
8
+ let(:content) { CONTENT }
9
+ let(:new_name) { "'George Washington'" }
10
+
11
+ describe "when friend name has no matches" do
12
+ let(:old_name) { "Garbage" }
13
+ it "prints an error message" do
14
+ stderr_only 'Error: No friend found for "Garbage"'
15
+ end
16
+ end
17
+
18
+ describe "when friend name has more than one match" do
19
+ let(:old_name) { "George" }
20
+ before { run_cmd("add friend George Harrison") }
21
+
22
+ it "prints an error message" do
23
+ stderr_only 'Error: More than one friend found for "George": '\
24
+ "George Harrison, George Washington Carver"
25
+ end
26
+ end
27
+
28
+ describe "when friend name has one match" do
29
+ let(:old_name) { "George" }
30
+
31
+ it "renames friend" do
32
+ line_changed "- George Washington Carver", "- George Washington"
33
+ end
34
+
35
+ it "updates friend name in activities" do
36
+ run_cmd("list activities")[:stdout].must_equal <<-FILE
37
+ 2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
38
+ 2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
39
+ 2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
40
+ 2014-11-15: Talked to George Washington Carver on the phone for an hour.
41
+ FILE
42
+ subject
43
+ run_cmd("list activities")[:stdout].must_equal <<-FILE
44
+ 2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
45
+ 2015-01-04: Got lunch with Grace Hopper and George Washington. @food
46
+ 2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying
47
+ 2014-11-15: Talked to George Washington on the phone for an hour.
48
+ FILE
49
+ end
50
+
51
+ it "prints an output message" do
52
+ stdout_only 'Name changed: "George Washington"'
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "rename location" do
6
+ subject { run_cmd("rename location #{old_name} #{new_name}") }
7
+
8
+ let(:content) { CONTENT }
9
+ let(:new_name) { "'Ville Lumière'" }
10
+
11
+ describe "when location name has no matches" do
12
+ let(:old_name) { "Garbage" }
13
+ it "prints an error message" do
14
+ stderr_only 'Error: No location found for "Garbage"'
15
+ end
16
+ end
17
+
18
+ describe "when location name has one match" do
19
+ let(:old_name) { "Paris" }
20
+
21
+ it "renames location" do
22
+ line_changed("- Paris", "- Ville Lumière")
23
+ end
24
+
25
+ it "updates location name in activities" do
26
+ line_changed(
27
+ "- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying",
28
+ "- 2014-12-31: Celebrated the new year in _Ville Lumière_ with **Marie Curie**. @partying"
29
+ )
30
+ end
31
+
32
+ it "updates location name for friends" do
33
+ line_changed(
34
+ "- Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Paris] @navy @science",
35
+ "- Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Ville Lumière] @navy @science"
36
+ )
37
+ end
38
+
39
+ it "prints an output message" do
40
+ stdout_only 'Location renamed: "Ville Lumière"'
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "set location" do
6
+ subject { run_cmd("set location #{friend_name} #{location_name}") }
7
+ let(:content) { CONTENT }
8
+
9
+ describe "when friend does not exist" do
10
+ let(:friend_name) { "Garbage" }
11
+ let(:location_name) { "Paris" }
12
+
13
+ it "prints an error message" do
14
+ stderr_only 'Error: No friend found for "Garbage"'
15
+ end
16
+ end
17
+
18
+ describe "when location does not exist" do
19
+ let(:friend_name) { "Marie" }
20
+ let(:location_name) { "Garbage" }
21
+
22
+ it "prints an error message" do
23
+ stderr_only 'Error: No location found for "Garbage"'
24
+ end
25
+ end
26
+
27
+ describe "when friend and location exist" do
28
+ let(:location_name) { "Paris" }
29
+
30
+ describe "when friend already has a location" do
31
+ let(:friend_name) { "Marie" }
32
+
33
+ it "prints correct output" do
34
+ stdout_only "Marie Curie's location set to: Paris"
35
+ end
36
+
37
+ it "updates existing location" do
38
+ line_changed "- Marie Curie [Atlantis] @science", "- Marie Curie [Paris] @science"
39
+ end
40
+ end
41
+
42
+ describe "when friend has no location" do
43
+ let(:friend_name) { "George" }
44
+
45
+ it "prints correct output" do
46
+ stdout_only "George Washington Carver's location set to: Paris"
47
+ end
48
+
49
+ it "adds a location" do
50
+ line_changed "- George Washington Carver", "- George Washington Carver [Paris]"
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "stats" do
6
+ subject { run_cmd("stats") }
7
+
8
+ describe "when file does not exist" do
9
+ it "returns the stats" do
10
+ stdout_only <<-FILE
11
+ Total activities: 0
12
+ Total friends: 0
13
+ Total time elapsed: 0 days
14
+ FILE
15
+ end
16
+ end
17
+
18
+ describe "when the file is empty" do
19
+ let(:content) { "" }
20
+
21
+ it "returns the stats" do
22
+ stdout_only <<-FILE
23
+ Total activities: 0
24
+ Total friends: 0
25
+ Total time elapsed: 0 days
26
+ FILE
27
+ end
28
+ end
29
+
30
+ describe "when file has stats" do
31
+ let(:content) { CONTENT }
32
+
33
+ it "returns the content" do
34
+ stdout_only <<-FILE
35
+ Total activities: 4
36
+ Total friends: 3
37
+ Total time elapsed: 351 days
38
+ FILE
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "suggest" do
6
+ subject { run_cmd("suggest") }
7
+
8
+ describe "when file does not exist" do
9
+ it "prints a no-data message" do
10
+ stdout_only <<-FILE
11
+ Distant friend: None found
12
+ Moderate friend: None found
13
+ Close friend: None found
14
+ FILE
15
+ end
16
+ end
17
+
18
+ describe "when the file is empty" do
19
+ let(:content) { "" }
20
+
21
+ it "prints a no-data message" do
22
+ stdout_only <<-FILE
23
+ Distant friend: None found
24
+ Moderate friend: None found
25
+ Close friend: None found
26
+ FILE
27
+ end
28
+ end
29
+
30
+ describe "when file has content" do
31
+ let(:content) do
32
+ <<-FILE
33
+ ### Activities:
34
+ - 2017-03-01: Met up with **George Washington Carver**.
35
+ - 2017-02-01: Met up with **George Washington Carver**.
36
+ - 2017-01-01: Met up with **George Washington Carver**.
37
+ - 2016-12-01: Met up with **Grace Hopper**.
38
+ - 2016-11-01: Met up with **Grace Hopper**.
39
+ - 2016-10-01: Met up with **Grace Hopper**.
40
+ - 2016-09-01: Met up with **Grace Hopper**.
41
+ - 2016-08-01: Met up with **Grace Hopper**.
42
+ - 2016-07-01: Met up with **Grace Hopper**.
43
+ - 2016-06-01: Met up with **Grace Hopper**.
44
+ - 2016-05-01: Met up with **Grace Hopper**.
45
+ - 2016-04-01: Met up with **Grace Hopper**.
46
+ - 2016-03-01: Met up with **Grace Hopper**.
47
+ - 2016-02-01: Met up with **Grace Hopper**.
48
+ - 2016-01-01: Met up with **Grace Hopper**.
49
+ - 2015-11-01: **Grace Hopper** and I went to _Marie's Diner_. George had to cancel at the last minute. @food
50
+ - 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
51
+ - 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
52
+ - 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
53
+
54
+ ### Friends:
55
+ - George Washington Carver
56
+ - Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Paris] @navy @science
57
+ - Marie Curie [Atlantis] @science
58
+
59
+ ### Locations:
60
+ - Atlantis
61
+ - Marie's Diner
62
+ - Paris
63
+ FILE
64
+ end
65
+
66
+ it "prints suggested friends" do
67
+ stdout_only <<-FILE
68
+ Distant friend: Marie Curie
69
+ Moderate friend: George Washington Carver
70
+ Close friend: Grace Hopper
71
+ FILE
72
+ end
73
+
74
+ describe "--in" do
75
+ subject { run_cmd("suggest --in Paris") }
76
+
77
+ it "prints suggested friends" do
78
+ stdout_only <<-FILE
79
+ Distant friend: None found
80
+ Moderate friend: None found
81
+ Close friend: Grace Hopper
82
+ FILE
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "./test/helper"
4
+
5
+ clean_describe "update" do
6
+ subject { run_cmd("update") }
7
+
8
+ it "prints a status message" do
9
+ subject[:stderr].must_equal ""
10
+ subject[:status].must_equal 0
11
+ [/Updated to friends/, /Already up-to-date/].one? { |m| subject[:stdout] =~ m }.must_equal true
12
+ end
13
+ end
data/test/helper.rb CHANGED
@@ -3,7 +3,121 @@
3
3
  require "codeclimate-test-reporter"
4
4
  CodeClimate::TestReporter.start
5
5
 
6
+ ENV["MT_HELL"] = "1" # Forces tests to have at least one assertion to pass.
7
+
6
8
  require "minitest/autorun"
9
+ require "minitest/parallel_fork"
7
10
  require "minitest/pride"
11
+ require "minitest/hell"
12
+ require "open3"
13
+ require "securerandom"
8
14
 
9
15
  require "friends"
16
+
17
+ CONTENT = <<-FILE
18
+ ### Activities:
19
+ - 2015-11-01: **Grace Hopper** and I went to _Marie's Diner_. George had to cancel at the last minute. @food
20
+ - 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
21
+ - 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
22
+ - 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
23
+
24
+ ### Friends:
25
+ - George Washington Carver
26
+ - Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Paris] @navy @science
27
+ - Marie Curie [Atlantis] @science
28
+
29
+ ### Locations:
30
+ - Atlantis
31
+ - Marie's Diner
32
+ - Paris
33
+ FILE
34
+
35
+ # This is CONTENT but with activities, friends, and locations unsorted.
36
+ SCRAMBLED_CONTENT = <<-FILE
37
+ ### Activities:
38
+ - 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**. @food
39
+ - 2015-11-01: **Grace Hopper** and I went to _Marie's Diner_. George had to cancel at the last minute. @food
40
+ - 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
41
+ - 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**. @partying
42
+
43
+ ### Friends:
44
+ - George Washington Carver
45
+ - Marie Curie [Atlantis] @science
46
+ - Grace Hopper (a.k.a. The Admiral a.k.a. Amazing Grace) [Paris] @navy @science
47
+
48
+ ### Locations:
49
+ - Paris
50
+ - Atlantis
51
+ - Marie's Diner
52
+ FILE
53
+
54
+ # Define these methods so they can be referenced in the methods below. They'll be overridden in
55
+ # test files.
56
+ def filename; end
57
+
58
+ def subject; end
59
+
60
+ def run_cmd(command, **args)
61
+ stdout, stderr, status = Open3.capture3(
62
+ "bundle exec bin/friends --colorless --filename #{filename} #{command}",
63
+ **args
64
+ )
65
+ {
66
+ stdout: stdout,
67
+ stderr: stderr,
68
+ status: status.exitstatus
69
+ }
70
+ end
71
+
72
+ # @param str [String] a string
73
+ # @return [String] the input string with a newline appended to it if one was not already
74
+ # present, *unless* the string is empty
75
+ def ensure_trailing_newline_unless_empty(str)
76
+ return "" if str.empty?
77
+
78
+ str.to_s[-1] == "\n" ? str.to_s : "#{str}\n"
79
+ end
80
+
81
+ def stdout_only(expected)
82
+ subject[:stdout].must_equal ensure_trailing_newline_unless_empty(expected)
83
+ subject[:stderr].must_equal ""
84
+ subject[:status].must_equal 0
85
+ end
86
+
87
+ def stderr_only(expected)
88
+ subject[:stdout].must_equal ""
89
+ subject[:stderr].must_equal ensure_trailing_newline_unless_empty(expected)
90
+ subject[:status].must_be :>, 0
91
+ end
92
+
93
+ def file_equals(expected)
94
+ subject
95
+ File.read(filename).must_equal expected
96
+ end
97
+
98
+ def line_changed(expected_old, expected_new)
99
+ index = File.read(filename).split("\n").index(expected_old)
100
+ index.must_be_kind_of Numeric # Not nil, so we know that `expected_old` was found.
101
+ subject
102
+ File.read(filename).split("\n")[index].must_equal expected_new
103
+ end
104
+
105
+ def line_added(expected)
106
+ n_initial_lines = File.read(filename).split("\n").size
107
+ subject
108
+ lines = File.read(filename).split("\n")
109
+ lines.index(expected).must_be_kind_of Numeric # Not nil, so we know that `expected` was found.
110
+ lines.size.must_equal(n_initial_lines + 1) # Line was added, not changed.
111
+ end
112
+
113
+ def clean_describe(desc, *additional_desc, &block)
114
+ describe desc, *additional_desc do
115
+ let(:filename) { "test/tmp/friends#{SecureRandom.uuid}.md" }
116
+ let(:content) { nil }
117
+
118
+ before { File.write(filename, content) unless content.nil? }
119
+ after { File.delete(filename) if File.exist?(filename) }
120
+
121
+ class_eval(&block)
122
+ end
123
+ end
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.28'
4
+ version: '0.29'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Evelyn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-25 00:00:00.000000000 Z
11
+ date: 2017-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.14'
47
+ version: '0.15'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.14'
54
+ version: '0.15'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: paint
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,34 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '5.5'
125
+ - !ruby/object:Gem::Dependency
126
+ name: minitest-parallel_fork
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: minitest-proveit
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: overcommit
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -191,6 +219,17 @@ files:
191
219
  - friends.md
192
220
  - lib/friends.rb
193
221
  - lib/friends/activity.rb
222
+ - lib/friends/commands/add.rb
223
+ - lib/friends/commands/clean.rb
224
+ - lib/friends/commands/edit.rb
225
+ - lib/friends/commands/graph.rb
226
+ - lib/friends/commands/list.rb
227
+ - lib/friends/commands/remove.rb
228
+ - lib/friends/commands/rename.rb
229
+ - lib/friends/commands/set.rb
230
+ - lib/friends/commands/stats.rb
231
+ - lib/friends/commands/suggest.rb
232
+ - lib/friends/commands/update.rb
194
233
  - lib/friends/friend.rb
195
234
  - lib/friends/friends_error.rb
196
235
  - lib/friends/graph.rb
@@ -199,12 +238,29 @@ files:
199
238
  - lib/friends/regex_builder.rb
200
239
  - lib/friends/serializable.rb
201
240
  - lib/friends/version.rb
202
- - test/activity_spec.rb
203
- - test/friend_spec.rb
204
- - test/graph_spec.rb
241
+ - test/commands/add/activity_spec.rb
242
+ - test/commands/add/friend_spec.rb
243
+ - test/commands/add/location_spec.rb
244
+ - test/commands/add/nickname_spec.rb
245
+ - test/commands/add/tag_spec.rb
246
+ - test/commands/clean_spec.rb
247
+ - test/commands/graph_spec.rb
248
+ - test/commands/help_spec.rb
249
+ - test/commands/list/activities_spec.rb
250
+ - test/commands/list/favorite/friends_spec.rb
251
+ - test/commands/list/favorite/locations_spec.rb
252
+ - test/commands/list/friends_spec.rb
253
+ - test/commands/list/locations_spec.rb
254
+ - test/commands/list/tags_spec.rb
255
+ - test/commands/remove/nickname_spec.rb
256
+ - test/commands/remove/tag_spec.rb
257
+ - test/commands/rename/friend_spec.rb
258
+ - test/commands/rename/location_spec.rb
259
+ - test/commands/set/location_spec.rb
260
+ - test/commands/stats_spec.rb
261
+ - test/commands/suggest_spec.rb
262
+ - test/commands/update_spec.rb
205
263
  - test/helper.rb
206
- - test/introvert_spec.rb
207
- - test/location_spec.rb
208
264
  - test/tmp/.keep
209
265
  homepage: https://github.com/JacobEvelyn/friends
210
266
  licenses:
@@ -226,15 +282,33 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
282
  version: '0'
227
283
  requirements: []
228
284
  rubyforge_project:
229
- rubygems_version: 2.5.1
285
+ rubygems_version: 2.6.8
230
286
  signing_key:
231
287
  specification_version: 4
232
288
  summary: Spend time with the people you care about.
233
289
  test_files:
234
- - test/activity_spec.rb
235
- - test/friend_spec.rb
236
- - test/graph_spec.rb
290
+ - test/commands/add/activity_spec.rb
291
+ - test/commands/add/friend_spec.rb
292
+ - test/commands/add/location_spec.rb
293
+ - test/commands/add/nickname_spec.rb
294
+ - test/commands/add/tag_spec.rb
295
+ - test/commands/clean_spec.rb
296
+ - test/commands/graph_spec.rb
297
+ - test/commands/help_spec.rb
298
+ - test/commands/list/activities_spec.rb
299
+ - test/commands/list/favorite/friends_spec.rb
300
+ - test/commands/list/favorite/locations_spec.rb
301
+ - test/commands/list/friends_spec.rb
302
+ - test/commands/list/locations_spec.rb
303
+ - test/commands/list/tags_spec.rb
304
+ - test/commands/remove/nickname_spec.rb
305
+ - test/commands/remove/tag_spec.rb
306
+ - test/commands/rename/friend_spec.rb
307
+ - test/commands/rename/location_spec.rb
308
+ - test/commands/set/location_spec.rb
309
+ - test/commands/stats_spec.rb
310
+ - test/commands/suggest_spec.rb
311
+ - test/commands/update_spec.rb
237
312
  - test/helper.rb
238
- - test/introvert_spec.rb
239
- - test/location_spec.rb
240
313
  - test/tmp/.keep
314
+ has_rdoc: