time-sheet 0.6.0 → 0.6.1

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
  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