cloudi 1.7.4 → 2.0.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/cloudi.rb +104 -36
- metadata +34 -31
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cc66b5b4c55778756084c1ee148acc705cfa1b8d839a7ea8febb9a6004bd0ad2
         | 
| 4 | 
            +
              data.tar.gz: 667a4d1757a157fc95b998f2e86bb0684f47d578da9096c5791d7b349715495b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 719e2a63d056913d4dee29c91a0bafb0d9b9e4de20232f6a56c96e731ba61117114063a893330c844df37b278ed3ef5858a27b76e420538a51bbe68a56f9403b
         | 
| 7 | 
            +
              data.tar.gz: 43b9b474e3842568dba81e38944a679db1f84e3e04933b1e07948ea6feca8e5dd70d640a250b7eb0bc3673524dee56c558caec4e26ff258104cb2cc4c2df2d3d
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/cloudi.rb
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
            #
         | 
| 5 5 | 
             
            # MIT License
         | 
| 6 6 | 
             
            #
         | 
| 7 | 
            -
            # Copyright (c) 2011- | 
| 7 | 
            +
            # Copyright (c) 2011-2021 Michael Truog <mjtruog at protonmail dot com>
         | 
| 8 8 | 
             
            #
         | 
| 9 9 | 
             
            # Permission is hereby granted, free of charge, to any person obtaining a
         | 
| 10 10 | 
             
            # copy of this software and associated documentation files (the "Software"),
         | 
| @@ -31,6 +31,7 @@ $stdout.sync = true | |
| 31 31 | 
             
            $stderr.sync = true
         | 
| 32 32 |  | 
| 33 33 | 
             
            require 'erlang'
         | 
| 34 | 
            +
            require 'stringio'
         | 
| 34 35 |  | 
| 35 36 | 
             
            module CloudI
         | 
| 36 37 | 
             
                class API
         | 
| @@ -56,13 +57,14 @@ module CloudI | |
| 56 57 | 
             
                            @s.sync = true
         | 
| 57 58 | 
             
                            @use_header = true
         | 
| 58 59 | 
             
                        else
         | 
| 60 | 
            +
                            $stderr.puts 'CloudI service execution must occur in CloudI'
         | 
| 59 61 | 
             
                            raise InvalidInputException
         | 
| 60 62 | 
             
                        end
         | 
| 61 63 | 
             
                        @initialization_complete = false
         | 
| 62 64 | 
             
                        @terminate = false
         | 
| 63 65 | 
             
                        @size = buffer_size_str.to_i
         | 
| 64 66 | 
             
                        @callbacks = Hash.new
         | 
| 65 | 
            -
                        @timeout_terminate =  | 
| 67 | 
            +
                        @timeout_terminate = 10 # TIMEOUT_TERMINATE_MIN
         | 
| 66 68 | 
             
                        send(Erlang.term_to_binary(:init))
         | 
| 67 69 | 
             
                        poll_request(nil, false)
         | 
| 68 70 | 
             
                    end
         | 
| @@ -75,6 +77,7 @@ module CloudI | |
| 75 77 | 
             
                    attr_reader :timeout_async
         | 
| 76 78 | 
             
                    attr_reader :timeout_sync
         | 
| 77 79 | 
             
                    attr_reader :timeout_terminate
         | 
| 80 | 
            +
                    attr_reader :priority_default
         | 
| 78 81 |  | 
| 79 82 | 
             
                    def self.thread_count
         | 
| 80 83 | 
             
                        s = getenv('CLOUDI_API_INIT_THREAD_COUNT')
         | 
| @@ -181,7 +184,7 @@ module CloudI | |
| 181 184 | 
             
                                                    OtpErlangBinary.new(request),
         | 
| 182 185 | 
             
                                                    timeout, priority,
         | 
| 183 186 | 
             
                                                    OtpErlangBinary.new(trans_id), pid]))
         | 
| 184 | 
            -
                        raise ForwardAsyncException | 
| 187 | 
            +
                        raise ForwardAsyncException
         | 
| 185 188 | 
             
                    end
         | 
| 186 189 |  | 
| 187 190 | 
             
                    def forward_sync(name, request_info, request,
         | 
| @@ -191,7 +194,7 @@ module CloudI | |
| 191 194 | 
             
                                                    OtpErlangBinary.new(request),
         | 
| 192 195 | 
             
                                                    timeout, priority,
         | 
| 193 196 | 
             
                                                    OtpErlangBinary.new(trans_id), pid]))
         | 
| 194 | 
            -
                        raise ForwardSyncException | 
| 197 | 
            +
                        raise ForwardSyncException
         | 
| 195 198 | 
             
                    end
         | 
| 196 199 |  | 
| 197 200 | 
             
                    def return_(request_type, name, pattern, response_info, response,
         | 
| @@ -213,7 +216,7 @@ module CloudI | |
| 213 216 | 
             
                                                    OtpErlangBinary.new(response),
         | 
| 214 217 | 
             
                                                    timeout,
         | 
| 215 218 | 
             
                                                    OtpErlangBinary.new(trans_id), pid]))
         | 
| 216 | 
            -
                        raise ReturnAsyncException | 
| 219 | 
            +
                        raise ReturnAsyncException
         | 
| 217 220 | 
             
                    end
         | 
| 218 221 |  | 
| 219 222 | 
             
                    def return_sync(name, pattern, response_info, response,
         | 
| @@ -223,7 +226,7 @@ module CloudI | |
| 223 226 | 
             
                                                    OtpErlangBinary.new(response),
         | 
| 224 227 | 
             
                                                    timeout,
         | 
| 225 228 | 
             
                                                    OtpErlangBinary.new(trans_id), pid]))
         | 
| 226 | 
            -
                        raise ReturnSyncException | 
| 229 | 
            +
                        raise ReturnSyncException
         | 
| 227 230 | 
             
                    end
         | 
| 228 231 |  | 
| 229 232 | 
             
                    def recv_async(timeout=nil, trans_id=nil, consume=true)
         | 
| @@ -253,6 +256,7 @@ module CloudI | |
| 253 256 | 
             
                            function = function_queue.shift
         | 
| 254 257 | 
             
                            function_queue.push(function)
         | 
| 255 258 | 
             
                        end
         | 
| 259 | 
            +
                        return_null_response = false
         | 
| 256 260 | 
             
                        case command
         | 
| 257 261 | 
             
                        when MESSAGE_SEND_ASYNC
         | 
| 258 262 | 
             
                            begin
         | 
| @@ -272,29 +276,39 @@ module CloudI | |
| 272 276 | 
             
                                if not response.kind_of?(String)
         | 
| 273 277 | 
             
                                    response = ''
         | 
| 274 278 | 
             
                                end
         | 
| 275 | 
            -
                            rescue InvalidInputException => e
         | 
| 276 | 
            -
                                raise e
         | 
| 277 279 | 
             
                            rescue MessageDecodingException => e
         | 
| 278 | 
            -
                                 | 
| 280 | 
            +
                                @terminate = true
         | 
| 281 | 
            +
                                return_null_response = true
         | 
| 279 282 | 
             
                            rescue TerminateException => e
         | 
| 280 | 
            -
                                 | 
| 283 | 
            +
                                return_null_response = true
         | 
| 281 284 | 
             
                            rescue ReturnAsyncException
         | 
| 282 285 | 
             
                                return
         | 
| 283 | 
            -
                            rescue ForwardAsyncException
         | 
| 284 | 
            -
                                return
         | 
| 285 286 | 
             
                            rescue ReturnSyncException => e
         | 
| 287 | 
            +
                                @terminate = true
         | 
| 286 288 | 
             
                                $stderr.puts e.message
         | 
| 287 289 | 
             
                                $stderr.puts e.backtrace
         | 
| 288 | 
            -
                                 | 
| 290 | 
            +
                                return
         | 
| 291 | 
            +
                            rescue ForwardAsyncException
         | 
| 289 292 | 
             
                                return
         | 
| 290 293 | 
             
                            rescue ForwardSyncException => e
         | 
| 294 | 
            +
                                @terminate = true
         | 
| 291 295 | 
             
                                $stderr.puts e.message
         | 
| 292 296 | 
             
                                $stderr.puts e.backtrace
         | 
| 293 | 
            -
                                API.assert{false}
         | 
| 294 297 | 
             
                                return
         | 
| 298 | 
            +
                            rescue StandardError => e
         | 
| 299 | 
            +
                                return_null_response = true
         | 
| 300 | 
            +
                                $stderr.puts e.message
         | 
| 301 | 
            +
                                $stderr.puts e.backtrace
         | 
| 302 | 
            +
                            rescue SystemExit => e
         | 
| 303 | 
            +
                                $stderr.puts e.message
         | 
| 304 | 
            +
                                $stderr.puts e.backtrace
         | 
| 305 | 
            +
                                raise
         | 
| 295 306 | 
             
                            rescue
         | 
| 296 307 | 
             
                                $stderr.puts $!.message
         | 
| 297 308 | 
             
                                $stderr.puts $!.backtrace
         | 
| 309 | 
            +
                                exit(1)
         | 
| 310 | 
            +
                            end
         | 
| 311 | 
            +
                            if return_null_response
         | 
| 298 312 | 
             
                                response_info = ''
         | 
| 299 313 | 
             
                                response = ''
         | 
| 300 314 | 
             
                            end
         | 
| @@ -321,29 +335,39 @@ module CloudI | |
| 321 335 | 
             
                                if not response.kind_of?(String)
         | 
| 322 336 | 
             
                                    response = ''
         | 
| 323 337 | 
             
                                end
         | 
| 324 | 
            -
                            rescue InvalidInputException => e
         | 
| 325 | 
            -
                                raise e
         | 
| 326 338 | 
             
                            rescue MessageDecodingException => e
         | 
| 327 | 
            -
                                 | 
| 339 | 
            +
                                @terminate = true
         | 
| 340 | 
            +
                                return_null_response = true
         | 
| 328 341 | 
             
                            rescue TerminateException => e
         | 
| 329 | 
            -
                                 | 
| 342 | 
            +
                                return_null_response = true
         | 
| 330 343 | 
             
                            rescue ReturnSyncException
         | 
| 331 344 | 
             
                                return
         | 
| 332 | 
            -
                            rescue ForwardSyncException
         | 
| 333 | 
            -
                                return
         | 
| 334 345 | 
             
                            rescue ReturnAsyncException => e
         | 
| 346 | 
            +
                                @terminate = true
         | 
| 335 347 | 
             
                                $stderr.puts e.message
         | 
| 336 348 | 
             
                                $stderr.puts e.backtrace
         | 
| 337 | 
            -
                                 | 
| 349 | 
            +
                                return
         | 
| 350 | 
            +
                            rescue ForwardSyncException
         | 
| 338 351 | 
             
                                return
         | 
| 339 352 | 
             
                            rescue ForwardAsyncException => e
         | 
| 353 | 
            +
                                @terminate = true
         | 
| 340 354 | 
             
                                $stderr.puts e.message
         | 
| 341 355 | 
             
                                $stderr.puts e.backtrace
         | 
| 342 | 
            -
                                API.assert{false}
         | 
| 343 356 | 
             
                                return
         | 
| 357 | 
            +
                            rescue StandardError => e
         | 
| 358 | 
            +
                                return_null_response = true
         | 
| 359 | 
            +
                                $stderr.puts e.message
         | 
| 360 | 
            +
                                $stderr.puts e.backtrace
         | 
| 361 | 
            +
                            rescue SystemExit => e
         | 
| 362 | 
            +
                                $stderr.puts e.message
         | 
| 363 | 
            +
                                $stderr.puts e.backtrace
         | 
| 364 | 
            +
                                raise
         | 
| 344 365 | 
             
                            rescue
         | 
| 345 366 | 
             
                                $stderr.puts $!.message
         | 
| 346 367 | 
             
                                $stderr.puts $!.backtrace
         | 
| 368 | 
            +
                                exit(1)
         | 
| 369 | 
            +
                            end
         | 
| 370 | 
            +
                            if return_null_response
         | 
| 347 371 | 
             
                                response_info = ''
         | 
| 348 372 | 
             
                                response = ''
         | 
| 349 373 | 
             
                            end
         | 
| @@ -402,7 +426,11 @@ module CloudI | |
| 402 426 |  | 
| 403 427 | 
             
                    def poll_request(timeout, external)
         | 
| 404 428 | 
             
                        if @terminate
         | 
| 405 | 
            -
                             | 
| 429 | 
            +
                            if external
         | 
| 430 | 
            +
                                return false
         | 
| 431 | 
            +
                            else
         | 
| 432 | 
            +
                                raise TerminateException.new(@timeout_terminate)
         | 
| 433 | 
            +
                            end
         | 
| 406 434 | 
             
                        elsif external and not @initialization_complete
         | 
| 407 435 | 
             
                            send(Erlang.term_to_binary(:polling))
         | 
| 408 436 | 
             
                            @initialization_complete = true
         | 
| @@ -492,6 +520,9 @@ module CloudI | |
| 492 520 | 
             
                                callback(command, name, pattern, request_info, request,
         | 
| 493 521 | 
             
                                         request_timeout, priority, trans_id,
         | 
| 494 522 | 
             
                                         Erlang.binary_to_term(pid))
         | 
| 523 | 
            +
                                if @terminate
         | 
| 524 | 
            +
                                    return false
         | 
| 525 | 
            +
                                end
         | 
| 495 526 | 
             
                            when MESSAGE_RECV_ASYNC, MESSAGE_RETURN_SYNC
         | 
| 496 527 | 
             
                                i += j; j = 4
         | 
| 497 528 | 
             
                                response_info_size = data[i, j].unpack('L')[0]
         | 
| @@ -615,35 +646,66 @@ module CloudI | |
| 615 646 | 
             
                        return poll_request(timeout, true)
         | 
| 616 647 | 
             
                    end
         | 
| 617 648 |  | 
| 618 | 
            -
                    def  | 
| 619 | 
            -
                         | 
| 620 | 
            -
             | 
| 621 | 
            -
                         | 
| 622 | 
            -
             | 
| 649 | 
            +
                    def shutdown(reason=nil)
         | 
| 650 | 
            +
                        if reason.nil?
         | 
| 651 | 
            +
                            reason = ''
         | 
| 652 | 
            +
                        end
         | 
| 653 | 
            +
                        send(Erlang.term_to_binary([:shutdown, reason]))
         | 
| 654 | 
            +
                    end
         | 
| 655 | 
            +
             | 
| 656 | 
            +
                    def self.text_pairs_parse(text)
         | 
| 657 | 
            +
                        pairs = {}
         | 
| 658 | 
            +
                        text_segments = text.split(NULL.chr)
         | 
| 659 | 
            +
                        (0...(text_segments.length)).step(2).each do |i|
         | 
| 660 | 
            +
                            value = pairs[text_segments[i]]
         | 
| 623 661 | 
             
                            if value == nil
         | 
| 624 | 
            -
                                 | 
| 662 | 
            +
                                pairs[text_segments[i]] = text_segments[i + 1]
         | 
| 625 663 | 
             
                            elsif value.kind_of?(Array)
         | 
| 626 | 
            -
                                value <<  | 
| 664 | 
            +
                                value << text_segments[i + 1]
         | 
| 627 665 | 
             
                            else
         | 
| 628 | 
            -
                                 | 
| 666 | 
            +
                                pairs[text_segments[i]] = [value, text_segments[i + 1]]
         | 
| 629 667 | 
             
                            end
         | 
| 630 668 | 
             
                        end
         | 
| 631 | 
            -
                        return  | 
| 669 | 
            +
                        return pairs
         | 
| 632 670 | 
             
                    end
         | 
| 633 671 |  | 
| 634 | 
            -
                    def  | 
| 635 | 
            -
                         | 
| 672 | 
            +
                    def self.text_pairs_new(pairs, response)
         | 
| 673 | 
            +
                        text_stream = StringIO.new
         | 
| 674 | 
            +
                        pairs.each do |key, values|
         | 
| 675 | 
            +
                            if values.kind_of?(String)
         | 
| 676 | 
            +
                                text_stream.write "#{key}\0#{values}\0"
         | 
| 677 | 
            +
                            else
         | 
| 678 | 
            +
                                values.each do |value|
         | 
| 679 | 
            +
                                    text_stream.write "#{key}\0#{value}\0"
         | 
| 680 | 
            +
                                end
         | 
| 681 | 
            +
                            end
         | 
| 682 | 
            +
                        end
         | 
| 683 | 
            +
                        text = text_stream.string
         | 
| 684 | 
            +
                        if response and text == ''
         | 
| 685 | 
            +
                            return "\0"
         | 
| 686 | 
            +
                        else
         | 
| 687 | 
            +
                            return text
         | 
| 688 | 
            +
                        end
         | 
| 689 | 
            +
                    end
         | 
| 690 | 
            +
             | 
| 691 | 
            +
                    def self.info_key_value_parse(info)
         | 
| 692 | 
            +
                        return text_pairs_parse(info)
         | 
| 693 | 
            +
                    end
         | 
| 694 | 
            +
             | 
| 695 | 
            +
                    def self.info_key_value_new(pairs, response = true)
         | 
| 696 | 
            +
                        return text_pairs_new(pairs, response)
         | 
| 636 697 | 
             
                    end
         | 
| 637 698 |  | 
| 638 699 | 
             
                    def self.assert
         | 
| 639 | 
            -
                        raise  | 
| 700 | 
            +
                        raise AssertionError unless yield # if $DEBUG
         | 
| 640 701 | 
             
                    end
         | 
| 641 702 |  | 
| 642 703 | 
             
                    private :null_response
         | 
| 643 704 | 
             
                    private :callback
         | 
| 644 705 | 
             
                    private :handle_events
         | 
| 645 706 | 
             
                    private :poll_request
         | 
| 646 | 
            -
                     | 
| 707 | 
            +
                    private_class_method :text_pairs_parse
         | 
| 708 | 
            +
                    private_class_method :text_pairs_new
         | 
| 647 709 | 
             
                    private
         | 
| 648 710 |  | 
| 649 711 | 
             
                    def send(data)
         | 
| @@ -729,5 +791,11 @@ module CloudI | |
| 729 791 | 
             
                    end
         | 
| 730 792 | 
             
                    attr_reader :timeout
         | 
| 731 793 | 
             
                end
         | 
| 794 | 
            +
             | 
| 795 | 
            +
                class AssertionError < Exception
         | 
| 796 | 
            +
                end
         | 
| 797 | 
            +
             | 
| 798 | 
            +
                class FatalError < Exception
         | 
| 799 | 
            +
                end
         | 
| 732 800 | 
             
            end
         | 
| 733 801 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cloudi
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Michael Truog
         | 
| @@ -10,27 +10,31 @@ bindir: bin | |
| 10 10 | 
             
            cert_chain:
         | 
| 11 11 | 
             
            - |
         | 
| 12 12 | 
             
              -----BEGIN CERTIFICATE-----
         | 
| 13 | 
            -
               | 
| 14 | 
            -
               | 
| 15 | 
            -
               | 
| 16 | 
            -
               | 
