weekly_planner 0.2.1 → 0.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/weekly_planner.rb +45 -9
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b57d541f09b80f9d9e95cf409605e7d50885af13
|
4
|
+
data.tar.gz: 3a62786aa9785aab297dee4fe0268ba9dd94d7a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2867a08a2201062a6912fec53090e29b40e15970bf3c07817edada0b9b97a044efa6793740270dee29b242c13ee6eab236d9e4b531571341d8921bf78f20b99
|
7
|
+
data.tar.gz: 828639a10f95f3b4aae7929c8378a4f8a1675354df0f1d3eaecf1ab5d6a196091ba8f9b808867a99c038bca06050f0be6d9ce13297468e774fc721cbb169f366
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/weekly_planner.rb
CHANGED
@@ -7,6 +7,14 @@ require 'dynarex'
|
|
7
7
|
require 'fileutils'
|
8
8
|
|
9
9
|
|
10
|
+
class RecordX
|
11
|
+
|
12
|
+
def last_modified
|
13
|
+
v = @last_modified
|
14
|
+
v.empty? ? nil : Date.parse(v)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
10
18
|
|
11
19
|
class WeeklyPlanner
|
12
20
|
|
@@ -19,10 +27,10 @@ class WeeklyPlanner
|
|
19
27
|
fpath = File.join(path, filename)
|
20
28
|
|
21
29
|
if File.exists?(fpath) then
|
22
|
-
|
23
|
-
|
24
|
-
@dx =
|
25
|
-
|
30
|
+
|
31
|
+
dx = import_to_dx(File.read(fpath))
|
32
|
+
@dx = refresh File.join(path, filename.sub(/\.txt$/,'.xml')), dx
|
33
|
+
sync_archive()
|
26
34
|
|
27
35
|
# purge any past dates
|
28
36
|
while Date.parse(@dx.all.first.id, "%Y%m%d") != DateTime.now.to_date \
|
@@ -43,6 +51,8 @@ class WeeklyPlanner
|
|
43
51
|
id: (date + i).strftime("%Y%m%d"))
|
44
52
|
end
|
45
53
|
|
54
|
+
sync_archive @dx.all[-(len)..-1]
|
55
|
+
|
46
56
|
end
|
47
57
|
|
48
58
|
else
|
@@ -59,8 +69,9 @@ class WeeklyPlanner
|
|
59
69
|
|
60
70
|
s = File.basename(filename) + "\n" + dx_to_s(@dx).lines[1..-1].join
|
61
71
|
File.write File.join(@path, filename), s
|
72
|
+
@dx.save File.join(@path, filename.sub(/\.txt$/,'.xml'))
|
62
73
|
|
63
|
-
|
74
|
+
sync_archive()
|
64
75
|
|
65
76
|
end
|
66
77
|
|
@@ -70,15 +81,15 @@ class WeeklyPlanner
|
|
70
81
|
|
71
82
|
private
|
72
83
|
|
73
|
-
def
|
84
|
+
def sync_archive(dxrows=@dx.all)
|
74
85
|
|
75
86
|
# archive the weekly planner
|
76
87
|
# e.g. weeklyplanner/2015/wp50.xml
|
77
|
-
d = Date.strptime(
|
88
|
+
d = Date.strptime(dxrows.first.id, "%Y%m%d")
|
78
89
|
archive_path = File.join(@path, d.year.to_s)
|
79
90
|
FileUtils.mkdir_p archive_path
|
80
91
|
|
81
|
-
a =
|
92
|
+
a = dxrows.partition {|x| Date.strptime(x.id, "%Y%m%d").cweek == d.cweek }
|
82
93
|
|
83
94
|
a.each do |rows|
|
84
95
|
|
@@ -94,7 +105,20 @@ class WeeklyPlanner
|
|
94
105
|
record = dx.find_by_id row.id
|
95
106
|
|
96
107
|
if record then
|
97
|
-
|
108
|
+
|
109
|
+
if record.x != row.x then
|
110
|
+
|
111
|
+
if record.last_modified.nil? then
|
112
|
+
record.x = row.x
|
113
|
+
elsif row.last_modified.nil?
|
114
|
+
row.x = record.x
|
115
|
+
elsif row.last_modified > record.last_modified
|
116
|
+
record.x = row.x
|
117
|
+
else
|
118
|
+
row.x = record.x
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
98
122
|
else
|
99
123
|
dx.create row
|
100
124
|
end
|
@@ -184,5 +208,17 @@ class WeeklyPlanner
|
|
184
208
|
|
185
209
|
return dx
|
186
210
|
end
|
211
|
+
|
212
|
+
def refresh(dxfilepath, latest_dx)
|
213
|
+
|
214
|
+
dx = Dynarex.new File.read(dxfilepath)
|
215
|
+
|
216
|
+
dx.all.each.with_index do |row, i|
|
217
|
+
row.x = latest_dx.all[i].x if row.x != latest_dx.all[i].x
|
218
|
+
end
|
219
|
+
|
220
|
+
dx
|
221
|
+
|
222
|
+
end
|
187
223
|
|
188
224
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weekly_planner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
z7gNRJqGU+m6WOC+EaEcNkm4WwRqy2Il3J8DydaFl+h20aqjFe1k7KgLU8qy8jyU
|
32
32
|
FlTqE0DQzwY5Dg==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2015-12-
|
34
|
+
date: 2015-12-10 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: dynarex
|
metadata.gz.sig
CHANGED
Binary file
|