checkoff 0.65.0 → 0.66.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4505355c1c82cd6052ef5fd0996ecf25a415df8846ce7e21f4d80f5a9b1c788f
4
- data.tar.gz: 2837a88035c53d49ef8ee4bef2cbd2b1c2007f1b2d5441d4640a8680785ef438
3
+ metadata.gz: fc25937a7534eda70c7729a9844ef9a8d9dd5443f91a90272a0071558255b369
4
+ data.tar.gz: 380cb06602f7b984f60ad18fa095ccc69e1f3df67273ee09c6a7eff862879d45
5
5
  SHA512:
6
- metadata.gz: 999cc4babf24a98ab16cbed5349e536e4e7d9a9b08b16c50a73df63dac135dde8740e799c2ea7630d0682685775a9eff984830a0bfcca884900ee604a62f443b
7
- data.tar.gz: df41ae1e0e59e3efa637c06114a9b4370c2e093c932ff022be61f773af3a617c6eecc65ec5f147987bb229701aeea88fcf60163923309e92a19ba0b8b4e3db3e
6
+ metadata.gz: 5de5eb2dc6849012b9440fb583186a83d7a1123d2d77f254f293be3158c509ea947ae54386510f6b75957f90dd1d664248b8716122c8a8ea744e6216b96d7204
7
+ data.tar.gz: '088c35ad378b6e2fc57196e58e8071b5814a59c6fe680fdb96212a6571a7de09b497235eeacb048e824a337b5e05f57698417f3864d4670c9a8dd255dace68fa'
data/Gemfile.lock CHANGED
@@ -12,7 +12,7 @@ GIT
12
12
  PATH
13
13
  remote: .
14
14
  specs:
15
- checkoff (0.65.0)
15
+ checkoff (0.66.0)
16
16
  activesupport
17
17
  asana (> 0.10.0)
18
18
  cache_method
@@ -51,6 +51,7 @@ module Checkoff
51
51
  'is_not' => CustomFieldVariant::IsNot,
52
52
  'less_than' => CustomFieldVariant::LessThan,
53
53
  'greater_than' => CustomFieldVariant::GreaterThan,
54
+ 'equals' => CustomFieldVariant::Equals,
54
55
  'doesnt_contain_any' => CustomFieldVariant::DoesntContainAny,
55
56
  'contains_any' => CustomFieldVariant::ContainsAny,
56
57
  'contains_all' => CustomFieldVariant::ContainsAll,
@@ -7,6 +7,8 @@ module Checkoff
7
7
  module CustomFieldVariant
8
8
  # base class for handling different custom_field_#{gid}.variant params
9
9
  class CustomFieldVariant
10
+ # @param [String] gid
11
+ # @param [Hash] remaining_params
10
12
  def initialize(gid, remaining_params)
11
13
  @gid = gid
12
14
  @remaining_params = remaining_params
@@ -14,17 +16,27 @@ module Checkoff
14
16
 
15
17
  private
16
18
 
17
- attr_reader :gid, :remaining_params
19
+ # @return [String]
20
+ attr_reader :gid
18
21
 
22
+ # @return [Hash]
23
+ attr_reader :remaining_params
24
+
25
+ # @return [void]
19
26
  def ensure_no_remaining_params!
20
27
  return if remaining_params.empty?
21
28
 
22
29
  raise "Teach me how to handle these remaining keys: #{remaining_params}"
23
30
  end
24
31
 
32
+ # @param [String] param_name
33
+ #
34
+ # @return [String]
25
35
  def fetch_solo_param(param_name)
26
36
  case remaining_params.keys
27
37
  when [param_name]
38
+ # @sg-ignore
39
+ # @type [Array<String>]
28
40
  param_values = remaining_params.fetch(param_name)
29
41
  unless param_values.length == 1
30
42
  raise "Teach me how to handle these remaining keys for #{param_name}: #{remaining_params}"
@@ -39,6 +51,7 @@ module Checkoff
39
51
 
40
52
  # custom_field_#{gid}.variant = 'less_than'
41
53
  class LessThan < CustomFieldVariant
