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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28ee18ecc2add1c45714c81100ead732d85c7ff7
4
- data.tar.gz: a6eb3b3a99415c702c946409af5d80767cc7c8aa
3
+ metadata.gz: eb0258b3dca86e0aba3b852b4d58462e2e3570f6
4
+ data.tar.gz: cbb2091ca9b77764999b5667b4a00c309ce1263d
5
5
  SHA512:
6
- metadata.gz: 5e4643dc1724df57269c5172eb76316d52e821eed90367f88b18956dec2c28f293abc42e7e310145e7aa320cf5dc3aeb33668ff4078c7833f2fcb1fbee89e6f6
7
- data.tar.gz: ea8d089451d5b2e29873aff17592613b9d99799a784f05ab43a9847441c7936de11e411cebdae3aae14d4bafc85e928d1418db12bbcfca0b74fb80803b642074
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
 
@@ -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
@@ -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 Status](https://coveralls.io/repos/github/JacobEvelyn/friends/badge.svg)](https://coveralls.io/github/JacobEvelyn/friends)
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
- Nov 2017 |███
487
- Dec 2017 |██
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
- Feb 2018 |█████
499
+ Dec 2017 |█
500
+ Nov 2017 |███
490
501
  ```
491
502
 
492
- Or graph only activities with a certain friend:
503
+ You can graph only activities with a certain friend:
493
504
 
494
505
  ```bash
495
506
  $ friends graph --with George
496
- Nov 2017 |█∙∙|
497
- Dec 2017 |∙∙|
498
- Jan 2018 |█████∙∙|
499
- Feb 2018 |███∙∙|
507
+ Feb 2018 |∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
508
+ Jan 2018 |█████████████████∙∙∙|
509
+ Dec 2017 |███∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
510
+ Nov 2017 |██████∙∙∙∙∙∙∙∙∙∙∙∙∙∙|
500
511
  ```
501
512
 
502
- The dots represent the total activities that month, so you can get a feel for the
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
- Nov 2017 |∙∙∙|
510
- Dec 2017 |∙∙|
511
- Jan 2018 |█∙∙∙∙∙∙|
512
- Feb 2018 |∙∙∙∙∙|
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
- Nov 2017 |█∙∙|
520
- Dec 2017 |∙∙|
521
- Jan 2018 |∙∙∙∙∙∙∙|
522
- Feb 2018 |███∙∙|
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 @fun --tagged @work
529
- Nov 2017 |∙∙∙|
530
- Dec 2017 |█∙|
531
- Jan 2018 |∙∙∙∙∙∙∙|
532
- Feb 2018 |█∙∙∙∙|
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
- Nov 2017 |█∙∙|
540
- Dec 2017 |∙∙|
541
- Jan 2018 |∙∙∙∙∙∙∙|
542
- Feb 2018 |█∙∙∙∙|
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 1st 2018'
549
- Jan 2018 |███████
550
- Feb 2018 |█████
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
- Nov 2017 |███
558
- Dec 2017 |██
559
- Jan 2018 |███████
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 @fun --tagged @work
653
+ $ friends list activities --tagged fun --tagged work
643
654
  2018-07-04: Summer picnic with @work colleagues. @fun
644
655
  ```
645
656
 
@@ -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
@@ -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 "coveralls", "~> 0.8"
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
@@ -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.
@@ -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 activities [Array<Friends::Activity>] a list of activities to graph
10
- def initialize(filtered_activities:, all_activities:)
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
- to_h.map do |month, (filtered_count, total_count)|
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)]
@@ -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
- since_date: since_date,
344
- until_date: until_date
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Friends
4
- VERSION = "0.44".freeze
4
+ VERSION = "0.45".freeze
5
5
  end
@@ -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
- OUTPUT
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
- it "matches location case-insensitively" do
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
- OUTPUT
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
- OUTPUT
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 { run_cmd("graph --with #{friend_name1} --with #{friend_name2}") }
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
- OUTPUT
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 food") }
272
+ subject { run_cmd("graph#{' --unscaled' if unscaled} --tagged Food") }
177
273
 
178
- it "matches tag case-sensitively" do
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) { "food" }
199
- let(:tag2) { "partying" }
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-sensitively" do
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
- OUTPUT
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
- OUTPUT
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
- OUTPUT
420
+ OUTPUT
421
+ end
250
422
  end
251
423
  end
252
424
 
253
425
  describe "combining filters" do
254
- subject { run_cmd("graph --since 'January 6th 2015' --with Grace") }
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" do
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
- OUTPUT
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 food") }
95
+ subject { run_cmd("list activities --tagged FOOD") }
96
96
 
97
- it "matches tag case-sensitively" do
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) { "food" }
107
- let(:tag2) { "partying" }
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-sensitively" do
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 science") }
72
+ subject { run_cmd("list friends --tagged scIence") }
73
73
 
74
- it "matches tag case-sensitively" do
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) { "science" }
85
- let(:tag2) { "navy" }
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-sensitively" do
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 school") }
98
+ subject { run_cmd("list notes --tagged School") }
99
99
 
100
- it "matches tag case-sensitively" do
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) { "science" }
110
- let(:tag2) { "school" }
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-sensitively" do
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
@@ -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 "coveralls"
6
- SimpleCov.formatter = Coveralls::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.44'
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-12 00:00:00.000000000 Z
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: coveralls
104
+ name: codecov
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.8'
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: '0.8'
116
+ version: 0.1.14
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: minitest
119
119
  requirement: !ruby/object:Gem::Requirement