symgate 0.2.3 → 0.4.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
- 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