time_distribution 2.2.0 → 2.3.0

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: 9692efc1b44adc211fba77adeccdafa2430c81d2
4
- data.tar.gz: e7978438e95415dfe89328420cbfdfbd6acb7331
3
+ metadata.gz: 2b16fb3cb13125af20b1382020d1d46191cca65e
4
+ data.tar.gz: 49b34753244271ade8ca898f2e529225caab6a46
5
5
  SHA512:
6
- metadata.gz: 80f72a82d439b9f0a2e964d22caf2478a8a5d72d4886f57a0958a238ab01159a3055c76163083892e85a448d1a2a619f9bee3e3023ef6bc86bdcabdc26b5aa70
7
- data.tar.gz: 4d88e5afb1142fa65d999b990cc8a53bf43519e48a46a767b1432cb0df4c6b68956c377ee441f56ccbe86aa4c0be62640e2d651f395d0f348652ec433135ad74
6
+ metadata.gz: 8d01ea7697d035587924f1f71fdb1f9b200b22d770ea230a12a5bf543c3c4efd445832f0b33d44a8e8970b5e1aab622247337ac499e66d759649a85204cef56b
7
+ data.tar.gz: 53b9f6ceb4b18f785f37594a75853ef3b29ee80f17e0fbdbfdf2b19f221f96df0a7d33ef6602aea55462bbfe8809073449b0c0b7cb179cc1c5536a2711ae1b12
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.0
5
+ before_install: gem install bundler -v 1.12.5
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # TimeDistribution
2
2
 
3
- TODO: Write a gem description
3
+ [![Build Status](https://travis-ci.org/dmorrill10/time_distribution.svg?branch=master)](https://travis-ci.org/dmorrill10/time_distribution)
4
+
5
+ A small library for associating time intervals with tasks in a human friendly
6
+ way.
4
7
 
5
8
  ## Installation
6
9
 
@@ -17,6 +17,7 @@ module TimeDistribution
17
17
  # @param [#to_s] desc The task's description.
18
18
  def initialize(subject, time_taken, desc)
19
19
  @subject = subject
20
+ @duration_string = time_taken
20
21
  @time_taken = SmartDuration.parse(time_taken)
21
22
  @desc = desc
22
23
  end
@@ -31,6 +32,14 @@ module TimeDistribution
31
32
 
32
33
  def to_s() "#{to_headline}: #{to_desc}" end
33
34
 
35
+ def to_h
36
+ {
37
+ 'subject' => @subject.to_s,
38
+ 'duration' => @duration_string,
39
+ 'description' => @desc
40
+ }
41
+ end
42
+
34
43
  def to_desc() @desc.strip end
35
44
 
36
45
  def to_headline
@@ -40,4 +40,4 @@ module TimeDistribution
40
40
  end
41
41
  end
42
42
  end
43
- end
43
+ end
@@ -1,3 +1,3 @@
1
1
  module TimeDistribution
2
- VERSION = "2.2.0"
2
+ VERSION = "2.3.0"
3
3
  end
@@ -26,11 +26,13 @@ module TimeDistribution
26
26
  end
27
27
  end
28
28
 
29
- def ==(other)
30
- (
31
- @date == other.date &&
32
- @tasks == other.tasks
33
- )
29
+ def ==(other) (@date == other.date && @tasks == other.tasks) end
30
+
31
+ def to_h
32
+ {
33
+ 'date' => @date.strftime('%B %-d, %Y'),
34
+ 'tasks' => @tasks.map { |e| e.to_h }
35
+ }
34
36
  end
35
37
 
36
38
  # @param [Task] task Adds +task+ to the list of tasks completed on this work day.
@@ -1,4 +1,5 @@
1
1
  require 'time'
2
+ require 'yaml'
2
3
 
3
4
  require_relative 'smart_duration'
4
5
  require_relative 'task'
@@ -36,6 +37,10 @@ module TimeDistribution
36
37
  end
37
38
  end
38
39
 
40
+ def days_to_yaml(opts = {})
41
+ map { |e| e.to_h }.to_yaml opts
42
+ end
43
+
39
44
  def time_worked
40
45
  inject({}) do |hash, d|
41
46
  t = d.time_worked
@@ -9,17 +9,18 @@ include TimeDistribution
9
9
  describe WorkDayCollection do
10
10
  let(:yml_string_data) do
11
11
  <<-END
12
+ ---
12
13
  -
13
14
  date: April 21, 2016
14
15
  tasks:
15
16
  -
16
- subject: :time_distribution
17
+ subject: time_distribution
17
18
  duration: 6:38pm to 7pm
18
19
  description: |
19
20
  - Comment 1
20
21
  - Comment 2
21
22
  -
22
- subject: :aaaaaa
23
+ subject: aaaaaa
23
24
  duration: 4:38am to 6pm
24
25
  description: |
25
26
  - Ahdkjlan akjdlnkfn
@@ -27,32 +28,38 @@ describe WorkDayCollection do
27
28
  date: April 20, 2016
28
29
  tasks:
29
30
  -
30
- subject: :time_distribution
31
+ subject: time_distribution
31
32
  duration: 6:38pm to 7pm
32
33
  description: |
33
34
  - Comment 3
34
35
  - Comment 4
35
36
  -
36
- subject: :bbbbb
37
+ subject: bbbbb
37
38
  duration: 4:38am to 6pm
38
39
  description: |
39
40
  - jkljkljlkj syowueiorue
40
41
  END
41
42
  end
42
43
 
44
+ let(:patient) do
45
+ map_data = YAML.load(yml_string_data)
46
+ _patient = WorkDayCollection.from_map map_data
47
+ _patient.must_equal map_data.map { |t| WorkDay.from_map t }
48
+ _patient
49
+ end
43
50
 
44
51
  describe '#from_map' do
45
- let(:patient) do
46
- map_data = YAML.load(yml_string_data)
47
- _patient = WorkDayCollection.from_map map_data
48
- _patient.must_equal map_data.map { |t| WorkDay.from_map t }
49
- _patient
50
- end
51
52
  it 'works' do
52
53
  patient
53
54
  end
54
55
  end
55
56
 
57
+ describe '#days_to_yaml' do
58
+ it 'works' do
59
+ patient.must_equal WorkDayCollection.from_map YAML.load(patient.days_to_yaml)
60
+ end
61
+ end
62
+
56
63
  describe '#new' do
57
64
  it 'with days only' do
58
65
  patient = WorkDayCollection.new('d1', 'd2')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_distribution
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-21 00:00:00.000000000 Z
11
+ date: 2016-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -130,6 +130,7 @@ extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
132
  - ".gitignore"
133
+ - ".travis.yml"
133
134
  - Gemfile
134
135
  - LICENSE.md
135
136
  - README.md
@@ -180,3 +181,4 @@ test_files:
180
181
  - spec/time_spec.rb
181
182
  - spec/work_day_collection_spec.rb
182
183
  - spec/work_day_spec.rb
184
+ has_rdoc: