checkoff 0.186.0 → 0.187.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: ab93a442000f1d706e304c5d574a9266c19dcff4be222107dc943f6c1d3ecd3f
4
- data.tar.gz: 373ce95b10e181827c2423bfce1a0a37f43a12b32ebebd79ea5b8e98dcc0787f
3
+ metadata.gz: 662bb742d6b627b5b1e95d376e0565392ecc56ea54d4dea8f76c5e5198093d6d
4
+ data.tar.gz: '01859381f83d92867afc1319a0d43fc860a6505970cce641c76565b5a99e5d13'
5
5
  SHA512:
6
- metadata.gz: b4f7267e3254bb4d22593bca64557ec58641b69ff95ceb7890c34a5c87512b27a5dda4fecf7db78ee5088692dbcc8c5380f673459a9df3c1edd744746215d364
7
- data.tar.gz: '0680cf901961be8001249375c81ceaa77ed903e0acb2f06ecc3b62093a110d7d4bcc225e706d46b31838a50d08d0f8811f4e636166715f5d48b73e33a940f521'
6
+ metadata.gz: 5f6a49cf14421028d42869e8436b5cc917e584aee545b0645487efc64fcda10ee35db189890970c9fb71349ad8498d4fe7ad548b177f140c4feb82edf3bc1df3
7
+ data.tar.gz: 26763f804929cbbcfb4af6faaed2ff14d01dd9736b465c830a5e9e9479c8428c8d14114e12b7fa6fda9e7cc9aa3fb6896d043fcea099b1678d60849b12b6420f
data/Gemfile.lock CHANGED
@@ -12,7 +12,7 @@ GIT
12
12
  PATH
13
13
  remote: .
14
14
  specs:
15
- checkoff (0.186.0)
15
+ checkoff (0.187.0)
16
16
  activesupport
17
17
  asana (> 0.10.0)
18
18
  cache_method
@@ -180,7 +180,7 @@ GEM
180
180
  unicode-display_width (>= 2.4.0, < 3.0)
181
181
  rubocop-ast (1.30.0)
182
182
  parser (>= 3.2.1.0)
183
- rubocop-minitest (0.34.4)
183
+ rubocop-minitest (0.34.5)
184
184
  rubocop (>= 1.39, < 2.0)
185
185
  rubocop-ast (>= 1.30.0, < 2.0)
186
186
  rubocop-rake (0.6.0)
@@ -262,4 +262,4 @@ DEPENDENCIES
262
262
  yard
263
263
 
264
264
  BUNDLED WITH
265
- 2.4.22
265
+ 2.5.5
data/fix.sh CHANGED
@@ -152,22 +152,29 @@ ensure_bundle() {
152
152
  need_better_bundler=true
153
153
  elif [ "${bundler_version_major}" -eq 2 ]
154
154
  then
155
- if [ "${bundler_version_minor}" -lt 2 ]
155
+ if [ "${bundler_version_minor}" -lt 5 ]
156
156
  then
157
157
  need_better_bundler=true
158
- elif [ "${bundler_version_minor}" -eq 2 ]
158
+ elif [ "${bundler_version_minor}" -eq 5 ]
159
159
  then
160
- if [ "${bundler_version_patch}" -lt 23 ]
160
+ if [ "${bundler_version_patch}" -lt 5 ]
161
161
  then
162
162
  need_better_bundler=true
163
163
  fi
164
164
  fi
165
165
  fi
166
+ echo "Bundler version: ${bundler_version}"
167
+ echo "Need better bundler: ${need_better_bundler}"
166
168
  if [ "${need_better_bundler}" = true ]
167
169
  then
168
170
  # need to do this first before 'bundle update --bundler' will work
169
171
  make bundle_install
172
+ set -x
170
173
  bundle update --bundler
174
+ gem install bundler:2.5.5
175
+ set +x
176
+ echo "After updating bundler:"
177
+ echo "Bundler version: ${bundler_version}"
171
178
  # ensure next step installs fresh bundle
172
179
  rm -f Gemfile.lock.installed
173
180
  fi
@@ -75,25 +75,23 @@ module Checkoff
75
75
  # not succesful
76
76
  #
77
77
  # @param uri [URI]
78
+ # @param verify_mode [OpenSSL::SSL::VERIFY_NONE,OpenSSL::SSL::VERIFY_PEER]
78
79
  #
79
80
  # @return [Object]
80
81
  # @sg-ignore
81
- def download_uri(uri, &block)
82
+ def download_uri(uri, verify_mode: OpenSSL::SSL::VERIFY_PEER, &block)
82
83
  out = nil
83
- Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
84
+ Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https', verify_mode: verify_mode) do |http|
84
85
  # @sg-ignore
85
- request = Net::HTTP::Get.new(uri)
86
- http.request(request) do |response|
87
- # use a block to ensure the file is closed after we're done with it
86
+ http.request(Net::HTTP::Get.new(uri)) do |response|
88
87
  raise("Unexpected response code: #{response.code}") unless response.code == '200'
89
88
 
90
- write_tempfile_from_response(response) do |tempfile|
91
- out = block.yield tempfile
92
- end
89
+ write_tempfile_from_response(response) { |tempfile| out = block.yield tempfile }
93
90
  end
94
91
  end
95
92
  out
96
93
  rescue StandardError => e
94
+ debug { e }
97
95
  raise "Error downloading #{uri}: #{e}"
98
96
  end
99
97
 
@@ -100,6 +100,26 @@ module Checkoff
100
100
  end
101
101
  end
102
102
 
103
+ # :in_portfolio_more_than_once? function
104
+ class InPortfolioMoreThanOncePFunctionEvaluator < FunctionEvaluator
105
+ def matches?
106
+ fn?(selector, :in_portfolio_more_than_once?)
107
+ end
108
+
109
+ # @param _index [Integer]
110
+ def evaluate_arg?(_index)
111
+ false
112
+ end
113
+
114
+ # @sg-ignore
115
+ # @param task [Asana::Resources::Task]
116
+ # @param portfolio_name [String]
117
+ # @return [Boolean]
118
+ def evaluate(task, portfolio_name)
119
+ @tasks.in_portfolio_more_than_once?(task, portfolio_name)
120
+ end
121
+ end
122
+
103
123
  # :tag? function
104
124
  class TagPFunctionEvaluator < FunctionEvaluator
105
125
  def matches?
@@ -292,6 +292,27 @@ module Checkoff
292
292
  end
293
293
  end
294
294
 
295
+ # True if the task is in a project which is in the given portfolio
296
+ #
297
+ # @param task [Asana::Resources::Task]
298
+ # @param portfolio_name [String]
299
+ # @param workspace_name [String]
300
+ def in_portfolio_more_than_once?(task,
301
+ portfolio_name,
302
+ workspace_name: @workspaces.default_workspace.name)
303
+ portfolio_projects = @portfolios.projects_in_portfolio(workspace_name, portfolio_name)
304
+ portfolio_project_gids = portfolio_projects.map(&:gid)
305
+ seen = false
306
+ task.memberships.each do |membership|
307
+ project_gid = membership.fetch('project').fetch('gid')
308
+ next unless portfolio_project_gids.include?(project_gid)
309
+ return true if seen
310
+
311
+ seen = true
312
+ end
313
+ false
314
+ end
315
+
295
316
  # @return [Hash]
296
317
  def as_cache_key
297
318
  {}
@@ -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.186.0'
6
+ VERSION = '0.187.0'
7
7
  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.186.0
4
+ version: 0.187.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vince Broz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-27 00:00:00.000000000 Z
11
+ date: 2024-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport