evt-identifier-uuid 0.1.1.1
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 +7 -0
- data/lib/identifier/uuid.rb +6 -0
- data/lib/identifier/uuid/controls.rb +3 -0
- data/lib/identifier/uuid/controls/incrementing.rb +24 -0
- data/lib/identifier/uuid/controls/invalid.rb +11 -0
- data/lib/identifier/uuid/controls/random.rb +11 -0
- data/lib/identifier/uuid/pattern.rb +17 -0
- data/lib/identifier/uuid/random.rb +49 -0
- data/lib/identifier/uuid/uuid.rb +30 -0
- metadata +80 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 0b1ca83ae60073221ffb5812fc7874aea2c64327
         | 
| 4 | 
            +
              data.tar.gz: fc50d559e2ae57a66d0b95b14c405b20fd43ba06
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 987fd166ba8efffac107eab68e1af8eea1f7de346d31210e89d54b8bb408c219d5f2f1bef5ba645cda2a15c0f28b246fb4865a1fec67a40c445ed2fbaef1e137
         | 
| 7 | 
            +
              data.tar.gz: 4bfa1c662a64fa4d2d8094417ca1abcdb00afdc259b4475600c3e1d915e54a7b3e9a9e30fb7add5daac35d0dcb169660d479caebed11111d02e6e29b990349d1
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            module Identifier
         | 
| 2 | 
            +
              module UUID
         | 
| 3 | 
            +
                module Controls
         | 
| 4 | 
            +
                  module Incrementing
         | 
| 5 | 
            +
                    def self.example(i=nil, increment: nil, sample: nil)
         | 
| 6 | 
            +
                      i ||= increment || 1
         | 
| 7 | 
            +
                      sample ||= false
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                      first_octet = (i).to_s.rjust(8, '0')
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                      fourth_prefixes = ['8', '9', 'a', 'b']
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                      if sample
         | 
| 14 | 
            +
                        fourth_prefix = fourth_prefixes.sample
         | 
| 15 | 
            +
                      else
         | 
| 16 | 
            +
                        fourth_prefix = fourth_prefixes[0]
         | 
| 17 | 
            +
                      end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                      "#{first_octet}-0000-4000-#{fourth_prefix}000-000000000000"
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            module Identifier
         | 
| 2 | 
            +
              module UUID
         | 
| 3 | 
            +
                module Pattern
         | 
| 4 | 
            +
                  TYPE_4 = %r{
         | 
| 5 | 
            +
                    [a-f0-9]{8}          # abcdef01
         | 
| 6 | 
            +
                    -                    #         -
         | 
| 7 | 
            +
                    [a-f0-9]{4}          #          abcd
         | 
| 8 | 
            +
                    -                    #              -
         | 
| 9 | 
            +
                    4[a-f0-9]{3}         #               4abc
         | 
| 10 | 
            +
                    -                    #                   -
         | 
| 11 | 
            +
                    [89ab][a-f0-9]{3}    #                    8abc
         | 
| 12 | 
            +
                    -                    #                        -
         | 
| 13 | 
            +
                    [a-f0-9]{12}         #                         abcdef012345
         | 
| 14 | 
            +
                  }xi
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            module Identifier
         | 
| 2 | 
            +
              module UUID
         | 
| 3 | 
            +
                class Random
         | 
| 4 | 
            +
                  def get
         | 
| 5 | 
            +
                    self.class.get
         | 
| 6 | 
            +
                  end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def self.get
         | 
| 9 | 
            +
                    UUID.format(raw)
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  def self.raw
         | 
| 13 | 
            +
                    SecureRandom.uuid
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def self.configure(receiver, attr_name=nil)
         | 
| 17 | 
            +
                    instance = new
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    if attr_name.nil?
         | 
| 20 | 
            +
                      if receiver.respond_to?(:identifier)
         | 
| 21 | 
            +
                        attr_name = :identifier
         | 
| 22 | 
            +
                      else
         | 
| 23 | 
            +
                        attr_name = :uuid
         | 
| 24 | 
            +
                      end
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    receiver.send "#{attr_name}=", instance
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    instance
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  module Substitute
         | 
| 33 | 
            +
                    NullUUID = Naught.build do |config|
         | 
| 34 | 
            +
                      config.mimic UUID::Random
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                      def set(val)
         | 
| 37 | 
            +
                        define_singleton_method(:get) do
         | 
| 38 | 
            +
                          val
         | 
| 39 | 
            +
                        end
         | 
| 40 | 
            +
                      end
         | 
| 41 | 
            +
                    end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                    def self.build
         | 
| 44 | 
            +
                      NullUUID.new
         | 
| 45 | 
            +
                    end
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
            end
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            module Identifier
         | 
| 2 | 
            +
              module UUID
         | 
| 3 | 
            +
                def self.format(uuid)
         | 
| 4 | 
            +
                  uuid.to_s
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                def self.random
         | 
| 8 | 
            +
                  Random.get
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def self.uuid?(text)
         | 
| 12 | 
            +
                  uuid = parse(text)
         | 
| 13 | 
            +
                  uuid == text
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def self.parse(text)
         | 
| 17 | 
            +
                  uuid = text.match(pattern).to_s
         | 
| 18 | 
            +
                  uuid = nil if uuid == ''
         | 
| 19 | 
            +
                  uuid
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def self.pattern
         | 
| 23 | 
            +
                  Pattern::TYPE_4
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                def self.zero
         | 
| 27 | 
            +
                  '00000000-0000-0000-0000-000000000000'
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,80 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: evt-identifier-uuid
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.1.1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - The Eventide Project
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2016-12-20 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: naught
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: ntl-test_bench
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            description: " "
         | 
| 42 | 
            +
            email: opensource@eventide-project.org
         | 
| 43 | 
            +
            executables: []
         | 
| 44 | 
            +
            extensions: []
         | 
| 45 | 
            +
            extra_rdoc_files: []
         | 
| 46 | 
            +
            files:
         | 
| 47 | 
            +
            - lib/identifier/uuid.rb
         | 
| 48 | 
            +
            - lib/identifier/uuid/controls.rb
         | 
| 49 | 
            +
            - lib/identifier/uuid/controls/incrementing.rb
         | 
| 50 | 
            +
            - lib/identifier/uuid/controls/invalid.rb
         | 
| 51 | 
            +
            - lib/identifier/uuid/controls/random.rb
         | 
| 52 | 
            +
            - lib/identifier/uuid/pattern.rb
         | 
| 53 | 
            +
            - lib/identifier/uuid/random.rb
         | 
| 54 | 
            +
            - lib/identifier/uuid/uuid.rb
         | 
| 55 | 
            +
            homepage: https://github.com/eventide-project/identifier-uuid
         | 
| 56 | 
            +
            licenses:
         | 
| 57 | 
            +
            - MIT
         | 
| 58 | 
            +
            metadata: {}
         | 
| 59 | 
            +
            post_install_message: 
         | 
| 60 | 
            +
            rdoc_options: []
         | 
| 61 | 
            +
            require_paths:
         | 
| 62 | 
            +
            - lib
         | 
| 63 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 64 | 
            +
              requirements:
         | 
| 65 | 
            +
              - - ">="
         | 
| 66 | 
            +
                - !ruby/object:Gem::Version
         | 
| 67 | 
            +
                  version: 2.3.3
         | 
| 68 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 69 | 
            +
              requirements:
         | 
| 70 | 
            +
              - - ">="
         | 
| 71 | 
            +
                - !ruby/object:Gem::Version
         | 
| 72 | 
            +
                  version: '0'
         | 
| 73 | 
            +
            requirements: []
         | 
| 74 | 
            +
            rubyforge_project: 
         | 
| 75 | 
            +
            rubygems_version: 2.5.2
         | 
| 76 | 
            +
            signing_key: 
         | 
| 77 | 
            +
            specification_version: 4
         | 
| 78 | 
            +
            summary: UUID identifier generator with support for dependency configuration for real
         | 
| 79 | 
            +
              and null object implementations
         | 
| 80 | 
            +
            test_files: []
         |