xmlrpc 0.3.3 → 0.3.4

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: 53431a8134df4bd293125d6805ef0c71d29a3843ce264a52d15f34390d25159c
4
- data.tar.gz: a0a644953cb08ed360be98054d8afe974f84e01a0b1e83c40ab0103fe175f973
3
+ metadata.gz: 2f2d8a8c29a5fc8c55bffcb7b56ff6dd3cd4331ba88cd9f6c30da98948296bef
4
+ data.tar.gz: d9480efd703fa30069f31c9c20c29067e560755e704268c2c5d44392a1b8014e
5
5
  SHA512:
6
- metadata.gz: 79a802bf935c8a7e0fe4aebfa3b927dc5106c9a05d57d75c5f6ace965077972e6f99c63fe7ce5dca60af134fa9c3232db6cb48afeca8997d1a8dc4fc64188e60
7
- data.tar.gz: d0395846e7cc156e06ef8afd00bddd062ad629c1c039ce8a7f3b6943f40f58440eeb8fb973c1872ea33788e3e5005610f50b23202a736132b619495d8a972e68
6
+ metadata.gz: 939cfd7ea5138f44b25e848bce42d8960cb334d0b3e919b80fa362c37f31457ff76e7525c6744ffca36fd30b69f417329230208cf6e07858a05b9f0b086578ce
7
+ data.tar.gz: 51e4c74654eba96955e151e97cbab7409097f89740de65fdab099673e0da8f4b2d5035af212b939bf2ce983b0964aa69672125bd787291a39a9d63f0ac4ec606
@@ -11,7 +11,7 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  timeout-minutes: 10
13
13
  steps:
14
- - uses: actions/checkout@v3
14
+ - uses: actions/checkout@v6
15
15
  - name: Extract release note
16
16
  run: |
17
17
  ruby \
@@ -28,3 +28,21 @@ jobs:
28
28
  --title "${title}"
29
29
  env:
30
30
  GH_TOKEN: ${{ github.token }}
31
+
32
+ rubygems:
33
+ name: RubyGems
34
+ runs-on: ubuntu-latest
35
+ timeout-minutes: 10
36
+ permissions:
37
+ id-token: write
38
+ environment: release
39
+ steps:
40
+ - uses: actions/checkout@v6
41
+ - uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: ruby
44
+ bundler-cache: true
45
+ - uses: rubygems/configure-rubygems-credentials@v1.0.0
46
+ - name: Push gems
47
+ run: |
48
+ bundle exec rake release:rubygem_push
@@ -17,10 +17,14 @@ jobs:
17
17
  - macos
18
18
  - windows
19
19
  ruby:
20
- - "2.5"
21
20
  - "2.6"
22
21
  - "2.7"
23
22
  - "3.0"
23
+ - "3.1"
24
+ - "3.2"
25
+ - "3.3"
26
+ - "3.4"
27
+ - "4.0"
24
28
  - head
25
29
  include:
26
30
  - { os: windows , ruby: mingw }
@@ -28,7 +32,7 @@ jobs:
28
32
  exclude:
29
33
  - { os: windows , ruby: head }
30
34
  steps:
31
- - uses: actions/checkout@v3
35
+ - uses: actions/checkout@v6
32
36
  - uses: ruby/setup-ruby@v1
33
37
  with:
34
38
  ruby-version: ${{ matrix.ruby }}
data/Gemfile CHANGED
@@ -1,3 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :development do
6
+ gem "bundler"
7
+ gem "libxml-ruby", platforms: [:ruby, :jruby]
8
+ gem "nokogiri", platforms: [:ruby, :jruby]
9
+ gem "rack"
10
+ gem "rack-test"
11
+ gem "rake"
12
+ gem "test-unit"
13
+ end
data/NEWS.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # News
2
2
 
3
+ ## 0.3.4
4
+
5
+ ### Improvements
6
+
7
+ * GH-40: Added accessor methods to `XMLRPC::Config`.
8
+ * Patch by Herwin Weststrate
9
+
10
+ * Added REXML dependency.
11
+ * Patch by Herwin Weststrate
12
+
13
+ * GH-55: Added support for Nokogiri.
14
+ * Patch by Herwin Weststrate
15
+
16
+ * GH-56: Added support for Rack.
17
+ * Patch by Herwin Weststrate
18
+
19
+ * GH-59: Dropped support for mod_ruby.
20
+ * Patch by Herwin Weststrate
21
+
22
+ * GH-63: Added support for libxml_ruby 6.0.0 or later.
23
+ * Patch by Herwin Weststrate
24
+
25
+ ### Fixes
26
+
27
+ * GH-42 GH-43: Fixed a bug that IPv6 address host isn't used.
28
+ * Patch by Herwin Weststrate
29
+
30
+ ### Thanks
31
+
32
+ * Herwin Weststrate
33
+
3
34
  ## 0.3.3
4
35
 
5
36
  ### Improvements
data/README.md CHANGED
@@ -39,7 +39,7 @@ Try the following code. It calls a standard demonstration remote procedure.
39
39
  require 'xmlrpc/client'
40
40
  require 'pp'
41
41
 
42
- server = XMLRPC::Client.new2("http://xmlrpc-c.sourceforge.net/api/sample.php")
42
+ server = XMLRPC::Client.new2("http://localhost:8080/RPC2")
43
43
  result = server.call("sample.sumAndDifference", 5, 3)
44
44
  pp result
