time-sheet 0.6.0 → 0.6.1

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
  SHA256:
3
- metadata.gz: dbb94daa084b68389e2fc8f28fc599bd87fd5d9016c876b7b0ba04fa508bd298
4
- data.tar.gz: 21e136b14b65c75ce3210b314a650778015093cbab530af1ceb10ff244534c0a
3
+ metadata.gz: 0dcc4d06773fec0e5b25f70420d655de6fdd663600737706792fc6a544d02830
4
+ data.tar.gz: ae0ebb5d103910f4da1e1e438a91d22d09acf5749ce51914cf5cef06845621d5
5
5
  SHA512:
6
- metadata.gz: ebcad92e2658984db81e9f1e9edd2dc616aa342e838254c86b3e6717dd065d171d69d4d7a63ebf03744cc1670ab74637426d86aa32d9180f82d466c22e934676
7
- data.tar.gz: e19d852e99883432284fe5953bdf684e0056bb6e814f024c42d1a5272abaf95dfd1ae56e061eb94ee3a8dc4620c9dde7f424a167e3c4df6f17350a57fd930a51
6
+ metadata.gz: 6aaa1db33009cba4d3d2e6b72117e893b40f0603864beb89046aa4da122c5f3c01ec5096d5ddeb1edde7e9fc7a7659df4285fe75ba267494f56bd685927c3a68
7
+ data.tar.gz: 6880e21f5ce5a904d59d7101406463432e4ec7f4c67776c9fcc5fbfdb69de6e9456987449aa876e4559ad1c18712409d970aeed0a88d2e6f35ecf3fc5353af62
@@ -7,7 +7,7 @@ class TimeSheet::Time::Entry
7
7
  @data = data
8
8
  end
9
9
 
10
- attr_accessor :prev, :next
10
+ attr_accessor :prev, :next, :exception, :data
11
11
 
12
12
  def project
13
13
  @data['project'] ||= self.prev.project
@@ -32,7 +32,6 @@ class TimeSheet::Time::Entry
32
32
  )
33
33
  end
34
34
 
35
-
36
35
  def end
37
36
  ends_at = @data['end'] || (self.next ? self.next.start : self.class.now)
38
37
 
@@ -96,8 +95,25 @@ class TimeSheet::Time::Entry
96
95
  end
97
96
 
98
97
  def valid?
99
- (duration > 0) &&
100
- ((self.start < self.end) || !self.next)
98
+ valid!
99
+ true
100
+ rescue TimeSheet::Time::Exception => e
101
+ self.exception = e
102
+ false
103
+ end
104
+
105
+ def valid!
106
+ if !@data['start']
107
+ raise TimeSheet::Time::Exception.new('time entry has no start')
108
+ end
109
+
110
+ if duration <= 0
111
+ raise TimeSheet::Time::Exception.new('time entry duration is 0 or less')
112
+ end
113
+
114
+ if (self.start >= self.end) && self.next
115
+ raise TimeSheet::Time::Exception.new('time entry has no end')
116
+ end
101
117
  end
102
118
 
103
119
  def to_row
@@ -37,7 +37,12 @@ class TimeSheet::Time::Parser
37
37
  results.each do |r|
38
38
  unless r.valid?
39
39
  # byebug
40
- raise TimeSheet::Time::Exception.new("invalid time entry: #{r.to_row.inspect}")
40
+ raise r.exception, [
41
+ r.exception.message, ': ',
42
+ r.data.inspect,
43
+ ', preceeding entry: ',
44
+ r.prev
45
+ ].join
41
46
  end
42
47
  end
43
48
  results
@@ -1,3 +1,3 @@
1
1
  module TimeSheet
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time-sheet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moritz Schepp
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-14 00:00:00.000000000 Z
11
+ date: 2019-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spreadsheet