checkoff 0.14.0 → 0.14.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: 8750481397466c5207deda9bf852bc119c9ca347bd61ef97bdd8bd8b945d12f2
4
- data.tar.gz: c65a0b1e37ef29fce62dbfe7cbfa5e92bcbc16dd0f8ff9be3a230a93840ce975
3
+ metadata.gz: aa6999ea3bcde70f2cba0d6ecbf45102c85041d109e4d0d6ab55b92a941a1f3a
4
+ data.tar.gz: 52fe760413e0a8f559c42b9c0ac736e80f467d4d77578e77315fc0eea98b82ba
5
5
  SHA512:
6
- metadata.gz: 4e16e2aa1b336c7ef2213d19ea1301bd8c9c6c631957d58e063fdf6a3f278521ba77590aec15c661b4c6a908aa77fee7b9593551df9062edb3ce1c4a19c7cb46
7
- data.tar.gz: 4dc5118ce5b1ef2a6eabf3e71ee494a05beed7c4135162200fbfc258147f81b62eaf218e9666a2132c04d1abb18d745a76c388fe058b5829de528b51dc2bf9ab
6
+ metadata.gz: 8ed9570ef12c90f3abb8ff8a19a8cf3678729c47785ab3bbfb1b000daab79a257f5df123ae4aa5b93fb9bb22bffb125c83552ee5168a59d4e5ae7ec36b57b31d
7
+ data.tar.gz: fad8749d150cddccdc7bab8baab9084bb63502d02874969113879f4607f02fa791f41444c70419218c45224053a4321a19e4f1c0bf53ac00f759e01d9789fe4d
data/Gemfile.lock CHANGED
@@ -12,7 +12,7 @@ GIT
12
12
  PATH
13
13
  remote: .
14
14
  specs:
15
- checkoff (0.14.0)
15
+ checkoff (0.14.1)
16
16
  activesupport
17
17
  asana (> 0.10.0)
18
18
  cache_method
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "result": {
3
- "line": 99.73,
4
- "branch": 94.44
3
+ "line": 99.75,
4
+ "branch": 95.0
5
5
  }
6
6
  }
@@ -16,12 +16,24 @@ module Checkoff
16
16
 
17
17
  def initialize(config: Checkoff::ConfigLoader.load(:asana),
18
18
  sections: Checkoff::Sections.new(config: config),
19
+ time_class: Time,
19
20
  asana_task: Asana::Resources::Task)
20
21
  @config = config
21
22
  @sections = sections
23
+ @time_class = time_class
22
24
  @asana_task = asana_task
23
25
  end
24
26
 
27
+ def task_ready?(task)
28
+ return false if incomplete_dependencies?(task)
29
+
30
+ due = due_time(task)
31
+
32
+ return true if due.nil?
33
+
34
+ due < @time_class.now
35
+ end
36
+
25
37
  # Pull a specific task by name
26
38
  def task(workspace_name, project_name, task_name,
27
39
  section_name: :unspecified,
@@ -63,5 +75,21 @@ module Checkoff
63
75
  def default_assignee_gid
64
76
  @config.fetch(:default_assignee_gid)
65
77
  end
78
+
79
+ def due_time(task)
80
+ return @time_class.parse(task.due_at) if task.due_at
81
+ return @time_class.parse(task.due_on) if task.due_on
82
+
83
+ nil
84
+ end
85
+
86
+ def incomplete_dependencies?(task)
87
+ task.dependencies.any? do |parent_task_info|
88
+ parent_task_gid = parent_task_info.gid
89
+ parent_task = @asana_task.find_by_id(client, parent_task_gid,
90
+ options: { fields: ['completed'] })
91
+ !parent_task.completed
92
+ end
93
+ end
66
94
  end
67
95
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Checkoff
4
4
  # Version of library
5
- VERSION = '0.14.0'
5
+ VERSION = '0.14.1'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: checkoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vince Broz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-03 00:00:00.000000000 Z
11
+ date: 2021-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport