universa 0.3.1 → 0.3.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
- data/lib/universa/client.rb +2 -0
- data/lib/universa/contract.rb +24 -2
- data/lib/universa/ubox.rb +41 -0
- data/lib/universa/version.rb +1 -1
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8bcc91f917cdd77fa909ad8b9224717144650012c4e81af41414560f820bcc8e
         | 
| 4 | 
            +
              data.tar.gz: 79503f7a631b4772126fb48f4dd155e32170893a472a7ca56f27292d9757b844
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 89e22f1e4d1862cf6c949b7b1221dedb77a4218329af56af32dcdb2f97c95fca184cec156623ddba808bd6a8e38e149dd31d19c7122363422851260e7d03691f
         | 
| 7 | 
            +
              data.tar.gz: 47c521fcd58fcb88e41525957bf882f37b6f8dd621ace5e4b24515709b6992e0f387e34f6494568112d948dc8cd6103e2fbddd4bb4e65fa057896c16fce68a03
         | 
    
        data/lib/universa/client.rb
    CHANGED
    
    | @@ -113,8 +113,10 @@ module Universa | |
| 113 113 |  | 
| 114 114 | 
             
              end
         | 
| 115 115 |  | 
| 116 | 
            +
              # The connection to a single Universa node.
         | 
| 116 117 | 
             
              class Connection
         | 
| 117 118 |  | 
| 119 | 
            +
                # Do not create it direcly, use {Client#random_connection}, {Client#random_connections} or {Client#[]} instead
         | 
| 118 120 | 
             
                def initialize umi_client
         | 
| 119 121 | 
             
                  @client = umi_client
         | 
| 120 122 | 
             
                end
         | 
    
        data/lib/universa/contract.rb
    CHANGED
    
    | @@ -53,7 +53,7 @@ module Universa | |
| 53 53 | 
             
                #
         | 
| 54 54 | 
             
                # @param [String] string_id id string representation, like from +hash_id_instance.to_s+. See {#to_s}.
         | 
| 55 55 | 
             
                def self.from_string(string_id)
         | 
| 56 | 
            -
                  string_id.force_encoding('utf-8').gsub('-','+').gsub('_','/')
         | 
| 56 | 
            +
                  string_id.force_encoding('utf-8').gsub('-', '+').gsub('_', '/')
         | 
| 57 57 | 
             
                  invoke_static 'with_digest', string_id
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| @@ -80,7 +80,7 @@ module Universa | |
| 80 80 | 
             
                # Could be decoded safely back with {HashId.from_string} but not (most likely) with JAVA API itself
         | 
| 81 81 | 
             
                # @return [String] RFC3548 modified base64
         | 
| 82 82 | 
             
                def to_url_safe_string
         | 
| 83 | 
            -
                  Base64.encode64(get_digest).gsub(/\s/, '').gsub('/','_').gsub('+', '-')
         | 
| 83 | 
            +
                  Base64.encode64(get_digest).gsub(/\s/, '').gsub('/', '_').gsub('+', '-')
         | 
| 84 84 | 
             
                end
         | 
| 85 85 |  | 
| 86 86 | 
             
                # To use it as a hash key_address.
         | 
| @@ -94,6 +94,21 @@ module Universa | |
| 94 94 | 
             
                  self == other
         | 
| 95 95 | 
             
                end
         | 
| 96 96 |  | 
| 97 | 
            +
                # Compare hashid with string representation, binary representation or another HashId instance
         | 
| 98 | 
            +
                # automatically.
         | 
| 99 | 
            +
                def == other
         | 
| 100 | 
            +
                  return false if other == nil
         | 
| 101 | 
            +
                  if other.is_a?(Universa::HashId)
         | 
| 102 | 
            +
                    super
         | 
| 103 | 
            +
                  else
         | 
| 104 | 
            +
                    if other.size == 96
         | 
| 105 | 
            +
                      bytes == other
         | 
| 106 | 
            +
                    else
         | 
| 107 | 
            +
                      to_s == other
         | 
| 108 | 
            +
                    end
         | 
| 109 | 
            +
                  end
         | 
| 110 | 
            +
                end
         | 
| 111 | 
            +
             | 
| 97 112 | 
             
              end
         | 
| 98 113 |  | 
| 99 114 | 
             
              # Universa contract adapter.
         | 
| @@ -278,6 +293,13 @@ module Universa | |
| 278 293 | 
             
                  revoke
         | 
| 279 294 | 
             
                end
         | 
| 280 295 |  | 
| 296 | 
            +
                # Ruby-style contracts equality.
         | 
| 297 | 
            +
                def == other
         | 
| 298 | 
            +
                  return false if !other || !other.is_a?(Contract)
         | 
| 299 | 
            +
                  hash_id == other.hash_id
         | 
| 300 | 
            +
                end
         | 
| 301 | 
            +
             | 
| 302 | 
            +
             | 
| 281 303 | 
             
              end
         | 
| 282 304 |  | 
| 283 305 | 
             
            end
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            # THIS IS A WORK IN PROGRESS COULD VE CHANGED COMPLETELY, OR EVEN DROPPED. DO NOT USE!!!
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            =begin
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            U-Box is a special one-contract transactional filesystem-based storage to hold U packs. It is file based,
         | 
| 6 | 
            +
            both file and extension are significant.
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            File name is:
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            <name>_<units>
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            where
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            - <name> is just a name of the pack. When unique name collides, <name> is appended with a serial <name><serial>.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            extensions are:
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            .u - currently active U pack
         | 
| 19 | 
            +
            .u1 - next U pack, exist while payment operation is in progress
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            .us file timestamp is used as FS lock flag. If it is newer than 45s, the ubox is considered locked. after it
         | 
| 22 | 
            +
                the cleanup procedure should be performed.
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            UBox wallet contains various assets that could be used to pay for transactions:
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            - ~/.universa/ubox contains all U-packs available for the system
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            - ~/.universa/ubox/inbox could be used to put U-packs in .unicon formaat to be automatically imported
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            =end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            require 'fileutils'
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            class UBox
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              def import contract: nil, path: "~/.universa/ubox"
         | 
| 37 | 
            +
                @path = path
         | 
| 38 | 
            +
                FileUtils.mkdir_p(path) unless File.exist?(path)
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            end
         | 
    
        data/lib/universa/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: universa
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - sergeych
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-05-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: farcall
         | 
| @@ -170,6 +170,7 @@ files: | |
| 170 170 | 
             
            - lib/universa/string_utils.rb
         | 
| 171 171 | 
             
            - lib/universa/tools.rb
         | 
| 172 172 | 
             
            - lib/universa/u_settings.rb
         | 
| 173 | 
            +
            - lib/universa/ubox.rb
         | 
| 173 174 | 
             
            - lib/universa/umi.rb
         | 
| 174 175 | 
             
            - lib/universa/version.rb
         | 
| 175 176 | 
             
            - lib/universa/weak_reference.rb
         | 
| @@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 193 194 | 
             
                - !ruby/object:Gem::Version
         | 
| 194 195 | 
             
                  version: '0'
         | 
| 195 196 | 
             
            requirements: []
         | 
| 196 | 
            -
            rubygems_version: 3.0. | 
| 197 | 
            +
            rubygems_version: 3.0.3
         | 
| 197 198 | 
             
            signing_key: 
         | 
| 198 199 | 
             
            specification_version: 4
         | 
| 199 200 | 
             
            summary: Expose Universa Java API to ruby
         |