45
45
  ```
data/Rakefile CHANGED
@@ -8,3 +8,13 @@ Rake::TestTask.new(:test) do |t|
8
8
  end
9
9
 
10
10
  task :default => :test
11
+
12
+ release_task = Rake.application["release"]
13
+ # We use Trusted Publishing.
14
+ release_task.prerequisites.delete("build")
15
+ release_task.prerequisites.delete("release:rubygem_push")
16
+ release_task_comment = release_task.comment
17
+ if release_task_comment
18
+ release_task.clear_comments
19
+ release_task.comment = release_task_comment.gsub(/ and build.*$/, "")
20
+ end
data/lib/xmlrpc/client.rb CHANGED
@@ -44,7 +44,7 @@ module XMLRPC # :nodoc:
44
44
  #
45
45
  # server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
46
46
  # ok, param = server.call2("michael.add", 4, 5)
47
- # if ok then
47
+ # if ok
48
48
  # puts "4 + 5 = #{param}"
49
49
  # else
50
50
  # puts "Error:"
@@ -147,7 +147,7 @@ module XMLRPC # :nodoc:
147
147
  proto = url.scheme
148
148
  user = url.user
149
149
  passwd = url.password
150
- host = url.host
150
+ host = url.hostname
151
151
  port = url.port
152
152
  path = url.path.empty? ? nil : url.request_uri
153
153
 
@@ -246,7 +246,7 @@ module XMLRPC # :nodoc:
246
246
  # * Date, Time, XMLRPC::DateTime
247
247
  # * XMLRPC::Base64
248
248
  # * A Ruby object which class includes XMLRPC::Marshallable
249
- # (only if Config::ENABLE_MARSHALLING is +true+).
249
+ # (only if Config.enable_marshalling? is +true+).
250
250
  # That object is converted into a hash, with one additional key/value
251
251
  # pair <code>___class___</code> which contains the class name
252
252
  # for restoring that object later.
data/lib/xmlrpc/config.rb CHANGED
@@ -15,6 +15,7 @@ module XMLRPC # :nodoc:
15
15
  #
16
16
  # * XMLParser::REXMLStreamParser
17
17
  # * XMLParser::LibXMLStreamParser
18
+ # * XMLParser::NokogiriStreamParser
18
19
  DEFAULT_PARSER = XMLParser::REXMLStreamParser
19
20
 
20
21
  # enable <code><nil/></code> tag
@@ -33,6 +34,27 @@ module XMLRPC # :nodoc:
33
34
  # enable Introspection extension by default
34
35
  ENABLE_INTROSPECTION = false
35
36
 
37
+ [
38
+ :DEFAULT_WRITER,
39
+ :DEFAULT_PARSER,
40
+ :ENABLE_NIL_CREATE,
41
+ :ENABLE_NIL_PARSER,
42
+ :ENABLE_BIGINT,
43
+ :ENABLE_MARSHALLING,
44
+ :ENABLE_MULTICALL,
45
+ :ENABLE_INTROSPECTION
46
+ ].each do |option|
47
+ getter = option.to_s.downcase
48
+ getter.concat('?') if [true, false].include?(const_get(option))
49
+ define_singleton_method(getter) do
50
+ const_get(option)
51
+ end
52
+
53
+ define_singleton_method("#{option.downcase}=") do |value|
54
+ remove_const(option)
55
+ const_set(option, value)
56
+ end
57
+ end
36
58
  end
37
59
 
38
60
  end
data/lib/xmlrpc/create.rb CHANGED
@@ -106,7 +106,7 @@ module XMLRPC # :nodoc:
106
106
  class Create
107
107
 
108
108
  def initialize(xml_writer = nil)
109
- @writer = xml_writer || Config::DEFAULT_WRITER.new
109
+ @writer = xml_writer || Config.default_writer.new
110
110
  end
111
111
 
112
112
 
@@ -180,7 +180,7 @@ module XMLRPC # :nodoc:
180
180
  val = case param
181
181
  when Integer
182
182
  # XML-RPC's int is 32bit int
183
- if Config::ENABLE_BIGINT
183
+ if Config.enable_bigint?
184
184
  @writer.tag("i4", param.to_s)
185
185
  else
186
186
  if param >= -(2**31) and param <= (2**31-1)
@@ -199,7 +199,7 @@ module XMLRPC # :nodoc:
199
199
  @writer.tag("string", param)
200
200
 
201
201
  when NilClass
202
- if Config::ENABLE_NIL_CREATE
202
+ if Config.enable_nil_create?
203
203
  @writer.ele("nil")
204
204
  else
205
205
  raise "Wrong type NilClass. Not allowed!"
@@ -248,7 +248,7 @@ module XMLRPC # :nodoc:
248
248
  @writer.tag("base64", param.encoded)
249
249
 
250
250
  else
251
- if Config::ENABLE_MARSHALLING and param.class.included_modules.include? XMLRPC::Marshallable
251
+ if Config.enable_marshalling? and param.class.included_modules.include? XMLRPC::Marshallable
252
252
  # convert Ruby object into Hash
253
253
  ret = {"___class___" => param.class.name}
254
254
  param.instance_variables.each {|v|
@@ -256,7 +256,7 @@ module XMLRPC # :nodoc:
256
256
  val = param.instance_variable_get(v)
257
257
 
258
258
  if val.nil?
259
- ret[name] = val if Config::ENABLE_NIL_CREATE
259
+ ret[name] = val if Config.enable_nil_create?
260
260
  else
261
261
  ret[name] = val
262
262
  end
data/lib/xmlrpc/parser.rb CHANGED
@@ -107,7 +107,7 @@ module XMLRPC # :nodoc:
107
107
  def self.struct(hash)
108
108
  # convert to marshalled object
109
109
  klass = hash["___class___"]
110
- if klass.nil? or Config::ENABLE_MARSHALLING == false
110
+ if klass.nil? or not Config.enable_marshalling?
111
111
  hash
112
112
  else
113
113
  begin
@@ -205,7 +205,7 @@ module XMLRPC # :nodoc:
205
205
  raise "error"
206
206
  end
207
207
 
208
- if not cmp then
208
+ if not cmp
209
209
  raise "wrong xml-rpc (name)"
210
210
  end
211
211
 
@@ -217,14 +217,14 @@ module XMLRPC # :nodoc:
217
217
  if node.childNodes.to_a.size != 1
218
218
  raise "wrong xml-rpc (size)"
219
219
  end
220
- if name != nil then
220
+ if name != nil
221
221
  nodeMustBe(node.firstChild, name)
222
222
  end
223
223
  end
224
224
 
225
225
 
226
226
  def assert(b)
227
- if not b then
227
+ if not b
228
228
  raise "assert-fail"
229
229
  end
230
230
  end
@@ -417,7 +417,7 @@ module XMLRPC # :nodoc:
417
417
  when "struct" then struct(child)
418
418
  when "array" then array(child)
419
419
  when "nil"
420
- if Config::ENABLE_NIL_PARSER
420
+ if Config.enable_nil_parser?
421
421
  v_nil(child)
422
422
  else
423
423
  raise "wrong/unknown XML-RPC type 'nil'"
@@ -436,7 +436,7 @@ module XMLRPC # :nodoc:
436
436
  assert( (1..2).include?( node.childNodes.to_a.size ) )
437
437
  name = methodName(node[0])
438
438
 
439
- if node.childNodes.to_a.size == 2 then
439
+ if node.childNodes.to_a.size == 2
440
440
  pa = params(node[1])
441
441
  else # no parameters given
442
442
  pa = []
@@ -499,7 +499,7 @@ module XMLRPC # :nodoc:
499
499
  when "value"
500
500
  @value = nil
501
501
  when "nil"
502
- raise "wrong/unknown XML-RPC type 'nil'" unless Config::ENABLE_NIL_PARSER
502
+ raise "wrong/unknown XML-RPC type 'nil'" unless Config.enable_nil_parser?
503
503
  @value = :nil
504
504
  when "array"
505
505
  @val_stack << @values
@@ -595,7 +595,7 @@ module XMLRPC # :nodoc:
595
595
 
596
596
  class LibXMLStreamParser < AbstractStreamParser
597
597
  def initialize
598
- require 'libxml'
598
+ require 'libxml-ruby'
599
599
  @parser_class = LibXMLStreamListener
600
600
  end
601
601
 
@@ -624,7 +624,51 @@ module XMLRPC # :nodoc:
624
624
  end
625
625
  end
626
626
 
627
- Classes = [REXMLStreamParser, LibXMLStreamParser]
627
+ class NokogiriStreamParser < AbstractStreamParser
628
+ def initialize
629
+ require 'nokogiri'
630
+ @parser_class = NokogiriStreamListener
631
+ end
632
+
633
+ class NokogiriStreamListener
634
+ include StreamParserMixin
635
+
636
+ def self.handler
637
+ # We need to construct this on first use, since we cannot be sure Nokogiri is available
638
+ @handler ||= begin
639
+ Class.new(Nokogiri::XML::SAX::Document) do
640
+ def initialize(parent)
641
+ super()
642
+ @parent = parent
643
+ end
644
+
645
+ def start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = [])
646
+ @parent.startElement(name, attrs)
647
+ end
648
+
649
+ def end_element_namespace(name, prefix = nil, uri = nil)
650
+ @parent.endElement(name)
651
+ end
652
+
653
+ def characters(string)
654
+ @parent.character(string)
655
+ end
656
+
657
+ def cdata_block(string)
658
+ @parent.character(string)
659
+ end
660
+ end
661
+ end
662
+ end
663
+
664
+ def parse(str)
665
+ parser = Nokogiri::XML::SAX::Parser.new(self.class.handler.new(self))
666
+ parser.parse(str)
667
+ end
668
+ end
669
+ end
670
+
671
+ Classes = [REXMLStreamParser, LibXMLStreamParser, NokogiriStreamParser]
628
672
 
629
673
  # yields an instance of each installed parser
630
674
  def self.each_installed_parser
data/lib/xmlrpc/server.rb CHANGED
@@ -63,8 +63,8 @@ class BasicServer
63
63
  @create = nil
64
64
  @parser = nil
65
65
 
66
- add_multicall if Config::ENABLE_MULTICALL
67
- add_introspection if Config::ENABLE_INTROSPECTION
66
+ add_multicall if Config.enable_multicall?
67
+ add_introspection if Config.enable_introspection?
68
68
  end
69
69
 
70
70
  # Adds +aBlock+ to the list of handlers, with +name+ as the name of
@@ -456,42 +456,24 @@ class CGIServer < BasicServer
456
456
  end
457
457
 
458
458
 
459
- # Implements a XML-RPC server, which works with Apache mod_ruby.
460
- #
461
- # Use it in the same way as XMLRPC::CGIServer!
462
- class ModRubyServer < BasicServer
463
-
464
- # Creates a new XMLRPC::ModRubyServer instance.
465
- #
466
- # All parameters given are by-passed to XMLRPC::BasicServer.new.
467
- def initialize(*a)
468
- @ap = Apache::request
469
- super(*a)
470
- end
459
+ # Implements a XML-RPC application, which works with Rack
460
+ class RackApplication < BasicServer
471
461
 
472
- # Call this after you have added all you handlers to the server.
473
- #
474
462
  # This method processes a XML-RPC method call and sends the answer
475
463
  # back to the client.
476
- def serve
477
- catch(:exit_serve) {
478
- header = {}
479
- @ap.headers_in.each {|key, value| header[key.capitalize] = value}
464
+ def call(env)
465
+ length = env['CONTENT_LENGTH'].to_i
480
466
 
481
- length = header['Content-length'].to_i
467
+ return http_error(405, "Method Not Allowed") unless env['REQUEST_METHOD'] == "POST"
468
+ return http_error(400, "Bad Request") unless parse_content_type(env['CONTENT_TYPE']).first == "text/xml"
469
+ return http_error(411, "Length Required") unless length > 0
482
470
 
483
- http_error(405, "Method Not Allowed") unless @ap.request_method == "POST"
484
- http_error(400, "Bad Request") unless parse_content_type(header['Content-type']).first == "text/xml"
485
- http_error(411, "Length Required") unless length > 0
471
+ req = Rack::Request.new(env)
472
+ data = req.body.read(length)
486
473
 
487
- # TODO: do we need a call to binmode?
488
- @ap.binmode
489
- data = @ap.read(length)
474
+ return http_error(400, "Bad Request") if data.nil? or data.bytesize != length
490
475
 
491
- http_error(400, "Bad Request") if data.nil? or data.bytesize != length
492
-
493
- http_write(process(data), 200, "Content-type" => "text/xml; charset=utf-8")
494
- }
476
+ [200, { "Content-type" => "text/xml; charset=utf-8" }, [process(data)]]
495
477
  end
496
478
 
497
479
 
@@ -511,22 +493,7 @@ class ModRubyServer < BasicServer
511
493
  </html>
512
494
  MSGEND
513
495
 
514
- http_write(msg, status, "Status" => err, "Content-type" => "text/html")
515
- throw :exit_serve # exit from the #serve method
516
- end
517
-
518
- def http_write(body, status, header)
519
- h = {}
520
- header.each {|key, value| h[key.to_s.capitalize] = value}
521
- h['Status'] ||= "200 OK"
522
- h['Content-length'] ||= body.bytesize.to_s
523
-
524
- h.each {|key, value| @ap.headers_out[key] = value }
525
- @ap.content_type = h["Content-type"]
526
- @ap.status = status.to_i
527
- @ap.send_http_header
528
-
529
- @ap.print body
496
+ [status, { "Content-Type" => "text/html" }, [msg]]
530
497
  end
531
498
 
532
499
  end
data/lib/xmlrpc/utils.rb CHANGED
@@ -26,7 +26,7 @@ module XMLRPC # :nodoc:
26
26
  #
27
27
  # Should be an instance of a class from module XMLRPC::XMLWriter.
28
28
  #
29
- # If this method is not called, then XMLRPC::Config::DEFAULT_WRITER is used.
29
+ # If this method is not called, then XMLRPC::Config.default_writer is used.
30
30
  def set_writer(writer)
31
31
  @create = Create.new(writer)
32
32
  self
@@ -36,7 +36,7 @@ module XMLRPC # :nodoc:
36
36
  #
37
37
  # Should be an instance of a class from module XMLRPC::XMLParser.
38
38
  #
39
- # If this method is not called, then XMLRPC::Config::DEFAULT_PARSER is used.
39
+ # If this method is not called, then XMLRPC::Config.default_parser is used.
40
40
  def set_parser(parser)
41
41
  @parser = parser
42
42
  self
@@ -46,16 +46,16 @@ module XMLRPC # :nodoc:
46
46
 
47
47
  def create
48
48
  # if set_writer was not already called then call it now
49
- if @create.nil? then
50
- set_writer(Config::DEFAULT_WRITER.new)
49
+ if @create.nil?
50
+ set_writer(Config.default_writer.new)
51
51
  end
52
52
  @create
53
53
  end
54
54
 
55
55
  def parser
56
56
  # if set_parser was not already called then call it now
57
- if @parser.nil? then
58
- set_parser(Config::DEFAULT_PARSER.new)
57
+ if @parser.nil?
58
+ set_parser(Config.default_parser.new)
59
59
  end
60
60
  @parser
61
61
  end
data/lib/xmlrpc.rb CHANGED
@@ -44,7 +44,7 @@
44
44
  # * Server
45
45
  # * Standalone XML-RPC server
46
46
  # * CGI-based (works with FastCGI)
47
- # * Apache mod_ruby server
47
+ # * Rack application
48
48
  # * WEBrick servlet
49
49
  #
50
50
  # * Client
@@ -59,9 +59,12 @@
59
59
  # * libxml (LibXMLStreamParser)
60
60
  # * Compiled
61
61
  # * See https://rubygems.org/gems/libxml-ruby/
62
+ # * nokogiri (NokogiriStreamParser)
63
+ # * Compiled
64
+ # * See https://nokogiri.org
62
65
  #
63
66
  # * General
64
- # * possible to choose between XMLParser module (Expat wrapper) and REXML (pure Ruby) parsers
67
+ # * possible to choose between REXML (pure Ruby) and LibXML/Nokogiri (compiled) parsers
65
68
  # * Marshalling Ruby objects to Hashes and reconstruct them later from a Hash
66
69
  # * SandStorm component architecture XMLRPC::Client interface
67
70
  #
@@ -275,19 +278,19 @@
275
278
  # XMLRPC::Client Example:
276
279
  #
277
280
  # # ...
278
- # server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
279
- # server.set_parser(XMLRPC::XMLParser::XMLParser.new)
281
+ # client = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
282
+ # client.set_parser(XMLRPC::XMLParser::XMLParser.new)
280
283
  # # ...
281
284
  #
282
285
  # XMLRPC::Server Example:
283
286
  #
284
287
  # # ...
285
- # s = XMLRPC::CGIServer.new
286
- # s.set_parser(XMLRPC::XMLParser::XMLParser.new)
288
+ # server = XMLRPC::CGIServer.new
289
+ # server.set_parser(XMLRPC::XMLParser::XMLParser.new)
287
290
  # # ...
288
291
  #
289
292
  #
290
293
  # You can change the XML-writer by calling method ParserWriterChooseMixin#set_writer.
291
294
  module XMLRPC
292
- VERSION = "0.3.3"
295
+ VERSION = "0.3.4"
293
296
  end
data/xmlrpc.gemspec CHANGED
@@ -18,10 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
  spec.required_ruby_version = ">= 2.3"
20
20
 
21
+ spec.add_dependency "rexml"
21
22
  spec.add_dependency "webrick"
22
-
23
- spec.add_development_dependency "bundler"
24
- spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rexml"
26
- spec.add_development_dependency "test-unit"
27
23
  end
metadata CHANGED
@@ -1,58 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmlrpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - SHIBATA Hiroshi
8
8
  - Sutou Kouhei
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2023-08-01 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: webrick
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: '0'
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: '0'
28
- - !ruby/object:Gem::Dependency
29
- name: bundler
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: rake
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
13
  - !ruby/object:Gem::Dependency
57
14
  name: rexml
58
15
  requirement: !ruby/object:Gem::Requirement
@@ -60,7 +17,7 @@ dependencies:
60
17
  - - ">="
61
18
  - !ruby/object:Gem::Version
62
19
  version: '0'
63
- type: :development
20
+ type: :runtime
64
21
  prerelease: false
65
22
  version_requirements: !ruby/object:Gem::Requirement
66
23
  requirements:
@@ -68,13 +25,13 @@ dependencies:
68
25
  - !ruby/object:Gem::Version
69
26
  version: '0'
70
27
  - !ruby/object:Gem::Dependency
71
- name: test-unit
28
+ name: webrick
72
29
  requirement: !ruby/object:Gem::Requirement
73
30
  requirements:
74
31
  - - ">="
75
32
  - !ruby/object:Gem::Version
76
33
  version: '0'
77
- type: :development
34
+ type: :runtime
78
35
  prerelease: false
79
36
  version_requirements: !ruby/object:Gem::Requirement
80
37
  requirements:
@@ -117,7 +74,6 @@ licenses:
117
74
  - Ruby
118
75
  - BSD-2-Clause
119
76
  metadata: {}
120
- post_install_message:
121
77
  rdoc_options: []
122
78
  require_paths:
123
79
  - lib
@@ -132,8 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
88
  - !ruby/object:Gem::Version
133
89
  version: '0'
134
90
  requirements: []
135
- rubygems_version: 3.5.0.dev
136
- signing_key:
91
+ rubygems_version: 4.0.6
137
92
  specification_version: 4
138
93
  summary: XMLRPC is a lightweight protocol that enables remote procedure calls over
139
94
  HTTP.