time_distribution 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: