friends 0.8 → 0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/RELEASING.md +2 -2
- data/bin/friends +10 -0
- data/lib/friends/introvert.rb +18 -0
- data/lib/friends/version.rb +1 -1
- data/test/activity_spec.rb +4 -0
- data/test/introvert_spec.rb +40 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd57717cc27c13b6520090e016a6ddf121aaf9b6
|
4
|
+
data.tar.gz: 2ab6ef28bcbc08fa2144ce1a77c7b5f1ca4c29ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa7c94b0e734e6bca501e94eafe6d4e6a40c3b00bf4c5c509b0dc8c0d08db38237cbe0027278203a8521c291513016b7d0716e312a612455478f1cf7982b8337
|
7
|
+
data.tar.gz: 42bd1f835bf0fe0aafbc6e843209d17e02f620626b94a4a0dc6b5cdab933a74ddac450d7c79eddda9c0f34c68426eb8e58835ea1e9b3f9dd4b342245a0449005
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v0.9](https://github.com/JacobEvelyn/friends/tree/v0.9) (2016-01-07)
|
4
|
+
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.8...v0.9)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- Add command to retrieve basic stats [\#36](https://github.com/JacobEvelyn/friends/issues/36)
|
9
|
+
|
10
|
+
**Merged pull requests:**
|
11
|
+
|
12
|
+
- Add stats command [\#55](https://github.com/JacobEvelyn/friends/pull/55) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
13
|
+
|
3
14
|
## [v0.8](https://github.com/JacobEvelyn/friends/tree/v0.8) (2016-01-06)
|
4
15
|
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.7...v0.8)
|
5
16
|
|
data/RELEASING.md
CHANGED
@@ -4,10 +4,10 @@ These are steps for the maintainer to take to release a new version of this gem.
|
|
4
4
|
|
5
5
|
1. On the `master` branch, update the `VERSION` constant in
|
6
6
|
`lib/friends/version.rb`.
|
7
|
-
2. Commit the change (`git commit -m 'Bump to vX.X'`).
|
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`).
|
9
9
|
4. `git push && git push --tags`
|
10
|
-
5. `github_changelog_generator && git commit -m 'Update CHANGELOG for vX.X'`
|
10
|
+
5. `github_changelog_generator && git add -A && git commit -m 'Update CHANGELOG for vX.X'`
|
11
11
|
6. `git push`
|
12
12
|
7. `gem build friends.gemspec && gem push *.gem && rm *.gem`
|
13
13
|
8. Celebrate!
|
data/bin/friends
CHANGED
@@ -197,6 +197,16 @@ command :clean do |clean|
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
200
|
+
desc "List all stats"
|
201
|
+
command :stats do |stats|
|
202
|
+
stats.action do
|
203
|
+
puts "Total activities: #{@introvert.total_activities}"
|
204
|
+
puts "Total friends: #{@introvert.total_friends}"
|
205
|
+
days = @introvert.elapsed_days
|
206
|
+
puts "Total time elapsed: #{days} day#{'s' if days != 1}"
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
200
210
|
# Before each command, clean up all arguments and create the global Introvert.
|
201
211
|
pre do |global_options, _, options|
|
202
212
|
final_options = global_options.merge!(options).select do |key, _|
|
data/lib/friends/introvert.rb
CHANGED
@@ -299,6 +299,24 @@ module Friends
|
|
299
299
|
end
|
300
300
|
end
|
301
301
|
|
302
|
+
# @return [Integer] the total number of friends
|
303
|
+
def total_friends
|
304
|
+
@friends.size
|
305
|
+
end
|
306
|
+
|
307
|
+
# @return [Integer] the total number of activities
|
308
|
+
def total_activities
|
309
|
+
@activities.size
|
310
|
+
end
|
311
|
+
|
312
|
+
# @return [Integer] the number of days elapsed between
|
313
|
+
# the first and last activity
|
314
|
+
def elapsed_days
|
315
|
+
return 0 if @activities.size < 2
|
316
|
+
sorted_activities = @activities.sort
|
317
|
+
(sorted_activities.first.date - sorted_activities.last.date).to_i
|
318
|
+
end
|
319
|
+
|
302
320
|
private
|
303
321
|
|
304
322
|
# Process the friends.md file and store its contents in internal data
|
data/lib/friends/version.rb
CHANGED
data/test/activity_spec.rb
CHANGED
@@ -75,13 +75,17 @@ describe Friends::Activity do
|
|
75
75
|
describe "#highlight_friends" do
|
76
76
|
# Add helpers to set internal states for friends and activities.
|
77
77
|
def stub_friends(val)
|
78
|
+
old_val = introvert.instance_variable_get(:@friends)
|
78
79
|
introvert.instance_variable_set(:@friends, val)
|
79
80
|
yield
|
81
|
+
introvert.instance_variable_set(:@friends, old_val)
|
80
82
|
end
|
81
83
|
|
82
84
|
def stub_activities(val)
|
85
|
+
old_val = introvert.instance_variable_get(:@activities)
|
83
86
|
introvert.instance_variable_set(:@activities, val)
|
84
87
|
yield
|
88
|
+
introvert.instance_variable_set(:@activities, old_val)
|
85
89
|
end
|
86
90
|
|
87
91
|
let(:friends) { [friend1, friend2] }
|
data/test/introvert_spec.rb
CHANGED
@@ -8,13 +8,17 @@ describe Friends::Introvert do
|
|
8
8
|
|
9
9
|
# Add helpers to set internal states for friends and activities.
|
10
10
|
def stub_friends(val)
|
11
|
+
old_val = introvert.instance_variable_get(:@friends)
|
11
12
|
introvert.instance_variable_set(:@friends, val)
|
12
13
|
yield
|
14
|
+
introvert.instance_variable_set(:@friends, old_val)
|
13
15
|
end
|
14
16
|
|
15
17
|
def stub_activities(val)
|
18
|
+
old_val = introvert.instance_variable_get(:@activities)
|
16
19
|
introvert.instance_variable_set(:@activities, val)
|
17
20
|
yield
|
21
|
+
introvert.instance_variable_set(:@activities, old_val)
|
18
22
|
end
|
19
23
|
|
20
24
|
let(:filename) { "test/tmp/friends.md" }
|
@@ -417,4 +421,40 @@ describe Friends::Introvert do
|
|
417
421
|
end
|
418
422
|
end
|
419
423
|
end
|
424
|
+
|
425
|
+
describe "#total_friends" do
|
426
|
+
it "returns 0 when there are no friends" do
|
427
|
+
introvert.total_friends.must_equal 0
|
428
|
+
end
|
429
|
+
|
430
|
+
it "returns the total number of friends" do
|
431
|
+
stub_friends(friends) do
|
432
|
+
introvert.total_friends.must_equal friends.size
|
433
|
+
end
|
434
|
+
end
|
435
|
+
end
|
436
|
+
|
437
|
+
describe "#total_activities" do
|
438
|
+
it "returns 0 when there are no activities" do
|
439
|
+
introvert.total_activities.must_equal 0
|
440
|
+
end
|
441
|
+
|
442
|
+
it "returns the total number of activities" do
|
443
|
+
stub_activities(activities) do
|
444
|
+
introvert.total_activities.must_equal activities.size
|
445
|
+
end
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
describe "#elapsed_days" do
|
450
|
+
it "return 0 elapsed days when there are no activities" do
|
451
|
+
introvert.elapsed_days.must_equal 0
|
452
|
+
end
|
453
|
+
|
454
|
+
it "returns the number of days between the first and last activity" do
|
455
|
+
stub_activities(activities) do
|
456
|
+
introvert.elapsed_days.must_equal 1
|
457
|
+
end
|
458
|
+
end
|
459
|
+
end
|
420
460
|
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.
|
4
|
+
version: '0.9'
|
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-01-
|
11
|
+
date: 2016-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|