soap4r-ng 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NGUzYWNmZGNlNjY4N2IxODlkNmJmMjU5ZGE5ZjFhOGQzMTc3MWI1Zg==
5
- data.tar.gz: !binary |-
6
- NWMxMzE3YzQ4Yjk1MmFmMzIzYTIzNDc2ODQzNjdlNTc1NGRkNjJmOA==
2
+ SHA1:
3
+ metadata.gz: feac1a1b6c95487a81f512a6140b042fb412fece
4
+ data.tar.gz: 07fd71acfbc506dd522a151d6ac450927452b3e7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTU4OTNmOGMyMzgwNjdiMmI5NzZjNzY4OThjY2NhZjhiNTcxYTZhNDJiMWQ0
10
- ZjRjZTdmNDBmMGNiM2RhYmM3Y2Q4MTk5ZWJkMGNhZWRkOTJhZmY5YWVhNDNj
11
- NDY1YzNiMTQ3ZTExYzdlMDQ5OTNlY2NiMzBkNzE4YTkwYWQxYWE=
12
- data.tar.gz: !binary |-
13
- NzJkOWY3YjE3MGM5OTc2OTU5MDg1YTY2OGNhMzA2MzhlM2UyMTk1MDFkZDhl
14
- YmQxYTI3MTQwYjg1N2JjZWMwMTU1Mjc0ZjVhMTA2NzYzZDU2YWVlN2M5N2Ni
15
- Mjg3NmMxZmQzNWEyMGI3ZjdhZDZiOGFmNDUzMWVjMTE1ODVjNGU=
6
+ metadata.gz: ea80f755cd8d36451727d5a572ce9e509efe93d562e3fa463fd1e379bf8b5a1f02c59466d3ba90aa64309e83417688c6e0b0004b9d31b0872b1aa3b68d329d82
7
+ data.tar.gz: 109b4f5fcdc2b3c98412c5e3ee1a8ae921eec1345e170681a1052afe04e82eba47656bcec78956e886bb3cc7f3b023d777b01a869f7028037667c734bd1f4599
data/lib/soap/element.rb CHANGED
@@ -104,7 +104,7 @@ class SOAPBody < SOAPStruct
104
104
  if data
105
105
  if data.respond_to?(:to_xmlpart)
106
106
  data = SOAP::SOAPRawData.new(data)
107
- elsif defined?(::REXML::Element) and data.is_a?(::REXML::Element)
107
+ elsif defined?(::REXML) && defined?(::REXML::Element) && data.is_a?(::REXML::Element)
108
108
  data = SOAP::SOAPRawData.new(SOAP::SOAPREXMLElementWrap.new(data))
109
109
  end
110
110
  if data.respond_to?(:elename)
@@ -127,7 +127,7 @@ module Mapping
127
127
  def self._obj2soap(obj, registry, type = nil)
128
128
  if obj.respond_to?(:to_xmlpart)
129
129
  SOAPRawData.new(obj)
130
- elsif defined?(::REXML::Element) and obj.is_a?(::REXML::Element)
130
+ elsif defined?(::REXML) && defined?(::REXML::Element) && obj.is_a?(::REXML::Element)
131
131
  SOAPRawData.new(SOAPREXMLElementWrap.new(obj))
132
132
  elsif referent = Thread.current[:SOAPMapping][:MarshalKey][obj.__id__] and
133
133
  !Thread.current[:SOAPMapping][:NoReference]
data/lib/soap/soap.rb CHANGED
@@ -16,8 +16,7 @@ require 'soap/version'
16
16
  module SOAP
17
17
 
18
18
 
19
- # VERSION = Version = SOAP::VERSION::STRING # '1.5.8-HEAD'
20
- Version = SOAP::VERSION::STRING # '1.5.8-HEAD'
19
+ Version = SOAP::VERSION::STRING # evaluates to 'SOAP4R-NG 2.0.2' or later
21
20
  PropertyName = 'soap/property'
22
21
 
23
22
  EnvelopeNamespace = 'http://schemas.xmlsoap.org/soap/envelope/'
@@ -152,3 +151,13 @@ unless Kernel.respond_to?(:warn)
152
151
  end
153
152
  end
154
153
  end
154
+
155
+
156
+ # For Ruby 1.8 and below
157
+ unless Kernel.respond_to?(:require_relative)
158
+ module Kernel
159
+ def require_relative(path)
160
+ require File.join(File.dirname(caller[0]), path.to_str)
161
+ end
162
+ end
163
+ end
@@ -143,7 +143,7 @@ public
143
143
 
144
144
  def initialize(options)
145
145
  super()
146
- @client = Client.new(nil, "RUBYJEDI-SOAP4R/#{ Version }")
146
+ @client = Client.new(nil, SOAP::VERSION::FORK_STRING)
147
147
  if @client.respond_to?(:request_filter)
148
148
  @client.request_filter << HttpPostRequestFilter.new(@filterchain)
149
149
  end
data/lib/soap/version.rb CHANGED
@@ -3,7 +3,10 @@ module SOAP
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 2
5
5
  MINOR = 0
6
- TINY = 2
6
+ TINY = 3
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
+
9
+ FORK = "SOAP4R-NG"
10
+ FORK_STRING = "#{SOAP::VERSION::FORK}/#{SOAP::VERSION::STRING}"
8
11
  end
9
12
  end
@@ -77,6 +77,7 @@ private
77
77
  check_file(@classdef_filename) or return
78
78
  write_file(@classdef_filename) do |f|
79
79
  f.puts "# encoding: UTF-8"
80
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
80
81
  f << WSDL::SOAP::ClassDefCreator.new(@wsdl, @name_creator, @modulepath).dump
81
82
  end
82
83
  end
@@ -87,7 +88,8 @@ private
87
88
  check_file(@mr_filename) or return
88
89
  write_file(@mr_filename) do |f|
89
90
  f.puts "# encoding: UTF-8"
90
- f << "require '#{@classdef_filename}'\n" if @classdef_filename
91
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
92
+ f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename
91
93
  f << WSDL::SOAP::MappingRegistryCreator.new(@wsdl, @name_creator, @modulepath).dump
92
94
  end
93
95
  end
@@ -101,7 +103,8 @@ private
101
103
  write_file(@client_skelton_filename) do |f|
102
104
  f << shbang << "\n"
103
105
  f.puts "# encoding: UTF-8"
104
- f << "require '#{@driver_filename}'\n\n" if @driver_filename
106
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
107
+ f << "require_relative '#{@driver_filename}'\n\n" if @driver_filename
105
108
  f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
106
109
  end
107
110
  end
@@ -112,7 +115,8 @@ private
112
115
  check_file(@servant_skelton_filename) or return
113
116
  write_file(@servant_skelton_filename) do |f|
114
117
  f.puts "# encoding: UTF-8"
115
- f << "require '#{@classdef_filename}'\n\n" if @classdef_filename
118
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
119
+ f << "require_relative '#{@classdef_filename}'\n\n" if @classdef_filename
116
120
  f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(porttypename))
117
121
  end
118
122
  end
@@ -125,8 +129,9 @@ private
125
129
  write_file(@cgi_stubFilename) do |f|
126
130
  f << shbang << "\n"
127
131
  f.puts "# encoding: UTF-8"
128
- f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
129
- f << "require '#{@mr_filename}'\n" if @mr_filename
132
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
133
+ f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
134
+ f << "require_relative '#{@mr_filename}'\n" if @mr_filename
130
135
  f << WSDL::SOAP::CGIStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
131
136
  end
132
137
  end
@@ -139,8 +144,9 @@ private
139
144
  write_file(@standalone_server_stub_filename) do |f|
140
145
  f << shbang << "\n"
141
146
  f.puts "# encoding: UTF-8"
142
- f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
143
- f << "require '#{@mr_filename}'\n" if @mr_filename
147
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
148
+ f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
149
+ f << "require_relative '#{@mr_filename}'\n" if @mr_filename
144
150
  f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
145
151
  end
146
152
  end
@@ -153,8 +159,9 @@ private
153
159
  write_file(@servlet_stub_filename) do |f|
154
160
  f << shbang << "\n"
155
161
  f.puts "# encoding: UTF-8"
156
- f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
157
- f << "require '#{@mr_filename}'\n" if @mr_filename
162
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
163
+ f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
164
+ f << "require_relative '#{@mr_filename}'\n" if @mr_filename
158
165
  f << WSDL::SOAP::ServletStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
159
166
  end
160
167
  end
@@ -167,8 +174,9 @@ private
167
174
  check_file(@driver_filename) or return
168
175
  write_file(@driver_filename) do |f|
169
176
  f.puts "# encoding: UTF-8"
170
- f << "require '#{@classdef_filename}'\n" if @classdef_filename
171
- f << "require '#{@mr_filename}'\n" if @mr_filename
177
+ f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
178
+ f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename
179
+ f << "require_relative '#{@mr_filename}'\n" if @mr_filename
172
180
  f << creator.dump(create_name(porttypename))
173
181
  end
174
182
  end
@@ -25,6 +25,7 @@ class LibXMLParser < XSD::XMLParser::Parser
25
25
  include ::LibXML::XML::SaxParser::Callbacks
26
26
 
27
27
  def do_parse(string_or_readable)
28
+ $stderr.puts "XSD::XMLParser::LibXMLParser.do_parse" if $DEBUG
28
29
  # string = string_or_readable.respond_to?(:read) ? string_or_readable.read : string_or_readable
29
30
 
30
31
  @charset = 'utf-8'
@@ -13,12 +13,18 @@ module XMLParser
13
13
 
14
14
  class NokogiriParser < XSD::XMLParser::Parser
15
15
  def do_parse(string_or_readable)
16
+ $stderr.puts "XSD::XMLParser::NokogiriParser.do_parse" if $DEBUG
16
17
  handler = NokoDocHandler.new(self)
17
18
  parser = Nokogiri::XML::SAX::Parser.new(handler)
18
19
  parser.parse(string_or_readable)
19
20
  end
20
21
 
21
22
  add_factory(self)
23
+
24
+ public :start_element
25
+ public :end_element
26
+ public :characters
27
+ public :xmldecl_encoding=
22
28
  end
23
29
 
24
30
 
@@ -27,29 +33,28 @@ class NokoDocHandler < Nokogiri::XML::SAX::Document
27
33
  @owner = (owner)
28
34
  end
29
35
 
36
+ def xmldecl(version, encoding, standalone)
37
+ @owner.xmldecl_encoding= encoding
38
+ end
39
+
30
40
  def start_element(name,attrs)
31
- attr_hash = Hash.new
32
- attrs.each do |kv_array|
33
- attr_hash[kv_array[0]] = kv_array[1]
34
- end
35
- @owner.send(:start_element, name, attr_hash)
41
+ @owner.start_element(name,Hash[*attrs.flatten])
36
42
  end
37
43
 
38
44
  def end_element(name)
39
- @owner.send(:end_element, name)
45
+ @owner.end_element(name)
40
46
  end
41
47
 
42
-
43
48
  def cdata_block(t)
44
- @owner.send(:characters, t)
49
+ @owner.characters(t)
45
50
  end
46
51
 
47
52
  def characters(t)
48
- @owner.send(:characters, t)
53
+ @owner.characters(t)
49
54
  end
50
55
 
51
56
  def comment(t)
52
- @owner.send(:characters,t)
57
+ @owner.characters(t)
53
58
  end
54
59
  end
55
60
 
@@ -6,7 +6,6 @@
6
6
  # redistribute it and/or modify it under the same terms of Ruby's license;
7
7
  # either the dual license version in 2003, or any later version.
8
8
 
9
- require 'pp'
10
9
  require 'oga'
11
10
 
12
11
 
@@ -16,7 +15,7 @@ module XMLParser
16
15
  class OgaParser < XSD::XMLParser::Parser
17
16
 
18
17
  def do_parse(string_or_readable)
19
- # Oga::XML::SaxParser.new(self, string_or_readable)
18
+ $stderr.puts "XSD::XMLParser::OgaParser.do_parse" if $DEBUG
20
19
  Oga.sax_parse_xml(self, string_or_readable)
21
20
  end
22
21
 
@@ -29,26 +28,17 @@ class OgaParser < XSD::XMLParser::Parser
29
28
  end_element(node_name(namespace, name))
30
29
  end
31
30
 
32
-
33
- def on_cdata(t)
34
- characters(t)
35
- end
36
-
37
- def on_comment(t)
38
- characters(t)
39
- end
40
-
41
31
  def on_text(t)
42
32
  characters(t)
43
33
  end
44
34
 
45
-
35
+ alias_method :on_cdata, :on_text
36
+ alias_method :on_comment, :on_text
37
+
46
38
  def on_xml_decl(attr_hash)
47
- # attr_hash['version'] = '1.0'; attr_hash['encoding'] = 'utf-8' (usually)
48
- # $stderr.puts "XML Document #{attr_hash['version']} in #{attr_hash['encoding']} encoding."
39
+ send :xmldecl_encoding=,attr_hash['encoding']
49
40
  end
50
41
 
51
-
52
42
  private
53
43
 
54
44
  def node_name(namespace, name)
@@ -8,93 +8,89 @@
8
8
 
9
9
  require 'ox'
10
10
 
11
-
12
11
  module XSD
13
12
  module XMLParser
14
13
 
15
14
  class OxParser < XSD::XMLParser::Parser
16
15
  def do_parse(string_or_readable)
17
- @element_stack = []
16
+ $stderr.puts "XSD::XMLParser::OxParser.do_parse" if $DEBUG
18
17
  begin
19
18
  require 'htmlentities' # Used to unescape html-escaped chars, if available
20
19
  @decoder = ::HTMLEntities.new(:expanded)
21
20
  rescue LoadError
22
21
  @decoder = nil
23
22
  end
23
+ handler = OxDocHandler.new(self, @decoder)
24
24
 
25
25
  string = string_or_readable.respond_to?(:read) ? string_or_readable.read : StringIO.new(string_or_readable)
26
26
  if @decoder.nil?
27
27
  # Use the built-in conversion with Ox.
28
- ::Ox.sax_parse(self, string, {:symbolize=> false, :convert_special=> true, :skip=> :skip_return} )
28
+ ::Ox.sax_parse(handler, string, {:symbolize=> false, :convert_special=> true, :skip=> :skip_return} )
29
29
  else
30
30
  # Use HTMLEntities Decoder. Leave the special-character conversion alone and let HTMLEntities decode it for us.
31
- ::Ox.sax_parse(self, string, {})
31
+ ::Ox.sax_parse(handler, string, {})
32
32
  end
33
33
  end
34
+
35
+ public :start_element
36
+ public :end_element
37
+ public :characters
38
+ public :xmldecl_encoding=
34
39
 
40
+ add_factory(self)
41
+ end
35
42
 
36
- alias_method :base_start_element, :start_element
37
- def start_element(n)
38
- # $stderr.puts "OxParser.start_element INVOKED [#{n}]"
39
- @element_stack.push n.to_s # Push the Element Name
40
- @element_stack.push Hash.new
43
+ class OxDocHandler
44
+
45
+ def initialize(owner, decoder)
46
+ @owner = owner
47
+ @decoder = decoder
48
+ reset_for_next_element
41
49
  end
42
-
43
- alias_method :base_end_element, :end_element
44
- def end_element(n)
45
- # $stderr.puts "OxParser.end_element INVOKED [#{n}]"
46
- if @element_stack[-2].to_s == n.to_s
47
- attr_hash = @element_stack.pop
48
- attr_key = @element_stack.pop
49
- else
50
- $stderr.puts "!!!! OxParser.end_element FAILED TO FIND STACK PAIR [#{n}] IN STACK [#{PP.pp(@element_stack,'')}]"
50
+
51
+ def attr(key, val)
52
+ @attr_hash[key.to_s]=val
53
+ end
54
+
55
+ def attrs_done
56
+ unless @element_name.nil?
57
+ @owner.start_element(@element_name, @attr_hash)
58
+ reset_for_next_element
51
59
  end
52
- base_end_element(n.to_s)
53
60
  end
54
-
55
-
56
- def text(t)
57
- @decoder.nil? ? characters(t) : characters(@decoder.decode(t))
61
+
62
+ def start_element(name)
63
+ @element_name = name.to_s
64
+ end
65
+
66
+ def end_element(name)
67
+ name = name.to_s
68
+ @owner.end_element(name) unless @element_name.nil?
58
69
  end
59
70
 
60
- def cdata(t)
61
- ## CAUTION: Ox Parser removes leading/trailing whitespace or blank lines. ##
62
- ## This behavior is evident if you run the regression test:
63
- ##
64
- ## SOAP4R_PARSERS=oxparser bundle exec rake test:single test/soap/test_response_as_xml.rb
65
- ##
66
- @decoder.nil? ? characters(t) : characters(@decoder.decode(t))
71
+ def text(t)
72
+ @decoder.nil? ? @owner.characters(t) : @owner.characters(@decoder.decode(t))
67
73
  end
68
74
 
69
- def comment(t)
70
- @decoder.nil? ? characters(t) : characters(@decoder.decode(t))
71
- end
75
+ alias_method :cdata, :text
72
76
 
