checkoff 0.14.0 → 0.14.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: 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