milton 1.0.0 → 1.0.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.
- data/History.txt +7 -0
- data/Rakefile +4 -4
- data/lib/milton.rb +41 -17
- metadata +5 -5
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'hoe'
|
5
|
-
require './lib/milton.rb'
|
6
5
|
|
7
|
-
Hoe.
|
8
|
-
|
9
|
-
|
6
|
+
Hoe.spec 'milton' do |p|
|
7
|
+
developer('Aaron Patterson', 'aaronp@rubyforge.org')
|
8
|
+
self.extra_deps = [['mechanize', '>= 0.9.2']]
|
9
|
+
self.rubyforge_name = 'seattlerb'
|
10
10
|
end
|
11
11
|
|
12
12
|
# vim: syntax=Ruby
|
data/lib/milton.rb
CHANGED
@@ -12,7 +12,7 @@ require 'yaml'
|
|
12
12
|
|
13
13
|
class Milton
|
14
14
|
|
15
|
-
VERSION = '1.0.
|
15
|
+
VERSION = '1.0.1'
|
16
16
|
|
17
17
|
def self.load_config config_file
|
18
18
|
unless File.exist? config_file then
|
@@ -168,24 +168,35 @@ the current week with eight hours/day.
|
|
168
168
|
def fill_timesheet
|
169
169
|
rows = []
|
170
170
|
last_date = nil
|
171
|
+
filled_in = false
|
171
172
|
|
172
173
|
parse_timesheet.each do |data|
|
173
|
-
next if data[0].to_i > 0
|
174
|
-
|
175
174
|
department = data[6]
|
176
175
|
employee_id = data[7]
|
177
176
|
date = Date.parse(CGI.unescape(data[1])).strftime('%m/%d/%Y')
|
178
177
|
|
179
|
-
|
178
|
+
# skip days with data already filled (like holidays)
|
179
|
+
if data[0].to_i > 0 or (filled_in and date == last_date) then
|
180
|
+
filled_in = true
|
181
|
+
last_date = date
|
182
|
+
next
|
183
|
+
end
|
184
|
+
|
185
|
+
filled_in = false
|
180
186
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
187
|
+
start, finish = starting_and_ending_timestamp date, last_date
|
188
|
+
|
189
|
+
rows << [
|
190
|
+
'0', '', 'False', 'True', 'False', 'False', 'False',
|
191
|
+
"#{date} 12:00:00 AM",
|
192
|
+
start, '',
|
193
|
+
finish,
|
194
|
+
'8', '',
|
195
|
+
department,
|
196
|
+
employee_id,
|
197
|
+
'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
|
198
|
+
'', '', '', 'EDIT', '', '', '', '', '2', '', '0', 'False'
|
199
|
+
]
|
189
200
|
|
190
201
|
# This reset is for the timestamp calculations.
|
191
202
|
last_date = date
|
@@ -217,12 +228,23 @@ the current week with eight hours/day.
|
|
217
228
|
|
218
229
|
puts "-" * 80
|
219
230
|
|
231
|
+
date = nil
|
232
|
+
last_date = nil
|
233
|
+
|
220
234
|
timesheet.each do |row|
|
221
|
-
|
235
|
+
date = row[2]
|
236
|
+
|
237
|
+
if row[0] == '0' and date == last_date then
|
238
|
+
# do nothing
|
239
|
+
elsif row[0] == '0' then
|
222
240
|
puts "#{row[2]} no time entered"
|
241
|
+
elsif date == last_date then
|
242
|
+
puts " %s to %s for %3s hours %s" % row.values_at(3, 4, 5, 8)
|
223
243
|
else
|
224
|
-
puts "
|
244
|
+
puts "%s %s to %s for %3s hours %s" % row.values_at(2, 3, 4, 5, 8)
|
225
245
|
end
|
246
|
+
|
247
|
+
last_date = date
|
226
248
|
end
|
227
249
|
end
|
228
250
|
|
@@ -261,13 +283,15 @@ the current week with eight hours/day.
|
|
261
283
|
|
262
284
|
##
|
263
285
|
# Returns an array of arrays containing: row id, day start time, date, start
|
264
|
-
# time, end time, hours, department, employee id
|
286
|
+
# time, end time, hours, department, employee id and earnings code. All
|
287
|
+
# values are strings.
|
265
288
|
|
266
289
|
def parse_timesheet
|
267
290
|
@page.body.scan(/TCMS.oTD.push\((\[.*\])\)/).map do |match|
|
268
|
-
match[0].gsub(/"/, '').split(',')
|
291
|
+
row = match[0].gsub(/"/, '').split(',')
|
292
|
+
row.map { |x|
|
269
293
|
CGI.unescape(x.strip).delete('[]')
|
270
|
-
}.values_at(0, 7, 8, 9, 11, 12, 14, 15)
|
294
|
+
}.values_at(0, 7, 8, 9, 11, 12, 14, 15, 32)
|
271
295
|
end
|
272
296
|
end
|
273
297
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Patterson
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-30 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.0
|
34
34
|
version:
|
35
35
|
description: Milton fills out your ADP ezLaborManager timesheet
|
36
36
|
email:
|
@@ -77,8 +77,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version:
|
78
78
|
requirements: []
|
79
79
|
|
80
|
-
rubyforge_project:
|
81
|
-
rubygems_version: 1.3.
|
80
|
+
rubyforge_project: seattlerb
|
81
|
+
rubygems_version: 1.3.4
|
82
82
|
signing_key:
|
83
83
|
specification_version: 3
|
84
84
|
summary: Milton fills out your ADP ezLaborManager timesheet
|