73
77
 
74
78
  def instruct(n)
75
- # Do nothing. This is the outer "XML" tag.
79
+ # Set @element_name to nil so DocHandler does nothing with attrs or element name. This is the outer "XML" tag.
80
+ @element_name = nil
76
81
  end
77
82
 
78
83
  def end_instruct(n)
79
- # Do nothing.
84
+ @owner.xmldecl_encoding= @attr_hash['encoding']
85
+ reset_for_next_element
80
86
  end
81
87
 
82
-
83
- def attr(key,val)
84
- return if @element_stack[-1].nil?
85
-
86
- attr_hash = @element_stack[-1]
87
- attr_hash[key.to_s] = val
88
- end
88
+ private
89
89
 
90
- def attrs_done
91
- attr_hash = @element_stack[-1]
92
- name = @element_stack[-2]
93
-
94
- base_start_element(name, attr_hash) unless attr_hash.nil?
95
- end
96
-
97
- add_factory(self)
90
+ def reset_for_next_element
91
+ @attr_hash = {}
92
+ @element_name = ""
93
+ end
98
94
  end
99
95
 
100
96
  end
@@ -11,7 +11,6 @@ require 'xsd/qname'
11
11
  require 'xsd/ns'
12
12
  require 'xsd/charset'
13
13
 
14
-
15
14
  module XSD
16
15
  module XMLParser
17
16
 
@@ -89,6 +88,7 @@ private
89
88
  def xmldecl_encoding=(charset)
90
89
  if @charset.nil?
91
90
  @charset = charset
91
+ p "encoding definition: #{ charset } is configured." if $DEBUG
92
92
  else
93
93
  # Definition in a stream (like HTTP) has a priority.
94
94
  p "encoding definition: #{ charset } is ignored." if $DEBUG
@@ -19,12 +19,8 @@ class REXMLParser < XSD::XMLParser::Parser
19
19
  include REXML::StreamListener
20
20
 
21
21
  def do_parse(string_or_readable)
22
- source = nil
23
- source = REXML::SourceFactory.create_from(string_or_readable)
24
- source.encoding = charset if charset
25
- # Listener passes a String in utf-8.
26
- @charset = 'utf-8'
27
- REXML::Document.parse_stream(source, self)
22
+ $stderr.puts "XSD::XMLParser::REXMLParser.do_parse" if $DEBUG
23
+ REXML::Document.parse_stream(string_or_readable, self)
28
24
  end
29
25
 
30
26
  def epilogue
@@ -47,7 +43,7 @@ class REXMLParser < XSD::XMLParser::Parser
47
43
  end
48
44
 
49
45
  def xmldecl(version, encoding, standalone)
50
- # Version should be checked.
46
+ send :xmldecl_encoding=, encoding
51
47
  end
52
48
 
53
49
  add_factory(self)
metadata CHANGED
@@ -1,44 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soap4r-ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurence A. Lee, Hiroshi NAKAMURA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-19 00:00:00.000000000 Z
11
+ date: 2015-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: logger-application
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.0.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.0.2
41
- description:
41
+ description: Soap4R NextGen (as maintained by RubyJedi) for Ruby 1.8 thru 2.1 and
42
+ beyond
42
43
  email: rubyjedi@gmail.com, nahi@ruby-lang.org
43
44
  executables:
44
45
  - wsdl2ruby.rb
@@ -209,7 +210,8 @@ files:
209
210
  - lib/xsd/xmlparser/parser.rb
210
211
  - lib/xsd/xmlparser/rexmlparser.rb
211
212
  homepage: http://rubyjedi.github.io/soap4r/
212
- licenses: []
213
+ licenses:
214
+ - Ruby
213
215
  metadata: {}
214
216
  post_install_message:
215
217
  rdoc_options: []
@@ -217,12 +219,12 @@ require_paths:
217
219
  - lib
218
220
  required_ruby_version: !ruby/object:Gem::Requirement
219
221
  requirements:
220
- - - ! '>='
222
+ - - ">="
221
223
  - !ruby/object:Gem::Version
222
224
  version: '0'
223
225
  required_rubygems_version: !ruby/object:Gem::Requirement
224
226
  requirements:
225
- - - ! '>='
227
+ - - ">="
226
228
  - !ruby/object:Gem::Version
227
229
  version: '0'
228
230
  requirements: