symgate 0.2.3 → 0.4.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
- SHA1:
3
- metadata.gz: ff7740ff5f9152bd4f3cb84514f5eef0321dcd83
4
- data.tar.gz: c448385487c3563ec1c8ca38c8ed9f24ccd48caf
2
+ SHA256:
3
+ metadata.gz: efc49ad2189b8c02639f72b0332ddcebf27ca7485616a29e89e9e2656ab7f543
4
+ data.tar.gz: 1eef068e585c5fbc94ee1c7818003a4f94b2381a4d67f85ab3711b4332620449
5
5
  SHA512:
6
- metadata.gz: cf1198a9ffa373baf1c06c9ab1dfbb331919124d85fc223534add2b758178224363688d6cb58e90e6c66bf6b4164048e2e6a8db94cadd4705068433234b71f69
7
- data.tar.gz: 672fac7436ee70a62e0587e8be9aec6c3e9d51ff17105a18a24402192111abba7a41ea30ecbdd63bdacd79eb283eb114c838c6479020160d1eec4f98ea9a4fae
6
+ metadata.gz: e8b6e1c64b6b74e7e46a6c6064686eeaa9084fd8bf12d5cca0bf11d4742495376bf01fd326e9c143a50f35f3dcf4f507d88443a9cae62acbceaf59139e0493cb
7
+ data.tar.gz: '058bbc6730fc610343a5242decf25a0e5f69c66df8be15247cf63597b161d68bcfeff3eebfcc79a45b4ecb597c8ab3e1b2cff99c3f69a7cfb1f8bc03c3b41fac'
data/.gitignore CHANGED
@@ -17,3 +17,4 @@
17
17
  /vendor/
18
18
  /coverage/
19
19
  /coverage.zip
20
+ /test/config/local.yml
data/.rubocop.yml CHANGED
@@ -6,20 +6,47 @@ AllCops:
6
6
  - 'local-mode-cache/**/*'
7
7
  - 'symboliser-vagrant/**/*'
8
8
 
9
+ Style/NumericLiterals:
10
+ MinDigits: 6
11
+
12
+ Style/DoubleNegation:
13
+ Enabled: false
14
+
15
+ Style/HashSyntax:
16
+ Enabled: false
17
+
18
+ Style/DateTime:
19
+ Enabled: false
20
+
21
+ Style/IfUnlessModifier:
22
+ Enabled: false
23
+
9
24
  Metrics/LineLength:
10
- Max: 100
25
+ Max: 120
11
26
 
12
27
  Metrics/MethodLength:
13
- Max: 12
14
-
15
- Style/NumericLiterals:
16
- MinDigits: 6
28
+ Max: 20
17
29
 
18
30
  Metrics/ClassLength:
19
- Max: 120
31
+ Max: 2000
20
32
 
21
33
  Metrics/BlockLength:
22
- Max: 1000
34
+ Max: 2000
35
+
36
+ Metrics/AbcSize:
37
+ Max: 20
38
+
39
+ Metrics/CyclomaticComplexity:
40
+ Max: 9
41
+
42
+ Metrics/PerceivedComplexity:
43
+ Max: 9
44
+
45
+ Metrics/ParameterLists:
46
+ Max: 9
23
47
 
24
48
  Naming/UncommunicativeMethodParamName:
25
49
  MinNameLength: 2
50
+
51
+ Naming/AccessorMethodName:
52
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.1
1
+ 3.0.2
data/.travis.yml CHANGED
@@ -3,6 +3,7 @@ rvm:
3
3
  - 2.1.10
4
4
  - 2.2.5
5
5
  - 2.3.1
6
+ - 3.0.2
6
7
 
7
8
  git:
8
9
  submodules: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## 0.4.1 (2021-09-06)
2
+
3
+ Allow a configurable number of retries for a 'Data required for operation' error
4
+
5
+ ## 0.4.0 (2019-12-13)
6
+
7
+ Add support for copy-on-write wordlists for symboliser builds that support this
8
+
9
+ ## 0.3.0 (2019-07-19)
10
+
11
+ Add support for read-only wordlists
12
+
13
+ ## 0.2.4 (2018-10-25)
14
+
15
+ Make attachments option in get_wordlist_entries truly optional and update integration tests to
16
+ work correctly with the latest symboliser
17
+
1
18
  ## 0.2.3 (2018-10-23)
2
19
 
3
20
  Fix for invalid SOAP XML due to duplicate attributes (issue #3)
data/README.md CHANGED
@@ -94,8 +94,9 @@ You can also initialise a client with the following options:
94
94
 
95
95
  | Option | |
96
96
  | ----------- | --- |
97
- | :endpoint | Specifies the symbolisation SOAP endpoint to use, if not the public symbolisation server. |
98
- | :savon_opts | Specifies options to pass to the underlying savon engine. e.g. `{ log_level: :debug }` |
97
+ | :endpoint | Specifies the symbolisation SOAP endpoint to use, if not the public symbolisation server. |
98
+ | :savon_opts | Specifies options to pass to the underlying savon engine. e.g. `{ log_level: :debug }` |
99
+ | :data_required_error_retries | Specifies the number of times to attempt a request when the response is 'Data required for operation'. |
99
100
 
100
101
  ### Errors
101
102
 
@@ -131,6 +132,10 @@ To shut down and destroy the VM completely, run `rake vagrant:destroy`
131
132
 
132
133
  Note that you need access to the Widgit CI server for this to work.
133
134
 
135
+ Alternatively, in the highly unlikely event that the Vagrant stuff doesn't work, you can run the tests against some
136
+ other running symboliser by copying `test/config/local.example.yml` to `test/config/local.yml` and editing `local.yml`
137
+ to include the particulars of your symboliser endpoint, database and WSDL.
138
+
134
139
  ## License
135
140
 
136
141
  This project is licensed under the Apache License 2.0.
@@ -6,7 +6,8 @@ module Symgate
6
6
  # A generic client for the Symgate API.
7
7
  # See the WSDL for full documentation
8
8
  class Client
9
- attr_accessor :wsdl, :endpoint, :user, :password, :token, :account, :key, :savon_opts
9
+ attr_accessor :wsdl, :endpoint, :user, :password, :token, :account, :key, :savon_opts,
10
+ :data_required_error_retries
10
11
  attr_reader :savon_client
11
12
 
12
13
  # Constructs a new client with the provided options
@@ -14,6 +15,7 @@ module Symgate
14
15
  @wsdl = 'https://ws.widgitonline.com/schema/symboliser.wsdl'
15
16
  @endpoint = 'https://ws.widgitonline.com/'
16
17
  @savon_opts = {}
18
+ @data_required_error_retries = 3
17
19
  opts.each { |k, v| instance_variable_set("@#{k}", v) }
18
20
 
19
21
  validate_client_options
@@ -83,16 +85,30 @@ module Symgate
83
85
  # sends a request to the server and yields a soap block for defining the
84
86
  # message body
85
87
  def savon_request(method, opts = {})
86
- r = @savon_client.call(method) do |soap|
87
- yield soap if block_given?
88
- soap.message({}) if soap[:message].nil?
89
- soap[:message].merge!(savon_creds)
90
- end
88
+ attempts = 0
89
+
90
+ begin
91
+ attempts += 1
92
+
93
+ r = @savon_client.call(method) do |soap|
94
+ yield soap if block_given?
95
+ soap.message({}) if soap[:message].nil?
96
+ soap[:message].merge!(savon_creds)
97
+ end
91
98
 
92
- raise_error_on_string_response(r, "#{method}_response".to_sym) if opts[:returns_error_string]
93
- r
94
- rescue Savon::SOAPFault => e
95
- raise Symgate::Error.from_savon(e)
99
+ raise_error_on_string_response(r, "#{method}_response".to_sym) if opts[:returns_error_string]
100
+
101
+ r
102
+ rescue Savon::SOAPFault => e
103
+ # Allow a configurable number of retries for a 'Data required for operation' error. This is because the
104
+ # symboliser occasionally throw this error when it shouldn't and succeeds on retry. It's not ideal that we have
105
+ # to rely on the fault string, however.
106
+ if attempts < @data_required_error_retries && e.to_hash[:fault][:faultstring] == 'Data required for operation'
107
+ retry
108
+ end
109
+
110
+ raise Symgate::Error.from_savon(e)
111
+ end
96
112
  end
97
113
 
98
114
  def raise_error_on_string_response(response, response_type)
data/lib/symgate/error.rb CHANGED
@@ -5,7 +5,7 @@ module Symgate
5
5
  class Error < StandardError
6
6
  attr_reader :original_error, :detail
7
7
 
8
- # Initialises a symgate error from either a string or a savon error
8
+ # Initialises a symgate error from either a string or a Savon error
9
9
  def initialize(message)
10
10
  super(message)
11
11
  end
@@ -2,8 +2,6 @@ require 'symgate/client'
2
2
  require 'symgate/error'
3
3
  require 'symgate/metadata/data_item'
4
4
 
5
- # rubocop:disable Naming/AccessorMethodName
6
-
7
5
  module Symgate
8
6
  module Metadata
9
7
  # client for the Symgate metadata system
@@ -70,5 +68,3 @@ module Symgate
70
68
  end
71
69
  end
72
70
  end
73
-
74
- # rubocop:enable Naming/AccessorMethodName
@@ -1,3 +1,3 @@
1
1
  module Symgate
2
- VERSION = '0.2.3'.freeze
2
+ VERSION = '0.4.1'.freeze
3
3
  end
@@ -27,18 +27,18 @@ module Symgate
27
27
 
28
28
  # creates a wordlist with the specified name, context and scope (see auth:scope).
29
29
  # optionally, supply a list of entries to form the wordlist's initial content
30
- def create_wordlist(name, context, entries = [])
30
+ def create_wordlist(name, context, entries = [], readonly: false)
31
31
  tries ||= 3 # TODO: Find out if we still need to do this!
32
32
 
33
33
  Symgate::Wordlist::Info.from_soap(
34
34
  savon_request(:create_wordlist) do |soap|
35
- soap.message(soap_params_for_create_wordlist(name, context, entries))
35
+ soap.message(soap_params_for_create_wordlist(name, context, readonly, entries))
36
36
  end.body[:create_wordlist_response][:wordlistinfo]
37
37
  )
38
38
  rescue Symgate::Error => e
39
39
  # Handle SOS-105 (sometimes the wordlist is created but the symboliser claims it can't
40
- # find it and sends a SOAP error back) by extract the wordlist UUID from the error message.
41
- # Yes, this is not nice.
40
+ # find it and sends a SOAP error back) by extracting the wordlist UUID from the error
41
+ # message. Yes, this is not nice.
42
42
  match = /^No wordlist found for ID: ({[0-9a-f-]{36}})$/.match(e.detail)
43
43
 
44
44
  return get_wordlist_info(match[1]) if match
@@ -67,6 +67,28 @@ module Symgate
67
67
  )