| 17 | 
            -
               | 
| 18 | 
            -
               | 
| 19 | 
            -
               | 
| 20 | 
            -
              / | 
| 21 | 
            -
               | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 24 | 
            -
               | 
| 25 | 
            -
               | 
| 26 | 
            -
               | 
| 27 | 
            -
               | 
| 28 | 
            -
               | 
| 29 | 
            -
               | 
| 30 | 
            -
               | 
| 31 | 
            -
               | 
| 13 | 
            +
              MIIESDCCArCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDDBxtanRy
         | 
| 14 | 
            +
              dW9nL0RDPXByb3Rvbm1haWwvREM9Y29tMB4XDTIxMDUyNzIwNTIwMFoXDTIyMDUy
         | 
| 15 | 
            +
              NzIwNTIwMFowJzElMCMGA1UEAwwcbWp0cnVvZy9EQz1wcm90b25tYWlsL0RDPWNv
         | 
| 16 | 
            +
              bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMd6XAi81JZcv5AzNqvx
         | 
| 17 | 
            +
              7rPXgBArpQVU0zoUCcJ8ZkszXLnaDkyLXZZDWi4tNIZGzkFGzJv2YxQg/ocUzZXF
         | 
| 18 | 
            +
              ixcKuCiUF8nvV58DrFxd8ZYvYMk9GDoU95zIu/brrn6KeFP/nd10vtx46hSlGgeE
         | 
| 19 | 
            +
              2vzk2pxw8Umml6xwTuximLjVcetas0tIm3kcUAhdWnI7hTgQbPmsGMEtpebpx4Ff
         | 
| 20 | 
            +
              RluZWlBVLt0i1mFpG2BxtGXLFxgxzK/syD8ZHBwaraW5k2ENY163TaJUo2NjDpNF
         | 
| 21 | 
            +
              0GpcyslZLz0JKKS1RHyuj6fI5cB+7pP/ewbU7ksoMa8zN067gG6Ry75RnKu/Tfzv
         | 
| 22 | 
            +
              Ebh3eBwapuvHnPsWZlyqsPBhoFUH2JUknUgtcg1Q2S6CmzyxdyDaU8OugladoDzF
         | 
| 23 | 
            +
              hWuqx3Mt2cvo1kIUCmxUFtHDzTWy5MP0LMv2IwvU6bbgzgbDndqAj9OesQYTxQ7L
         | 
| 24 | 
            +
              rbMFjq1GW7nQXvU9GEb1WJYr2Aq8qovn/6mxFWjPVIp7gQIDAQABo38wfTAJBgNV
         | 
| 25 | 
            +
              HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUoFV73/q6KrKCMTCPVy0+jptr
         | 
| 26 | 
            +
              25AwIQYDVR0RBBowGIEWbWp0cnVvZ0Bwcm90b25tYWlsLmNvbTAhBgNVHRIEGjAY
         | 
| 27 | 
            +
              gRZtanRydW9nQHByb3Rvbm1haWwuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQATTfoe
         | 
| 28 | 
            +
              WbWoOclAmsl338LM/RjGpXVi6N9XF01JhgIXJqQocMlc6L8I6hG9288bQ4nYtYHU
         | 
| 29 | 
            +
              Zpw1Wy+5nlAtoacG+ngQLnB1k+oLi1PXN//MjcD5N+qyAgZ71StjzH7+cPiEA5aw
         | 
| 30 | 
            +
              0CCXPnsZQR892eESnE8Sc6QEc4iwCdIqbwBgQ4tjF6I34odtuAO2Ydp6keE/eqeQ
         | 
| 31 | 
            +
              UdATiqZuvgi/n3fgvFD8FgDec8eiM/u3+n30xc+86m2uqiKSf9ueBNZRmNq9umc4
         | 
| 32 | 
            +
              qyyl2UpTyk2WqaXXRCLqKF20QlU2lyR2JnPh7+EsrQKmaaPtw+7QwRhERxXza52x
         | 
| 33 | 
            +
              lSRl2bAVGGyRLghx/n1K1ZISc9UJERR7tdEz3N4fbKzRxG5Tk0b7HdeGotue9Zt3
         | 
| 34 | 
            +
              WH4J2/+Q2b2u3K1U9iGPxyO3BEBz36D/qdddw1eZTdpT6LFrBQNOVS8C/cVRpUlp
         | 
| 35 | 
            +
              VOqfJ1qX4PhcbAYvPwmU8NKJ1UDTdEf4+e+JgHk5qLzpjNsiHYEGTN3E7Gw=
         | 
| 32 36 | 
             
              -----END CERTIFICATE-----
         | 
| 33 | 
            -
            date:  | 
| 37 | 
            +
            date: 2021-05-27 00:00:00.000000000 Z
         | 
| 34 38 | 
             
            dependencies:
         | 
| 35 39 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 36 40 | 
             
              name: erlang_rb
         | 
| @@ -38,40 +42,40 @@ dependencies: | |
| 38 42 | 
             
                requirements:
         | 
| 39 43 | 
             
                - - "~>"
         | 
| 40 44 | 
             
                  - !ruby/object:Gem::Version
         | 
| 41 | 
            -
                    version: ' | 
| 45 | 
            +
                    version: '2.0'
         | 
| 42 46 | 
             
                - - ">="
         | 
| 43 47 | 
             
                  - !ruby/object:Gem::Version
         | 
| 44 | 
            -
                    version:  | 
| 48 | 
            +
                    version: 2.0.2
         | 
| 45 49 | 
             
              type: :runtime
         | 
| 46 50 | 
             
              prerelease: false
         | 
| 47 51 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 48 52 | 
             
                requirements:
         | 
| 49 53 | 
             
                - - "~>"
         | 
| 50 54 | 
             
                  - !ruby/object:Gem::Version
         | 
| 51 | 
            -
                    version: ' | 
| 55 | 
            +
                    version: '2.0'
         | 
| 52 56 | 
             
                - - ">="
         | 
| 53 57 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 58 | 
            +
                    version: 2.0.2
         | 
| 55 59 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 60 | 
             
              name: erlang_rb
         | 
| 57 61 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 62 | 
             
                requirements:
         | 
| 59 63 | 
             
                - - "~>"
         | 
| 60 64 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: ' | 
| 65 | 
            +
                    version: '2.0'
         | 
| 62 66 | 
             
                - - ">="
         | 
| 63 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 64 | 
            -
                    version:  | 
| 68 | 
            +
                    version: 2.0.2
         | 
| 65 69 | 
             
              type: :development
         | 
| 66 70 | 
             
              prerelease: false
         | 
| 67 71 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 68 72 | 
             
                requirements:
         | 
| 69 73 | 
             
                - - "~>"
         | 
| 70 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 71 | 
            -
                    version: ' | 
| 75 | 
            +
                    version: '2.0'
         | 
| 72 76 | 
             
                - - ">="
         | 
| 73 77 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 | 
            -
                    version:  | 
| 78 | 
            +
                    version: 2.0.2
         | 
| 75 79 | 
             
            description: Ruby CloudI API
         | 
| 76 80 | 
             
            email: mjtruog@protonmail.com
         | 
| 77 81 | 
             
            executables: []
         | 
| @@ -100,8 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 100 104 | 
             
                - !ruby/object:Gem::Version
         | 
| 101 105 | 
             
                  version: '0'
         | 
| 102 106 | 
             
            requirements: []
         | 
| 103 | 
            -
             | 
| 104 | 
            -
            rubygems_version: 2.7.7
         | 
| 107 | 
            +
            rubygems_version: 3.1.2
         | 
| 105 108 | 
             
            signing_key: 
         | 
| 106 109 | 
             
            specification_version: 4
         | 
| 107 110 | 
             
            summary: CloudI API
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |