friends 0.44 → 0.45
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.
- 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
|
[](https://badge.fury.io/rb/friends)
|
2
|
-
[](https://codecov.io/gh/JacobEvelyn/friends)
|
3
3
|
[](https://travis-ci.org/JacobEvelyn/friends)
|
4
4
|
[](http://clayallsopp.github.io/readme-score?url=JacobEvelyn/friends)
|
5
5
|
[](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
|