68
68
  end
69
69
 
70
+ # Copies a wordlist with the specified UUID with optional parameters to specify the destination wordlist UUID, the
71
+ # context, name and readonlyness of the destination wordlist, source and destination group and/or user
72
+ def copy_wordlist(src_uuid, dest_uuid: nil, context: nil, name: nil, readonly: nil,
73
+ src_group: nil, src_user: nil, dest_group: nil, dest_user: nil)
74
+ response = savon_request(:copy_wordlist) do |soap|
75
+ params = { srcwordlistuuid: src_uuid }
76
+ params[:dstwordlistuuid] = dest_uuid unless dest_uuid.nil?
77
+ params[:context] = context unless context.nil?
78
+ params[:name] = name unless name.nil?
79
+ params[:readonly] = readonly unless readonly.nil?
80
+ params[:srcgroup] = src_group unless src_group.nil?
81
+ params[:srcusername] = src_user unless src_user.nil?
82
+ params[:dstgroup] = dest_group unless dest_group.nil?
83
+ params[:dstusername] = dest_user unless dest_user.nil?
84
+ soap.message(params)
85
+ end
86
+
87
+ Symgate::Wordlist::Info.from_soap(
88
+ response.body[:copy_wordlist_response][:wordlistinfo]
89
+ )
90
+ end
91
+
70
92
  # returns all wordlist entries for the wordlist specified by uuid.
71
93
  # accepts the following optional parameters:
72
94
  # attachments (boolean) - fetch custom graphics for the entries (default: false)
@@ -77,7 +99,7 @@ module Symgate
77
99
  check_for_multiple_opts(%i[match entry], opts)
78
100
 
79
101
  response = savon_request(:get_wordlist_entries) do |soap|
80
- soap.message(wordlistid: uuid, getattachments: opts[:attachments])
102
+ soap.message(wordlistid: uuid, getattachments: !!opts[:attachments])
81
103
  soap[:message][:match] = { matchstring: opts[:match] } if opts.include? :match
82
104
  soap[:message][:match] = { entryid: opts[:entry] } if opts.include? :entry
83
105
  end
@@ -132,11 +154,12 @@ module Symgate
132
154
 
133
155
  # creates a wordlist from the supplied cfwl data, in the requested context
134
156
  # if 'preserve_uuid' is true, the new wordlist will have the same uuid as the file
135
- def create_wordlist_from_cfwl_data(raw_cfwl_data, context, preserve_uuid)
157
+ def create_wordlist_from_cfwl_data(raw_cfwl_data, context, preserve_uuid, readonly: false)
136
158
  savon_request(:create_wordlist_from_cfwl_data) do |soap|
137
159
  soap.message(cfwl: Base64.encode64(raw_cfwl_data),
138
160
  context: context,
139
- preserve_uuid: preserve_uuid)
161
+ preserve_uuid: preserve_uuid,
162
+ readonly: readonly)
140
163
  end.body[:create_wordlist_from_cfwl_data_response][:uuid]
141
164
  end
142
165
 
@@ -153,11 +176,12 @@ module Symgate
153
176
  end
154
177
  end
155
178
 
156
- def soap_params_for_create_wordlist(name, context, entries)
179
+ def soap_params_for_create_wordlist(name, context, readonly, entries)
157
180
  {
158
181
  name: name,
159
182
  context: context,
160
- scope: scope_for_context(context)
183
+ scope: scope_for_context(context),
184
+ readonly: readonly
161
185
  }.merge(
162
186
  entries ? { %s(wl:wordlistentry) => entries.map(&:to_soap) } : {}
163
187
  )
@@ -11,6 +11,7 @@ module Symgate
11
11
  uuid: hash_value_with_optional_namespace(:wl, :uuid, hash),
12
12
  engine: hash_value_with_optional_namespace(:wl, :engine, hash),
13
13
  scope: hash_value_with_optional_namespace(:wl, :scope, hash),
14
+ readonly: hash_value_with_optional_namespace(:wl, :readonly, hash),
14
15
  entry_count: hash_value_with_optional_namespace(:wl, :entrycount, hash).to_i,
15
16
  last_change: hash_value_with_optional_namespace(:wl, :lastchange, hash)
16
17
  )
@@ -23,7 +24,7 @@ module Symgate
23
24
  protected
24
25
 
25
26
  def attributes
26
- %i[name context uuid entry_count last_change engine scope]
27
+ %i[name context uuid entry_count last_change engine scope readonly]
27
28
  end
28
29
  end
29
30
  end
data/symgate-gem.gemspec CHANGED
@@ -5,8 +5,10 @@ require 'symgate'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'symgate'
7
7
  spec.version = Symgate::VERSION
8
- spec.authors = ['Simon Detheridge']
9
- spec.email = ['simon@widgit.com']
8
+ spec.authors = ['Simon Detheridge', 'Tim Down', 'Stu Wright']
9
+ spec.email = ['tim@widgit.com']
10
+ spec.license = 'Apache-2.0'
11
+ spec.required_ruby_version = '>= 2.1'
10
12
 
11
13
  spec.summary = "Wrapper around Widgit's Symgate SOAP symboliser"
12
14
  spec.homepage = 'https://github.com/symbols-worldwide/symgate-gem'
@@ -17,18 +19,18 @@ Gem::Specification.new do |spec|
17
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
20
  spec.require_paths = ['lib']
19
21
 
20
- spec.add_development_dependency 'bundler', '~> 1.9'
21
- spec.add_development_dependency 'codecov'
22
- spec.add_development_dependency 'mysql2', '~> 0.4.1'
23
- spec.add_development_dependency 'rack', '~> 1.6.4'
24
- spec.add_development_dependency 'rake', '~> 10.0'
25
- spec.add_development_dependency 'rspec', '~> 3.8.0'
26
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0.2.3'
22
+ spec.add_development_dependency 'bundler', '~> 2.2'
23
+ spec.add_development_dependency 'codecov', '~> 0.1.16'
24
+ spec.add_development_dependency 'mysql2', '~> 0.5.3'
25
+ spec.add_development_dependency 'rack', '~> 2.2'
26
+ spec.add_development_dependency 'rake', '~> 12.0'
27
+ spec.add_development_dependency 'rspec', '~> 3.9.0'
28
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
27
29
  spec.add_development_dependency 'rubocop', '~> 0.57.0'
