sfrest 0.0.20 → 0.0.21

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: '09110b9e469ba6a0f45ad9b28828acb55d46b5809b80283a722c626f2374b81e'
4
- data.tar.gz: 4ab3d5fefe519216e45a6fa175d44b3f1d6f0d978ec2ec3e7475ca6da59f182b
3
+ metadata.gz: 24b7f0820484e682a340217f50f1ee1b236dd80b5612c9020a498a2d63c0577b
4
+ data.tar.gz: c5b3411f739ec602bb24999bbe23c7fa577634b7b144e8c2ba2b66f0ef67b852
5
5
  SHA512:
6
- metadata.gz: ba5deeabee76e8d7e871a0f4fd025b994ae0117093e5fa5359133531440282a9ea7cd615413b1981f1d0d74d706ced48c5615f1b117177ecfa5213cea5f46f4b
7
- data.tar.gz: 8a26d194101fcfa0628f314140a04190231f4a0236531cf58b96bc8fdcc761a69717f635a514cd2c32432d8fd4ba7943e50cb4487e6faac21965a3341207578a
6
+ metadata.gz: bfdf52d93199f81c0a41a1b9546eee129bbfc84436df0137e900a05e2b6784135b031c1177980158cd4008ff35fbfdfbc06a76b5b0be271d3fd734f00d7f98db
7
+ data.tar.gz: a78cd935ffa7d2f181deb91ac8c354d86cbe09f2cb03edcb6a72c24c2467aeeedc3e589499e5964ed6cb674ff99515b639c8581d1f4ef357f4708c1e5b45689d
data/lib/sfrest/update.rb CHANGED
@@ -87,8 +87,29 @@ module SFRest
87
87
  end
88
88
 
89
89
  # Determines the api version to use for updates.
90
+ # it is possible for there to be two codebases
91
+ # and not have a v2 endpoint.
90
92
  def update_version
91
- @conn.codebase.list['stacks'].size > 1 ? 'v2' : 'v1'
93
+ multi_stack? && v2_endpoint? ? 'v2' : 'v1'
94
+ end
95
+
96
+ def multi_stack?
97
+ @multi_stack ||= @conn.codebase.list['stacks'].size > 1
98
+ end
99
+
100
+ # Determines if the v2 endpoint exists.
101
+ # A factory with the endpoint will raise an SFRest::BadRequestError
102
+ # A factory without the endpoint will raise SFRest::InvalidResponse
103
+ def v2_endpoint?
104
+ return @has_v2_endpoint unless @has_v2_endpoint.nil?
105
+ begin
106
+ @conn.post '/api/v2/update', '{}'
107
+ rescue SFRest::BadRequestError
108
+ return @has_v2_endpoint = true
109
+ rescue SFRest::InvalidResponse => e
110
+ return @has_v2_endpoint = false if e.message =~ /Invalid data, status 404/
111
+ raise e
112
+ end
92
113
  end
93
114
  end
94
115
  end
@@ -1,4 +1,4 @@
1
1
  module SFRest
2
2
  # Just tracks the version of sfrest.
3
- VERSION = '0.0.20'.freeze
3
+ VERSION = '0.0.21'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - ACSF Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-05 00:00:00.000000000 Z
11
+ date: 2018-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon