friends 0.44 → 0.45
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
- data/.travis.yml +6 -4
- data/CHANGELOG.md +16 -1
- data/README.md +46 -35
- data/bin/friends +1 -1
- data/friends.gemspec +1 -1
- data/lib/friends/commands/graph.rb +6 -1
- data/lib/friends/event.rb +2 -2
- data/lib/friends/graph.rb +20 -3
- data/lib/friends/introvert.rb +12 -5
- data/lib/friends/version.rb +1 -1
- data/test/commands/graph_spec.rb +229 -31
- data/test/commands/list/activities_spec.rb +5 -5
- data/test/commands/list/friends_spec.rb +5 -5
- data/test/commands/list/notes_spec.rb +5 -5
- data/test/helper.rb +3 -3
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb0258b3dca86e0aba3b852b4d58462e2e3570f6
|
4
|
+
data.tar.gz: cbb2091ca9b77764999b5667b4a00c309ce1263d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '052706180f25b59c73618c545e659becf4a1b9295ba3bb4e8478b7279a0c7460c5e974eafc8627c3f5745c5236ba37ff31648b4129b9a70780bc4d55f83cac96'
|
7
|
+
data.tar.gz: 4e0819d8bcab2152a883853e5b2b6899660faa8eca350dfa73085658ad1e5b4a2fe95be97d4006f8fd5d23d11865a25a7cae66b8c8a78184ddc6b0c9406bef50
|
@@ -9,6 +9,7 @@ merge this change:
|
|
9
9
|
- [ ] Code has tests as appropriate.
|
10
10
|
- [ ] Code has been reviewed by @JacobEvelyn.
|
11
11
|
- [ ] All tests pass on Travis CI.
|
12
|
+
- [ ] Code coverage remains high.
|
12
13
|
- [ ] Rubocop reports no issues on Travis CI.
|
13
14
|
- [ ] The `README.md` file is updated as appropriate.
|
14
15
|
|
data/.travis.yml
CHANGED
@@ -5,9 +5,6 @@ rvm:
|
|
5
5
|
- 2.3
|
6
6
|
- 2.4
|
7
7
|
- 2.5 # 2.6 is tested below
|
8
|
-
branches:
|
9
|
-
only:
|
10
|
-
- master
|
11
8
|
script:
|
12
9
|
- bundle exec rake test
|
13
10
|
matrix:
|
@@ -15,6 +12,11 @@ matrix:
|
|
15
12
|
- rvm: 2.6
|
16
13
|
script:
|
17
14
|
- bundle exec rake test
|
18
|
-
- gem install rubocop && rubocop
|
15
|
+
- gem install --no-document rubocop && rubocop
|
16
|
+
env:
|
17
|
+
- CODE_COVERAGE=true
|
18
|
+
branches:
|
19
|
+
only:
|
20
|
+
- master # Always run on the master branch
|
19
21
|
notifications:
|
20
22
|
email: false
|
data/CHANGELOG.md
CHANGED
@@ -14,6 +14,21 @@ making a small donation (🙏) to show you appreciate its continued development.
|
|
14
14
|
|
15
15
|
👆 Donate with these buttons! 👆
|
16
16
|
|
17
|
+
## [v0.45](https://github.com/JacobEvelyn/friends/tree/v0.45) (2019-01-15)
|
18
|
+
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.44...v0.45)
|
19
|
+
|
20
|
+
**Implemented enhancements:**
|
21
|
+
|
22
|
+
- Match tags case-insensitively [\#226](https://github.com/JacobEvelyn/friends/issues/226)
|
23
|
+
- Add `friends graph --unscaled` [\#201](https://github.com/JacobEvelyn/friends/issues/201)
|
24
|
+
|
25
|
+
**Merged pull requests:**
|
26
|
+
|
27
|
+
- Switch from Coveralls to Codecov [\#230](https://github.com/JacobEvelyn/friends/pull/230) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
28
|
+
- Match tags case-insensitively [\#229](https://github.com/JacobEvelyn/friends/pull/229) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
29
|
+
- Only compute code coverage once per Travis run [\#228](https://github.com/JacobEvelyn/friends/pull/228) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
30
|
+
- Scale graphs by default [\#227](https://github.com/JacobEvelyn/friends/pull/227) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
31
|
+
|
17
32
|
## [v0.44](https://github.com/JacobEvelyn/friends/tree/v0.44) (2019-01-12)
|
18
33
|
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.43...v0.44)
|
19
34
|
|
@@ -649,4 +664,4 @@ making a small donation (🙏) to show you appreciate its continued development.
|
|
649
664
|
## [v0.0.1](https://github.com/JacobEvelyn/friends/tree/v0.0.1) (2014-12-11)
|
650
665
|
|
651
666
|
|
652
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
667
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
[![Gem Version](https://badge.fury.io/rb/friends.svg)](https://badge.fury.io/rb/friends)
|
2
|
-
[![Coverage
|
2
|
+
[![Code Coverage](https://codecov.io/gh/JacobEvelyn/friends/branch/master/graph/badge.svg)](https://codecov.io/gh/JacobEvelyn/friends)
|
3
3
|
[![Build Status](https://travis-ci.org/JacobEvelyn/friends.svg?branch=master)](https://travis-ci.org/JacobEvelyn/friends)
|
4
4
|
[![Readme Score](http://readme-score-api.herokuapp.com/score.svg?url=JacobEvelyn/friends&bust=1)](http://clayallsopp.github.io/readme-score?url=JacobEvelyn/friends)
|
5
5
|
[![Inline docs](http://inch-ci.org/github/JacobEvelyn/friends.png)](http://inch-ci.org/github/JacobEvelyn/friends)
|
@@ -483,86 +483,97 @@ Graphs (in color!) your activities over time:
|
|
483
483
|
|
484
484
|
```bash
|
485
485
|
$ friends graph
|
486
|
-
|
487
|
-
|
486
|
+
Feb 2018 |██████∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
487
|
+
Jan 2018 |████████████████████
|
488
|
+
Dec 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
489
|
+
Nov 2017 |█████████∙∙∙∙∙∙∙∙∙∙∙|
|
490
|
+
```
|
491
|
+
|
492
|
+
By default, graphs are scaled relative to the month with the most activities.
|
493
|
+
You can also show the unscaled graph:
|
494
|
+
|
495
|
+
```bash
|
496
|
+
$ friends graph --unscaled
|
497
|
+
Feb 2018 |██
|
488
498
|
Jan 2018 |███████
|
489
|
-
|
499
|
+
Dec 2017 |█
|
500
|
+
Nov 2017 |███
|
490
501
|
```
|
491
502
|
|
492
|
-
|
503
|
+
You can graph only activities with a certain friend:
|
493
504
|
|
494
505
|
```bash
|
495
506
|
$ friends graph --with George
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
507
|
+
Feb 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
508
|
+
Jan 2018 |█████████████████∙∙∙|
|
509
|
+
Dec 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
510
|
+
Nov 2017 |██████∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
500
511
|
```
|
501
512
|
|
502
|
-
The dots represent the total activities
|
513
|
+
The dots represent the total activities of each month, so you can get a feel for the
|
503
514
|
proportion of activities with that friend vs. the total you've logged.
|
504
515
|
|
505
516
|
You can also graph a certain group of friends:
|
506
517
|
|
507
518
|
```bash
|
508
519
|
$ friends graph --with George --with Grace
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
520
|
+
Feb 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
521
|
+
Jan 2018 |███████████∙∙∙∙∙∙∙∙∙|
|
522
|
+
Dec 2017 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
523
|
+
Nov 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
513
524
|
```
|
514
525
|
|
515
526
|
Or graph only activities with a certain tag:
|
516
527
|
|
517
528
|
```bash
|
518
529
|
$ friends graph --tagged food
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
530
|
+
Feb 2018 |██████∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
531
|
+
Jan 2018 |█████████∙∙∙∙∙∙∙∙∙∙∙|
|
532
|
+
Dec 2017 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
533
|
+
Nov 2017 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
523
534
|
```
|
524
535
|
|
525
536
|
Or with multiple tags:
|
526
537
|
|
527
538
|
```bash
|
528
|
-
$ friends graph --tagged
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
539
|
+
$ friends graph --tagged fun --tagged work
|
540
|
+
Feb 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
541
|
+
Jan 2018 |█∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
542
|
+
Dec 2017 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
543
|
+
Nov 2017 |█∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
533
544
|
```
|
534
545
|
|
535
546
|
Or graph only activities in a certain location:
|
536
547
|
|
537
548
|
```bash
|
538
549
|
$ friends graph --in Paris
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
550
|
+
Feb 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
551
|
+
Jan 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
552
|
+
Dec 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
553
|
+
Nov 2017 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
543
554
|
```
|
544
555
|
|
545
556
|
Or graph only activities on or after a certain date:
|
546
557
|
|
547
558
|
```bash
|
548
|
-
$ friends graph --since 'January
|
549
|
-
|
550
|
-
|
559
|
+
$ friends graph --since 'January 21st 2018'
|
560
|
+
Feb 2018 |███████∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
561
|
+
Jan 2018 |█∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
551
562
|
```
|
552
563
|
|
553
564
|
Or graph only activities before or on a certain date:
|
554
565
|
|
555
566
|
```bash
|
556
567
|
$ friends graph --until 'January 1st 2018'
|
557
|
-
|
558
|
-
Dec 2017
|
559
|
-
|
568
|
+
Jan 2018 |█████████████∙∙∙∙∙∙∙|
|
569
|
+
Dec 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
570
|
+
Nov 2017 |█████████∙∙∙∙∙∙∙∙∙∙∙|
|
560
571
|
```
|
561
572
|
|
562
573
|
And you can use multiple of these flags together:
|
563
574
|
|
564
575
|
```bash
|
565
|
-
$ friends graph --in Paris --tagged food --with George --since 'Jan 2018'
|
576
|
+
$ friends graph --unscaled --in Paris --tagged food --with George --since 'Jan 2018'
|
566
577
|
Jan 2018 |∙∙∙∙∙∙∙|
|
567
578
|
Fen 2017 |█∙∙∙∙|
|
568
579
|
```
|
@@ -639,7 +650,7 @@ $ friends list activities --tagged food
|
|
639
650
|
Or use more than one tag:
|
640
651
|
|
641
652
|
```bash
|
642
|
-
$ friends list activities --tagged
|
653
|
+
$ friends list activities --tagged fun --tagged work
|
643
654
|
2018-07-04: Summer picnic with @work colleagues. @fun
|
644
655
|
```
|
645
656
|
|
data/bin/friends
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
if ENV["TRAVIS"] == "true"
|
4
|
+
if ENV["TRAVIS"] == "true" && ENV["CODE_COVERAGE"] == "true"
|
5
5
|
require "simplecov"
|
6
6
|
SimpleCov.formatter = SimpleCov::Formatter::SimpleFormatter
|
7
7
|
SimpleCov.command_name Process.pid.to_s
|
data/friends.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency "tty-pager", "~> 0.11"
|
35
35
|
|
36
36
|
spec.add_development_dependency "bundler", ">= 1.6"
|
37
|
-
spec.add_development_dependency "
|
37
|
+
spec.add_development_dependency "codecov", "~> 0.1.14"
|
38
38
|
spec.add_development_dependency "minitest", "~> 5.5"
|
39
39
|
spec.add_development_dependency "minitest-proveit", "~> 1.0"
|
40
40
|
spec.add_development_dependency "rake", "~> 12.3"
|
@@ -29,13 +29,18 @@ command :graph do |graph|
|
|
29
29
|
desc: "Graph activities before or on the given date",
|
30
30
|
type: InputDate
|
31
31
|
|
32
|
+
graph.switch [:unscaled],
|
33
|
+
negatable: false,
|
34
|
+
desc: "Do not scale the bars in the graph"
|
35
|
+
|
32
36
|
graph.action do |_, options|
|
33
37
|
@introvert.graph(
|
34
38
|
with: options[:with],
|
35
39
|
location_name: options[:in],
|
36
40
|
tagged: options[:tagged],
|
37
41
|
since_date: options[:since],
|
38
|
-
until_date: options[:until]
|
42
|
+
until_date: options[:until],
|
43
|
+
unscaled: options[:unscaled]
|
39
44
|
)
|
40
45
|
end
|
41
46
|
end
|
data/lib/friends/event.rb
CHANGED
@@ -146,12 +146,12 @@ module Friends
|
|
146
146
|
# @param tag [String] the tag to test, of the form "@tag"
|
147
147
|
# @return [Boolean] true iff this activity includes the given tag
|
148
148
|
def includes_tag?(tag)
|
149
|
-
tags.include? tag
|
149
|
+
tags.include? tag.downcase
|
150
150
|
end
|
151
151
|
|
152
152
|
# @return [Set] all tags in this activity (including the "@")
|
153
153
|
def tags
|
154
|
-
Set.new(@description.scan(TAG_REGEX))
|
154
|
+
Set.new(@description.scan(TAG_REGEX).map(&:downcase))
|
155
155
|
end
|
156
156
|
|
157
157
|
# Find the names of all friends in this description.
|
data/lib/friends/graph.rb
CHANGED
@@ -5,11 +5,17 @@
|
|
5
5
|
module Friends
|
6
6
|
class Graph
|
7
7
|
DATE_FORMAT = "%b %Y".freeze
|
8
|
+
SCALED_SIZE = 20
|
8
9
|
|
9
|
-
# @param
|
10
|
-
|
10
|
+
# @param filtered_activities [Array<Friends::Activity>] a list of activities to highlight in
|
11
|
+
# the graph (may be the same as `all_activities`)
|
12
|
+
# @param all_activities [Array<Friends::Activity>] a list of activities to graph
|
13
|
+
# @param unscaled [Boolean] true iff we should show the absolute size of bars in the graph
|
14
|
+
# rather than a scaled version
|
15
|
+
def initialize(filtered_activities:, all_activities:, unscaled:)
|
11
16
|
@filtered_activities = filtered_activities
|
12
17
|
@all_activities = all_activities
|
18
|
+
@unscaled = unscaled
|
13
19
|
|
14
20
|
return if @all_activities.empty?
|
15
21
|
|
@@ -19,7 +25,18 @@ module Friends
|
|
19
25
|
|
20
26
|
# @return [Array<String>] the output to print, with colors
|
21
27
|
def output
|
22
|
-
|
28
|
+
hash = to_h
|
29
|
+
global_total = hash.max_by { |_, (_, val)| val }.last.last unless @unscaled || hash.empty?
|
30
|
+
|
31
|
+
hash.map do |month, (filtered_count, total_count)|
|
32
|
+
unless @unscaled
|
33
|
+
# We want to use rationals for math so we can round up as well
|
34
|
+
# as down (instead of int division), for more accurate graphing.
|
35
|
+
# Floats are less trustworthy and could give results < 0 or > total_count
|
36
|
+
filtered_count = Rational(filtered_count * SCALED_SIZE, global_total).round
|
37
|
+
total_count = SCALED_SIZE
|
38
|
+
end
|
39
|
+
|
23
40
|
str = "#{month} |"
|
24
41
|
str += Array.new(filtered_count) do |count|
|
25
42
|
Paint["█", color(count)]
|
data/lib/friends/introvert.rb
CHANGED
@@ -264,7 +264,7 @@ module Friends
|
|
264
264
|
# Filter by tag if param is passed.
|
265
265
|
unless tagged.empty?
|
266
266
|
fs = fs.select do |friend|
|
267
|
-
tagged.all? { |tag| friend.tags.include? tag }
|
267
|
+
tagged.all? { |tag| friend.tags.map(&:downcase).include? tag.downcase }
|
268
268
|
end
|
269
269
|
end
|
270
270
|
|
@@ -317,9 +317,11 @@ module Friends
|
|
317
317
|
# unfiltered
|
318
318
|
# @param since_date [Date] a date on or after which to find activities, or nil for unfiltered
|
319
319
|
# @param until_date [Date] a date before or on which to find activities, or nil for unfiltered
|
320
|
+
# @param unscaled [Boolean] true iff we should show the absolute size of bars in the graph
|
321
|
+
# rather than a scaled version
|
320
322
|
# @raise [FriendsError] if friend, location or tag cannot be found or
|
321
323
|
# is ambiguous
|
322
|
-
def graph(with:, location_name:, tagged:, since_date:, until_date:)
|
324
|
+
def graph(with:, location_name:, tagged:, since_date:, until_date:, unscaled:)
|
323
325
|
filtered_activities_to_graph = filtered_events(
|
324
326
|
events: @activities,
|
325
327
|
with: with,
|
@@ -340,13 +342,18 @@ module Friends
|
|
340
342
|
with: [],
|
341
343
|
location_name: nil,
|
342
344
|
tagged: [],
|
343
|
-
|
344
|
-
|
345
|
+
|
346
|
+
# By including all activities for the "fencepost" months in our totals,
|
347
|
+
# we prevent those months from being always "full" in the graph
|
348
|
+
# because all filtered events will match the criteria.
|
349
|
+
since_date: (since_date.prev_day(since_date.day - 1) if since_date),
|
350
|
+
until_date: (until_date.prev_day(until_date.day - 1).next_month.prev_day if until_date)
|
345
351
|
)
|
346
352
|
|
347
353
|
Graph.new(
|
348
354
|
filtered_activities: filtered_activities_to_graph,
|
349
|
-
all_activities: all_activities_to_graph
|
355
|
+
all_activities: all_activities_to_graph,
|
356
|
+
unscaled: unscaled
|
350
357
|
).output.each { |line| @output << line }
|
351
358
|
end
|
352
359
|
|
data/lib/friends/version.rb
CHANGED
data/test/commands/graph_spec.rb
CHANGED
@@ -3,7 +3,8 @@
|
|
3
3
|
require "./test/helper"
|
4
4
|
|
5
5
|
clean_describe "graph" do
|
6
|
-
subject { run_cmd("graph") }
|
6
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled}") }
|
7
|
+
let(:unscaled) { false }
|
7
8
|
|
8
9
|
describe "when file does not exist" do
|
9
10
|
let(:content) { nil }
|
@@ -46,8 +47,29 @@ clean_describe "graph" do
|
|
46
47
|
FILE
|
47
48
|
end
|
48
49
|
|
49
|
-
it "graphs all activities" do
|
50
|
+
it "graphs all activities, scaled" do
|
50
51
|
stdout_only <<-OUTPUT
|
52
|
+
Nov 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
53
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
54
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
55
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
56
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
57
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
58
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
59
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
60
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
61
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
62
|
+
Jan 2015 |████████████████████
|
63
|
+
Dec 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
64
|
+
Nov 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
65
|
+
OUTPUT
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "--unscaled" do
|
69
|
+
let(:unscaled) { true }
|
70
|
+
|
71
|
+
it "graphs all activities, unscaled" do
|
72
|
+
stdout_only <<-OUTPUT
|
51
73
|
Nov 2015 |█
|
52
74
|
Oct 2015 |
|
53
75
|
Sep 2015 |
|
@@ -61,13 +83,15 @@ Feb 2015 |
|
|
61
83
|
Jan 2015 |████
|
62
84
|
Dec 2014 |█
|
63
85
|
Nov 2014 |█
|
64
|
-
|
86
|
+
OUTPUT
|
87
|
+
end
|
65
88
|
end
|
66
89
|
|
67
90
|
describe "when there are more activities than colors" do
|
68
91
|
let(:content) do
|
69
92
|
(["### Activities:"] + (["- 2017-06-01: Did something."] * 100)).join("\n")
|
70
93
|
end
|
94
|
+
let(:unscaled) { true }
|
71
95
|
|
72
96
|
it "displays the correct number of activities" do
|
73
97
|
stdout_only("Jun 2017 |" + ("█" * 100))
|
@@ -75,7 +99,7 @@ Nov 2014 |█
|
|
75
99
|
end
|
76
100
|
|
77
101
|
describe "--in" do
|
78
|
-
subject { run_cmd("graph --in #{location_name}") }
|
102
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --in #{location_name}") }
|
79
103
|
|
80
104
|
describe "when location does not exist" do
|
81
105
|
let(:location_name) { "Garbage" }
|
@@ -86,8 +110,30 @@ Nov 2014 |█
|
|
86
110
|
|
87
111
|
describe "when location exists" do
|
88
112
|
let(:location_name) { "paris" }
|
89
|
-
|
113
|
+
|
114
|
+
it "matches location case-insensitively and scales the graph" do
|
90
115
|
stdout_only <<-OUTPUT
|
116
|
+
Nov 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
117
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
118
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
119
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
120
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
121
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
122
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
123
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
124
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
125
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
126
|
+
Jan 2015 |███████████████∙∙∙∙∙|
|
127
|
+
Dec 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
128
|
+
Nov 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
129
|
+
OUTPUT
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "--unscaled" do
|
133
|
+
let(:unscaled) { true }
|
134
|
+
|
135
|
+
it "matches location case-insensitively and does not scale graph" do
|
136
|
+
stdout_only <<-OUTPUT
|
91
137
|
Nov 2015 |∙|
|
92
138
|
Oct 2015 |
|
93
139
|
Sep 2015 |
|
@@ -101,13 +147,14 @@ Feb 2015 |
|
|
101
147
|
Jan 2015 |███∙|
|
102
148
|
Dec 2014 |█
|
103
149
|
Nov 2014 |∙|
|
104
|
-
|
150
|
+
OUTPUT
|
151
|
+
end
|
105
152
|
end
|
106
153
|
end
|
107
154
|
end
|
108
155
|
|
109
156
|
describe "--with" do
|
110
|
-
subject { run_cmd("graph --with #{friend_name}") }
|
157
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --with #{friend_name}") }
|
111
158
|
|
112
159
|
describe "when friend does not exist" do
|
113
160
|
let(:friend_name) { "Garbage" }
|
@@ -128,8 +175,29 @@ Nov 2014 |∙|
|
|
128
175
|
describe "when friend name matches one friend" do
|
129
176
|
let(:friend_name) { "george" }
|
130
177
|
|
131
|
-
it "matches friend case-insensitively" do
|
178
|
+
it "matches friend case-insensitively and scales the graph" do
|
132
179
|
stdout_only <<-OUTPUT
|
180
|
+
Nov 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
181
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
182
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
183
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
184
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
185
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
186
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
187
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
188
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
189
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
190
|
+
Jan 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
191
|
+
Dec 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
192
|
+
Nov 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
193
|
+
OUTPUT
|
194
|
+
end
|
195
|
+
|
196
|
+
describe "--unscaled" do
|
197
|
+
let(:unscaled) { true }
|
198
|
+
|
199
|
+
it "matches friend case-insensitively and does not scale graph" do
|
200
|
+
stdout_only <<-OUTPUT
|
133
201
|
Nov 2015 |∙|
|
134
202
|
Oct 2015 |
|
135
203
|
Sep 2015 |
|
@@ -143,17 +211,44 @@ Feb 2015 |
|
|
143
211
|
Jan 2015 |█∙∙∙|
|
144
212
|
Dec 2014 |∙|
|
145
213
|
Nov 2014 |█
|
146
|
-
|
214
|
+
OUTPUT
|
215
|
+
end
|
147
216
|
end
|
148
217
|
end
|
149
218
|
|
150
219
|
describe "when more than one friend name is passed" do
|
151
|
-
subject
|
220
|
+
subject do
|
221
|
+
run_cmd(
|
222
|
+
"graph#{' --unscaled' if unscaled} --with #{friend_name1} --with #{friend_name2}"
|
223
|
+
)
|
224
|
+
end
|
225
|
+
|
152
226
|
let(:friend_name1) { "george" }
|
153
227
|
let(:friend_name2) { "grace" }
|
154
228
|
|
155
|
-
it "matches all friends case-insensitively" do
|
229
|
+
it "matches all friends case-insensitively and scales the graph" do
|
156
230
|
stdout_only <<-OUTPUT
|
231
|
+
Nov 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
232
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
233
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
234
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
235
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
236
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
237
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
238
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
239
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
240
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
241
|
+
Jan 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
242
|
+
Dec 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
243
|
+
Nov 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
244
|
+
OUTPUT
|
245
|
+
end
|
246
|
+
|
247
|
+
describe "--unscaled" do
|
248
|
+
let(:unscaled) { true }
|
249
|
+
|
250
|
+
it "matches all friends case-insensitively and does not scale graph" do
|
251
|
+
stdout_only <<-OUTPUT
|
157
252
|
Nov 2015 |∙|
|
158
253
|
Oct 2015 |
|
159
254
|
Sep 2015 |
|
@@ -167,16 +262,38 @@ Feb 2015 |
|
|
167
262
|
Jan 2015 |█∙∙∙|
|
168
263
|
Dec 2014 |∙|
|
169
264
|
Nov 2014 |∙|
|
170
|
-
|
265
|
+
OUTPUT
|
266
|
+
end
|
171
267
|
end
|
172
268
|
end
|
173
269
|
end
|
174
270
|
|
175
271
|
describe "--tagged" do
|
176
|
-
subject { run_cmd("graph --tagged
|
272
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --tagged Food") }
|
177
273
|
|
178
|
-
it "matches tag case-
|
274
|
+
it "matches tag case-insensitively and scales the graph" do
|
179
275
|
stdout_only <<-OUTPUT
|
276
|
+
Nov 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
277
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
278
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
279
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
280
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
281
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
282
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
283
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
284
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
285
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
286
|
+
Jan 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
287
|
+
Dec 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
288
|
+
Nov 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
289
|
+
OUTPUT
|
290
|
+
end
|
291
|
+
|
292
|
+
describe "--unscaled" do
|
293
|
+
let(:unscaled) { true }
|
294
|
+
|
295
|
+
it "matches tag case-insensitively and does not scale graph" do
|
296
|
+
stdout_only <<-OUTPUT
|
180
297
|
Nov 2015 |█
|
181
298
|
Oct 2015 |
|
182
299
|
Sep 2015 |
|
@@ -191,15 +308,37 @@ Jan 2015 |█∙∙∙|
|
|
191
308
|
Dec 2014 |█
|
192
309
|
Nov 2014 |∙|
|
193
310
|
OUTPUT
|
311
|
+
end
|
194
312
|
end
|
195
313
|
|
196
314
|
describe "when more than one tag is passed" do
|
197
|
-
subject { run_cmd("graph --tagged #{tag1} --tagged #{tag2}") }
|
198
|
-
let(:tag1) { "
|
199
|
-
let(:tag2) { "
|
315
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --tagged #{tag1} --tagged #{tag2}") }
|
316
|
+
let(:tag1) { "Food" }
|
317
|
+
let(:tag2) { "PARTYING" }
|
200
318
|
|
201
|
-
it "matches all tags case-
|
319
|
+
it "matches all tags case-insensitively and scales the graph" do
|
202
320
|
stdout_only <<-OUTPUT
|
321
|
+
Nov 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
322
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
323
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
324
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
325
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
326
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
327
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
328
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
329
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
330
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
331
|
+
Jan 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
332
|
+
Dec 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
333
|
+
Nov 2014 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
334
|
+
OUTPUT
|
335
|
+
end
|
336
|
+
|
337
|
+
describe "--unscaled" do
|
338
|
+
let(:unscaled) { true }
|
339
|
+
|
340
|
+
it "matches all tags case-insensitively and does not scale graph" do
|
341
|
+
stdout_only <<-OUTPUT
|
203
342
|
Nov 2015 |∙|
|
204
343
|
Oct 2015 |
|
205
344
|
Sep 2015 |
|
@@ -213,16 +352,36 @@ Feb 2015 |
|
|
213
352
|
Jan 2015 |∙∙∙∙|
|
214
353
|
Dec 2014 |█
|
215
354
|
Nov 2014 |∙|
|
216
|
-
|
355
|
+
OUTPUT
|
356
|
+
end
|
217
357
|
end
|
218
358
|
end
|
219
359
|
end
|
220
360
|
|
221
361
|
describe "--since" do
|
222
|
-
subject { run_cmd("graph --since 'January 6th 2015'") }
|
362
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --since 'January 6th 2015'") }
|
223
363
|
|
224
|
-
it "graphs activities on and after the specified date" do
|
364
|
+
it "graphs activities on and after the specified date and scales the graph" do
|
225
365
|
stdout_only <<-OUTPUT
|
366
|
+
Nov 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
367
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
368
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
369
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
370
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
371
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
372
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
373
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
374
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
375
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
376
|
+
Jan 2015 |███████████████∙∙∙∙∙|
|
377
|
+
OUTPUT
|
378
|
+
end
|
379
|
+
|
380
|
+
describe "--unscaled" do
|
381
|
+
let(:unscaled) { true }
|
382
|
+
|
383
|
+
it "graphs activities on and after the specified date and does not scale graph" do
|
384
|
+
stdout_only <<-OUTPUT
|
226
385
|
Nov 2015 |█
|
227
386
|
Oct 2015 |
|
228
387
|
Sep 2015 |
|
@@ -233,30 +392,68 @@ May 2015 |
|
|
233
392
|
Apr 2015 |
|
234
393
|
Mar 2015 |
|
235
394
|
Feb 2015 |
|
236
|
-
Jan 2015
|
237
|
-
|
395
|
+
Jan 2015 |███∙|
|
396
|
+
OUTPUT
|
397
|
+
end
|
238
398
|
end
|
239
399
|
end
|
240
400
|
|
241
401
|
describe "--until" do
|
242
|
-
subject { run_cmd("graph --until 'January 6th 2015'") }
|
402
|
+
subject { run_cmd("graph#{' --unscaled' if unscaled} --until 'January 6th 2015'") }
|
243
403
|
|
244
|
-
it "graphs activities before and on the specified date" do
|
404
|
+
it "graphs activities before and on the specified date and scales the graph" do
|
245
405
|
stdout_only <<-OUTPUT
|
246
|
-
Jan 2015
|
406
|
+
Jan 2015 |███████████████∙∙∙∙∙|
|
407
|
+
Dec 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
408
|
+
Nov 2014 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
409
|
+
OUTPUT
|
410
|
+
end
|
411
|
+
|
412
|
+
describe "--unscaled" do
|
413
|
+
let(:unscaled) { true }
|
414
|
+
|
415
|
+
it "graphs activities before and on the specified date and does not scale graph" do
|
416
|
+
stdout_only <<-OUTPUT
|
417
|
+
Jan 2015 |███∙|
|
247
418
|
Dec 2014 |█
|
248
419
|
Nov 2014 |█
|
249
|
-
|
420
|
+
OUTPUT
|
421
|
+
end
|
250
422
|
end
|
251
423
|
end
|
252
424
|
|
253
425
|
describe "combining filters" do
|
254
|
-
subject
|
426
|
+
subject do
|
427
|
+
run_cmd("graph#{' --unscaled' if unscaled} --since 'January 6th 2015' --with Grace")
|
428
|
+
end
|
255
429
|
|
256
|
-
it "only shows other activities within the same period as the filtered ones"
|
430
|
+
it "only shows other activities within the same period as the filtered ones and scales the "\
|
431
|
+
"graph" do
|
257
432
|
# If we just rounded to the month, there would be three unfiltered activities in
|
258
433
|
# January displayed (due to the one on 1/5/2015). Instead, we correctly display two.
|
259
434
|
stdout_only <<-OUTPUT
|
435
|
+
Nov 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
436
|
+
Oct 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
437
|
+
Sep 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
438
|
+
Aug 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
439
|
+
Jul 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
440
|
+
Jun 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
441
|
+
May 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
442
|
+
Apr 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
443
|
+
Mar 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
444
|
+
Feb 2015 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
445
|
+
Jan 2015 |█████∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
|
446
|
+
OUTPUT
|
447
|
+
end
|
448
|
+
|
449
|
+
describe "--unscaled" do
|
450
|
+
let(:unscaled) { true }
|
451
|
+
|
452
|
+
it "only shows other activities within the same period as the filtered ones and does not "\
|
453
|
+
"scale graph" do
|
454
|
+
# If we just rounded to the month, there would be three unfiltered activities in
|
455
|
+
# January displayed (due to the one on 1/5/2015). Instead, we correctly display two.
|
456
|
+
stdout_only <<-OUTPUT
|
260
457
|
Nov 2015 |█
|
261
458
|
Oct 2015 |
|
262
459
|
Sep 2015 |
|
@@ -267,8 +464,9 @@ May 2015 |
|
|
267
464
|
Apr 2015 |
|
268
465
|
Mar 2015 |
|
269
466
|
Feb 2015 |
|
270
|
-
Jan 2015
|
271
|
-
|
467
|
+
Jan 2015 |█∙∙∙|
|
468
|
+
OUTPUT
|
469
|
+
end
|
272
470
|
end
|
273
471
|
end
|
274
472
|
end
|
@@ -92,9 +92,9 @@ clean_describe "list activities" do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
describe "--tagged" do
|
95
|
-
subject { run_cmd("list activities --tagged
|
95
|
+
subject { run_cmd("list activities --tagged FOOD") }
|
96
96
|
|
97
|
-
it "matches tag case-
|
97
|
+
it "matches tag case-insensitively" do
|
98
98
|
stdout_only <<-OUTPUT
|
99
99
|
2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
|
100
100
|
2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute. @food
|
@@ -103,8 +103,8 @@ clean_describe "list activities" do
|
|
103
103
|
|
104
104
|
describe "when more than one tag is passed" do
|
105
105
|
subject { run_cmd("list activities --tagged #{tag1} --tagged #{tag2}") }
|
106
|
-
let(:tag1) { "
|
107
|
-
let(:tag2) { "
|
106
|
+
let(:tag1) { "Food" }
|
107
|
+
let(:tag2) { "PARTYING" }
|
108
108
|
let(:content) do
|
109
109
|
<<-FILE
|
110
110
|
### Activities:
|
@@ -120,7 +120,7 @@ clean_describe "list activities" do
|
|
120
120
|
FILE
|
121
121
|
end
|
122
122
|
|
123
|
-
it "matches all tags case-
|
123
|
+
it "matches all tags case-insensitively" do
|
124
124
|
stdout_only(
|
125
125
|
"2014-12-31: Celebrated the new year in Paris with Marie Curie. @partying @food"
|
126
126
|
)
|
@@ -69,9 +69,9 @@ Norman Borlaug (a.k.a. Norm) @science @science:outdoors @science:outdoors:agrono
|
|
69
69
|
end
|
70
70
|
|
71
71
|
describe "--tagged" do
|
72
|
-
subject { run_cmd("list friends --tagged
|
72
|
+
subject { run_cmd("list friends --tagged scIence") }
|
73
73
|
|
74
|
-
it "matches tag case-
|
74
|
+
it "matches tag case-insensitively" do
|
75
75
|
stdout_only <<-OUTPUT
|
76
76
|
Marie Curie
|
77
77
|
Grace Hopper
|
@@ -81,8 +81,8 @@ Norman Borlaug
|
|
81
81
|
|
82
82
|
describe "when more than one tag is passed" do
|
83
83
|
subject { run_cmd("list friends --tagged #{tag1} --tagged #{tag2}") }
|
84
|
-
let(:tag1) { "
|
85
|
-
let(:tag2) { "
|
84
|
+
let(:tag1) { "Science" }
|
85
|
+
let(:tag2) { "NAVY" }
|
86
86
|
let(:content) do
|
87
87
|
<<-FILE
|
88
88
|
### Activities:
|
@@ -96,7 +96,7 @@ Norman Borlaug
|
|
96
96
|
FILE
|
97
97
|
end
|
98
98
|
|
99
|
-
it "matches all tags case-
|
99
|
+
it "matches all tags case-insensitively" do
|
100
100
|
stdout_only <<-OUTPUT
|
101
101
|
Grace Hopper
|
102
102
|
Neil Armstrong
|
@@ -95,9 +95,9 @@ clean_describe "list notes" do
|
|
95
95
|
end
|
96
96
|
|
97
97
|
describe "--tagged" do
|
98
|
-
subject { run_cmd("list notes --tagged
|
98
|
+
subject { run_cmd("list notes --tagged School") }
|
99
99
|
|
100
|
-
it "matches tag case-
|
100
|
+
it "matches tag case-insensitively" do
|
101
101
|
stdout_only <<-OUTPUT
|
102
102
|
2015-06-06: Marie Curie just got accepted into a PhD program in Paris. @school
|
103
103
|
2017-03-12: Marie Curie completed her PhD in record time. @school
|
@@ -106,8 +106,8 @@ clean_describe "list notes" do
|
|
106
106
|
|
107
107
|
describe "when more than one tag is passed" do
|
108
108
|
subject { run_cmd("list notes --tagged #{tag1} --tagged #{tag2}") }
|
109
|
-
let(:tag1) { "
|
110
|
-
let(:tag2) { "
|
109
|
+
let(:tag1) { "Science" }
|
110
|
+
let(:tag2) { "SCHOOL" }
|
111
111
|
let(:content) do
|
112
112
|
<<-FILE
|
113
113
|
### Notes:
|
@@ -123,7 +123,7 @@ clean_describe "list notes" do
|
|
123
123
|
FILE
|
124
124
|
end
|
125
125
|
|
126
|
-
it "matches all tags case-
|
126
|
+
it "matches all tags case-insensitively" do
|
127
127
|
stdout_only <<-OUTPUT
|
128
128
|
2015-11-01: Grace Hopper just started a PhD program. @school @science
|
129
129
|
2014-12-31: Marie Curie completed her PhD today! @science @school
|
data/test/helper.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
if ENV["TRAVIS"] == "true"
|
3
|
+
if ENV["TRAVIS"] == "true" && ENV["CODE_COVERAGE"] == "true"
|
4
4
|
require "simplecov"
|
5
|
-
require "
|
6
|
-
SimpleCov.formatter =
|
5
|
+
require "codecov"
|
6
|
+
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
7
7
|
SimpleCov.start do
|
8
8
|
add_filter "/test/"
|
9
9
|
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.45'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Evelyn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chronic
|
@@ -101,19 +101,19 @@ dependencies:
|
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '1.6'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
104
|
+
name: codecov
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
109
|
+
version: 0.1.14
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
116
|
+
version: 0.1.14
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: minitest
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|