54
+ # @return [Array<(Hash, Array)>]
42
55
  def convert
43
56
  max_value = fetch_solo_param("custom_field_#{gid}.max")
44
57
  empty_task_selector = []
@@ -48,6 +61,7 @@ module Checkoff
48
61
 
49
62
  # custom_field_#{gid}.variant = 'greater_than'
50
63
  class GreaterThan < CustomFieldVariant
64
+ # @return [Array<(Hash, Array)>]
51
65
  def convert
52
66
  max_value = fetch_solo_param("custom_field_#{gid}.min")
53
67
  empty_task_selector = []
@@ -55,10 +69,21 @@ module Checkoff
55
69
  end
56
70
  end
57
71
 
72
+ # custom_field_#{gid}.variant = 'equals'
73
+ class Equals < CustomFieldVariant
74
+ # @return [Array<(Hash, Array)>]
75
+ def convert
76
+ value = fetch_solo_param("custom_field_#{gid}.value")
77
+ empty_task_selector = []
78
+ [{ "custom_fields.#{gid}.value" => value }, empty_task_selector]
79
+ end
80
+ end
81
+
58
82
  # This is used in the UI for select fields
59
83
  #
60
84
  # custom_field_#{gid}.variant = 'is_not'
61
85
  class IsNot < CustomFieldVariant
86
+ # @return [Array<(Hash, Array)>]
62
87
  def convert
63
88
  selected_options = fetch_solo_param("custom_field_#{gid}.selected_options").split('~')
64
89
 
@@ -75,6 +100,7 @@ module Checkoff
75
100
  #
76
101
  # custom_field_#{gid}.variant = 'doesnt_contain_any'
77
102
  class DoesntContainAny < CustomFieldVariant
103
+ # @return [Array<(Hash, Array)>]
78
104
  def convert
79
105
  selected_options = fetch_solo_param("custom_field_#{gid}.selected_options").split('~')
80
106
 
@@ -90,6 +116,7 @@ module Checkoff
90
116
  #
91
117
  # custom_field_#{gid}.variant = 'contains_any'
92
118
  class ContainsAny < CustomFieldVariant
119
+ # @return [Array<(Hash, Array)>]
93
120
  def convert
94
121
  selected_options = fetch_solo_param("custom_field_#{gid}.selected_options").split('~')
95
122
 
@@ -104,6 +131,7 @@ module Checkoff
104
131
  #
105
132
  # custom_field_#{gid}.variant = 'contains_all'
106
133
  class ContainsAll < CustomFieldVariant
134
+ # @return [Array<(Hash, Array)>]
107
135
  def convert
108
136
  selected_options = fetch_solo_param("custom_field_#{gid}.selected_options").split('~')
109
137
 
@@ -116,6 +144,7 @@ module Checkoff
116
144
 
117
145
  # custom_field_#{gid}.variant = 'no_value'
118
146
  class NoValue < CustomFieldVariant
147
+ # @return [Array<(Hash, Array)>]
119
148
  def convert
120
149
  ensure_no_remaining_params!
121
150
 
@@ -135,6 +164,7 @@ module Checkoff
135
164
  #
136
165
  # Not used for multi-select fields
137
166
  class AnyValue < CustomFieldVariant
167
+ # @return [Array<(Hash, Array)>]
138
168
  def convert
139
169
  ensure_no_remaining_params!
140
170
 
@@ -146,6 +176,7 @@ module Checkoff
146
176
 
147
177
  # custom_field_#{gid}.variant = 'is'
148
178
  class Is < CustomFieldVariant
179
+ # @return [Array<(Hash, Array)>]
149
180
  def convert
150
181
  selected_options = fetch_solo_param("custom_field_#{gid}.selected_options").split('~')
151
182
 
@@ -3,5 +3,5 @@
3
3
  # Command-line and gem client for Asana (unofficial)
4
4
  module Checkoff
5
5
  # Version of library
6
- VERSION = '0.65.0'
6
+ VERSION = '0.66.0'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: checkoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.65.0
4
+ version: 0.66.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vince Broz