plansheet 0.23.2 → 0.24.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 +4 -4
- data/Gemfile.lock +3 -1
- data/exe/plansheet +1 -1
- data/lib/plansheet/pool.rb +3 -2
- data/lib/plansheet/project/yaml.rb +21 -4
- data/lib/plansheet/project.rb +14 -2
- data/lib/plansheet/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fae1a985802ab6da236f5f3d54224b4468ae5cc5e6beba86510293e7a92fe0a8
|
4
|
+
data.tar.gz: b2fe70fc1cb48dd794f561ff5037d2311366bb7e64c901cf4f32d33c0592e45b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f68b48246ce4e8b10c66dd805f783fd822886b168aa57bb7db71012934bd2f21f8a76c8f26dab6c8bf4f8156529b897a5d33c02cba2e67d39224579626ee00a0
|
7
|
+
data.tar.gz: 751a5a7beffa1c35d7723521db61aa0ca26d1fafb6643017bfd2c3a3cb14e63dd5d4f775df34e2a9b644c24a8d582e0cd19d9cfd4a3b009673b9fb6d70faef55
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
plansheet (0.
|
4
|
+
plansheet (0.24.1)
|
5
5
|
dc-kwalify (~> 1.0)
|
6
|
+
diffy (= 3.4.2)
|
6
7
|
rgl (= 0.5.8)
|
7
8
|
|
8
9
|
GEM
|
@@ -11,6 +12,7 @@ GEM
|
|
11
12
|
ast (2.4.2)
|
12
13
|
coderay (1.1.3)
|
13
14
|
dc-kwalify (1.0.0)
|
15
|
+
diffy (3.4.2)
|
14
16
|
ffi (1.15.5)
|
15
17
|
formatador (1.1.0)
|
16
18
|
generator (0.0.1)
|
data/exe/plansheet
CHANGED
@@ -59,7 +59,7 @@ elsif options[:sort]
|
|
59
59
|
# Pool sorts projects, this now just matches old behaviour
|
60
60
|
pool.write_projects
|
61
61
|
elsif options[:"time-roi"]
|
62
|
-
project_arr = pool.projects.select {|x| x.time_roi_payoff != 0 && !x.dropped_or_done?}.sort
|
62
|
+
project_arr = pool.projects.select { |x| x.time_roi_payoff != 0 && !x.dropped_or_done? }.sort
|
63
63
|
project_arr.each do |proj|
|
64
64
|
puts proj
|
65
65
|
puts "time ROI payoff: #{proj.time_roi_payoff}"
|
data/lib/plansheet/pool.rb
CHANGED
@@ -10,12 +10,14 @@ module Plansheet
|
|
10
10
|
|
11
11
|
DEFAULT_COMPARISON_ORDER = %w[
|
12
12
|
completeness
|
13
|
+
completed_on
|
13
14
|
dependency
|
14
15
|
priority
|
15
16
|
defer
|
16
17
|
due
|
17
18
|
time_roi
|
18
19
|
status
|
20
|
+
name
|
19
21
|
].freeze
|
20
22
|
|
21
23
|
def initialize(config, debug: false)
|
@@ -89,8 +91,7 @@ module Plansheet
|
|
89
91
|
# to keep a list of project files to delete
|
90
92
|
project_namespaces.each do |ns|
|
91
93
|
pyf = ProjectYAMLFile.new "#{@projects_dir}/#{ns}.yml"
|
92
|
-
pyf.
|
93
|
-
pyf.write
|
94
|
+
pyf.compare_and_write projects_in_namespace(ns)
|
94
95
|
end
|
95
96
|
end
|
96
97
|
|
@@ -189,12 +189,29 @@ module Plansheet
|
|
189
189
|
@projects.sort!
|
190
190
|
end
|
191
191
|
|
192
|
-
def
|
193
|
-
|
192
|
+
def compare_and_write(projects)
|
193
|
+
updated_projects_string = yaml_dump(projects)
|
194
|
+
|
195
|
+
# Compare the existing file to the newly generated one - we only want a
|
196
|
+
# write if something has changed
|
197
|
+
return if updated_projects_string == yaml_dump(load_file)
|
198
|
+
|
199
|
+
puts "#{@path} has changed, writing"
|
200
|
+
require "diffy"
|
201
|
+
puts Diffy::Diff.new(updated_projects_string, yaml_dump(load_file)).to_s(:color)
|
202
|
+
File.write @path, updated_projects_string
|
194
203
|
end
|
195
204
|
|
196
|
-
def yaml_dump
|
197
|
-
|
205
|
+
def yaml_dump(projects)
|
206
|
+
# binding.irb if projects.nil?
|
207
|
+
YAML.dump(projects.map do |x|
|
208
|
+
x.to_h.delete_if do |k, v|
|
209
|
+
# Remove low-value default noise from projects
|
210
|
+
k == "namespace" ||
|
211
|
+
(k == "priority" && v == "low") ||
|
212
|
+
(k == "status" && v == "idea")
|
213
|
+
end
|
214
|
+
end)
|
198
215
|
end
|
199
216
|
end
|
200
217
|
end
|
data/lib/plansheet/project.rb
CHANGED
@@ -182,6 +182,20 @@ module Plansheet
|
|
182
182
|
PROJECT_STATUS_PRIORITY[status] <=> PROJECT_STATUS_PRIORITY[other.status]
|
183
183
|
end
|
184
184
|
|
185
|
+
# This seems silly at first glance, but it's to keep projects from flipping
|
186
|
+
# around on each sort when they are equal in all other respects
|
187
|
+
def compare_name(other)
|
188
|
+
@name <=> other.name
|
189
|
+
end
|
190
|
+
|
191
|
+
def compare_completed_on(other)
|
192
|
+
retval = 0
|
193
|
+
retval += 1 if @completed_on
|
194
|
+
retval -= 1 if other.completed_on
|
195
|
+
retval = (other.completed_on <=> @completed_on) if retval.zero?
|
196
|
+
retval
|
197
|
+
end
|
198
|
+
|
185
199
|
def compare_due(other)
|
186
200
|
# -1 is receiving object being older
|
187
201
|
|
@@ -340,8 +354,6 @@ module Plansheet
|
|
340
354
|
ALL_PROPERTIES.each do |prop|
|
341
355
|
h[prop] = instance_variable_get("@#{prop}") if instance_variable_defined?("@#{prop}")
|
342
356
|
end
|
343
|
-
h.delete "priority" if h.key?("priority") && h["priority"] == "low"
|
344
|
-
h.delete "status" if h.key?("status") && h["status"] == "idea"
|
345
357
|
h
|
346
358
|
end
|
347
359
|
end
|
data/lib/plansheet/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plansheet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Crosby
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dc-kwalify
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: diffy
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.4.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.4.2
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rgl
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|