28
- spec.add_development_dependency 'rubocop-junit-formatter', '~> 0.1.3'
29
- spec.add_development_dependency 'simplecov', '~> 0.12.0'
30
- spec.add_development_dependency 'simplecov-teamcity-summary', '~> 0.1.2'
30
+ spec.add_development_dependency 'rubocop-junit-formatter', '~> 0.1.4'
31
+ spec.add_development_dependency 'simplecov', '~> 0.17.0'
32
+ spec.add_development_dependency 'simplecov-teamcity-summary', '~> 1.0.0'
31
33
 
32
- spec.add_dependency 'savon', '~> 2.11.0'
34
+ spec.add_dependency 'savon', '~> 2.12.0'
33
35
  spec.add_dependency 'tryit', '~> 0.0.1'
34
36
  end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symgate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Detheridge
8
+ - Tim Down
9
+ - Stu Wright
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2018-10-23 00:00:00.000000000 Z
13
+ date: 2021-09-05 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: bundler
@@ -16,98 +18,98 @@ dependencies:
16
18
  requirements:
17
19
  - - "~>"
18
20
  - !ruby/object:Gem::Version
19
- version: '1.9'
21
+ version: '2.2'
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
24
26
  - - "~>"
25
27
  - !ruby/object:Gem::Version
26
- version: '1.9'
28
+ version: '2.2'
27
29
  - !ruby/object:Gem::Dependency
28
30
  name: codecov
29
31
  requirement: !ruby/object:Gem::Requirement
30
32
  requirements:
31
- - - ">="
33
+ - - "~>"
32
34
  - !ruby/object:Gem::Version
33
- version: '0'
35
+ version: 0.1.16
34
36
  type: :development
35
37
  prerelease: false
36
38
  version_requirements: !ruby/object:Gem::Requirement
37
39
  requirements:
38
- - - ">="
40
+ - - "~>"
39
41
  - !ruby/object:Gem::Version
40
- version: '0'
42
+ version: 0.1.16
41
43
  - !ruby/object:Gem::Dependency
42
44
  name: mysql2
43
45
  requirement: !ruby/object:Gem::Requirement
44
46
  requirements:
45
47
  - - "~>"
46
48
  - !ruby/object:Gem::Version
47
- version: 0.4.1
49
+ version: 0.5.3
48
50
  type: :development
49
51
  prerelease: false
50
52
  version_requirements: !ruby/object:Gem::Requirement
51
53
  requirements:
52
54
  - - "~>"
53
55
  - !ruby/object:Gem::Version
54
- version: 0.4.1
56
+ version: 0.5.3
55
57
  - !ruby/object:Gem::Dependency
56
58
  name: rack
57
59
  requirement: !ruby/object:Gem::Requirement
58
60
  requirements:
59
61
  - - "~>"
60
62
  - !ruby/object:Gem::Version
61
- version: 1.6.4
63
+ version: '2.2'
62
64
  type: :development
63
65
  prerelease: false
64
66
  version_requirements: !ruby/object:Gem::Requirement
65
67
  requirements:
66
68
  - - "~>"
67
69
  - !ruby/object:Gem::Version
68
- version: 1.6.4
70
+ version: '2.2'
69
71
  - !ruby/object:Gem::Dependency
70
72
  name: rake
71
73
  requirement: !ruby/object:Gem::Requirement
72
74
  requirements:
73
75
  - - "~>"
74
76
  - !ruby/object:Gem::Version
75
- version: '10.0'
77
+ version: '12.0'
76
78
  type: :development
77
79
  prerelease: false
78
80
  version_requirements: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - "~>"
81
83
  - !ruby/object:Gem::Version
82
- version: '10.0'
84
+ version: '12.0'
83
85
  - !ruby/object:Gem::Dependency
84
86
  name: rspec
85
87
  requirement: !ruby/object:Gem::Requirement
86
88
  requirements:
87
89
  - - "~>"
88
90
  - !ruby/object:Gem::Version
89
- version: 3.8.0
91
+ version: 3.9.0
90
92
  type: :development
91
93
  prerelease: false
92
94
  version_requirements: !ruby/object:Gem::Requirement
93
95
  requirements:
94
96
  - - "~>"
95
97
  - !ruby/object:Gem::Version
96
- version: 3.8.0
98
+ version: 3.9.0
97
99
  - !ruby/object:Gem::Dependency
98
100
  name: rspec_junit_formatter
99
101
  requirement: !ruby/object:Gem::Requirement
100
102
  requirements:
101
103
  - - "~>"
102
104
  - !ruby/object:Gem::Version
103
- version: 0.2.3
105
+ version: 0.4.1
104
106
  type: :development
105
107
  prerelease: false
106
108
  version_requirements: !ruby/object:Gem::Requirement
107
109
  requirements:
108
110
  - - "~>"
109
111
  - !ruby/object:Gem::Version
110
- version: 0.2.3
112
+ version: 0.4.1
111
113
  - !ruby/object:Gem::Dependency
112
114
  name: rubocop
113
115
  requirement: !ruby/object:Gem::Requirement
@@ -128,56 +130,56 @@ dependencies:
128
130
  requirements:
129
131
  - - "~>"
130
132
  - !ruby/object:Gem::Version
131
- version: 0.1.3
133
+ version: 0.1.4
132
134
  type: :development
133
135
  prerelease: false
134
136
  version_requirements: !ruby/object:Gem::Requirement
135
137
  requirements:
136
138
  - - "~>"
137
139
  - !ruby/object:Gem::Version
138
- version: 0.1.3
140
+ version: 0.1.4
139
141
  - !ruby/object:Gem::Dependency
140
142
  name: simplecov
141
143
  requirement: !ruby/object:Gem::Requirement
142
144
  requirements:
143
145
  - - "~>"
144
146
  - !ruby/object:Gem::Version
145
- version: 0.12.0
147
+ version: 0.17.0
146
148
  type: :development
147
149
  prerelease: false
148
150
  version_requirements: !ruby/object:Gem::Requirement
149
151
  requirements:
150
152
  - - "~>"
151
153
  - !ruby/object:Gem::Version
152
- version: 0.12.0
154
+ version: 0.17.0
153
155
  - !ruby/object:Gem::Dependency
154
156
  name: simplecov-teamcity-summary
155
157
  requirement: !ruby/object:Gem::Requirement
156
158
  requirements:
157
159
  - - "~>"
158
160
  - !ruby/object:Gem::Version
159
- version: 0.1.2
161
+ version: 1.0.0
160
162
  type: :development
161
163
  prerelease: false
162
164
  version_requirements: !ruby/object:Gem::Requirement
163
165
  requirements:
164
166
  - - "~>"
165
167
  - !ruby/object:Gem::Version
166
- version: 0.1.2
168
+ version: 1.0.0
167
169
  - !ruby/object:Gem::Dependency
168
170
  name: savon
169
171
  requirement: !ruby/object:Gem::Requirement
170
172
  requirements:
171
173
  - - "~>"
172
174
  - !ruby/object:Gem::Version
173
- version: 2.11.0
175
+ version: 2.12.0
174
176
  type: :runtime
175
177
  prerelease: false
176
178
  version_requirements: !ruby/object:Gem::Requirement
177
179
  requirements:
178
180
  - - "~>"
179
181
  - !ruby/object:Gem::Version
180
- version: 2.11.0
182
+ version: 2.12.0
181
183
  - !ruby/object:Gem::Dependency
182
184
  name: tryit
183
185
  requirement: !ruby/object:Gem::Requirement
@@ -194,7 +196,7 @@ dependencies:
194
196
  version: 0.0.1
195
197
  description:
196
198
  email:
197
- - simon@widgit.com
199
+ - tim@widgit.com
198
200
  executables: []
199
201
  extensions: []
200
202
  extra_rdoc_files: []
@@ -231,7 +233,8 @@ files:
231
233
  - lib/symgate/wordlist/info.rb
232
234
  - symgate-gem.gemspec
233
235
  homepage: https://github.com/symbols-worldwide/symgate-gem
234
- licenses: []
236
+ licenses:
237
+ - Apache-2.0
235
238
  metadata: {}
236
239
  post_install_message:
237
240
  rdoc_options: []
@@ -241,15 +244,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
241
244
  requirements:
242
245
  - - ">="
243
246
  - !ruby/object:Gem::Version
244
- version: '0'
247
+ version: '2.1'
245
248
  required_rubygems_version: !ruby/object:Gem::Requirement
246
249
  requirements:
247
250
  - - ">="
248
251
  - !ruby/object:Gem::Version
249
252
  version: '0'
250
253
  requirements: []
251
- rubyforge_project:
252
- rubygems_version: 2.4.6
254
+ rubygems_version: 3.2.22
253
255
  signing_key:
254
256
  specification_version: 4
255
257
  summary: Wrapper around Widgit's Symgate SOAP symboliser