nuid-sdk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 77fc98b1337b47b0be5eb21ee7ff594b0debb6810712cfa898766bb36756c613
4
+ data.tar.gz: a5e97a583efa1a33afcd05a6946c0f6af49f74f536628feef0de294d45c25531
5
+ SHA512:
6
+ metadata.gz: 594d9c967068b6e5044022b14b12a50f34dcc5c563498eba0218d7ede6e6102c2f495ecf58b48aac2e99aaf0fbf9e5e8ddb5f393c996218df635ecc73bbea3e0
7
+ data.tar.gz: 9271877573ed17b00843b0f8cf4c1cb56e56b67e6ba4bbcf1417f5801fff9f65bdc4ffe6facf2d3454616597b66ac34962f8b11d7dbb65736988d1a4dded50cb
data/.env.sample ADDED
@@ -0,0 +1 @@
1
+ NUID_API_KEY=
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .env
data/Dockerfile ADDED
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.7-alpine3.13
2
+ LABEL maintainer="NuID Developers <dev@nuid.io>"
3
+ WORKDIR /nuid/sdk-ruby
4
+ ADD . .
5
+ RUN apk add git nodejs npm
6
+ RUN gem install bundler
7
+ RUN bundle install
8
+ RUN npm install
9
+ ENV PATH=$PATH:/nuid/sdk-ruby/node_modules/.bin
10
+ CMD /bin/sh
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in nuid-sdk.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "minitest", "~> 5.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ nuid-sdk (0.1.0)
5
+ httparty (~> 0.18.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ httparty (0.18.1)
11
+ mime-types (~> 3.0)
12
+ multi_xml (>= 0.5.2)
13
+ mime-types (3.3.1)
14
+ mime-types-data (~> 3.2015)
15
+ mime-types-data (3.2020.1104)
16
+ minitest (5.14.3)
17
+ multi_xml (0.6.0)
18
+ rake (12.3.3)
19
+
20
+ PLATFORMS
21
+ ruby
22
+
23
+ DEPENDENCIES
24
+ minitest (~> 5.0)
25
+ nuid-sdk!
26
+ rake (~> 12.0)
27
+
28
+ BUNDLED WITH
29
+ 2.1.4
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 BJ Neilsen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/Makefile ADDED
@@ -0,0 +1,27 @@
1
+ image=nuid/sdk-ruby
2
+ container=nuid-sdk-ruby
3
+
4
+ build:
5
+ docker build -t "$(image):latest" .
6
+
7
+ clean: stop rm rmi
8
+
9
+ rm:
10
+ docker rm $(container)
11
+
12
+ rmi:
13
+ docker rmi $(image)
14
+
15
+ run:
16
+ docker run -v $$PWD:/nuid/sdk-ruby -it -d --env-file .env --name $(container) $(image) /bin/sh
17
+
18
+ shell:
19
+ docker exec -it $(container) /bin/sh
20
+
21
+ stop:
22
+ docker stop $(container)
23
+
24
+ test:
25
+ docker exec -it $(container) rake test
26
+
27
+ .PHONY: test
data/README.md ADDED
@@ -0,0 +1,84 @@
1
+ <p align="right"><a href="https://nuid.io"><img src="https://nuid.io/svg/logo.svg" width="20%"></a></p>
2
+
3
+ # NuID SDK for Ruby
4
+
5
+ This repo provides a Ruby Gem for interacting with NuID APIs within Ruby
6
+ applications.
7
+
8
+ Read the latest [package
9
+ docs](http://libdocs.s3-website-us-east-1.amazonaws.com/sdk-ruby/v0.1.0/) or
10
+ checkout the [platform docs](https://portal.nuid.io/docs) for API docs, guides,
11
+ video tutorials, and more.
12
+
13
+ ## Install
14
+
15
+ From [rubygems](https://rubygems.org/gems/nuid-sdk):
16
+
17
+ ```sh
18
+ gem install nuid-sdk -v "0.1.0"
19
+ ```
20
+
21
+ Or with bundler:
22
+
23
+ ```ruby
24
+ # Gemfile
25
+ gem "nuid-sdk", "~> 0.1.0"
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ Example rails auth controller.
31
+
32
+ For a more detailed example visit the [Integrating with
33
+ NuID](https://portal.nuid.io/docs/guides/integrating-with-nuid) guide and its
34
+ accompanying repository
35
+ [node-example](https://github.com/NuID/node-example/tree/bj/client-server-apps).
36
+ A ruby-specific code example is coming soon.
37
+
38
+ ```ruby
39
+ require "nuid-sdk"
40
+
41
+ class UsersController < ApplicationController
42
+ NUID_API = ::NuID::SDK::API::Auth.new(ENV["NUID_API_KEY"])
43
+
44
+ def register
45
+ credential_res = NUID_API.credential_create(params[:verified_credential])
46
+ if credential_res.ok?
47
+ user_params = params.require(:email, :first_name, :last_name)
48
+ .merge({nuid: credential_res.body["nu/id"]})
49
+ @current_user = User.create(user_params)
50
+ render json: @current_user, status: :created
51
+ else
52
+ render status: :bad_request
53
+ end
54
+ end
55
+ end
56
+ ```
57
+
58
+ ## Development
59
+
60
+ You'll want to download docker to run the tests, as we depend on the
61
+ `@nuid/cli` npm package to provide a CLI you can shell out to
62
+ in the tests for generating zk crypto. After checking out the repo, run
63
+ `bin/setup` to install dependencies and create the docker environment. Then, run
64
+ `make test` to run the tests inside the running container. You can also run
65
+ `bin/console` for an interactive prompt that will allow you to experiment, but
66
+ you'll probably want to run that in the container (use `make shell` to get a
67
+ prompt in the container).
68
+
69
+ `make clean` will stop and destroy the container and image. `make build run`
70
+ will rebuild the image and run the container.
71
+
72
+ To install this gem onto your local machine, run `bundle exec rake install`. To
73
+ release a new version, update the version number in `version.rb`, and then run
74
+ `bundle exec rake release`, which will create a git tag for the version, push
75
+ git commits and tags, and push the `.gem` file to
76
+ [rubygems.org](https://rubygems.org).
77
+
78
+ ## Contributing
79
+
80
+ Bug reports and pull requests are welcome on GitHub at https://github.com/NuID/sdk-ruby.
81
+
82
+ ## License
83
+
84
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["test/**/*_test.rb"]
8
+ end
9
+
10
+ task :default => :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "nuid/sdk"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+ make build run
data/lib/nuid/sdk.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "nuid/sdk/version"
2
+
3
+ module NuID::SDK
4
+ class Error < StandardError; end
5
+ end
@@ -0,0 +1,47 @@
1
+ require "httparty"
2
+
3
+ module NuID::SDK::API
4
+ class Auth
5
+ include HTTParty
6
+ base_uri "https://auth.nuid.io"
7
+
8
+ attr_reader :api_key
9
+
10
+ def initialize(api_key)
11
+ @api_key = api_key
12
+ self.class.headers({
13
+ "X-API-Key" => @api_key,
14
+ "Accept" => "application/json"
15
+ })
16
+ end
17
+
18
+ def challenge_get(credential)
19
+ _post("/challenge", {"nuid/credential" => credential})
20
+ end
21
+
22
+ def challenge_verify(challenge_jwt, proof)
23
+ _post("/challenge/verify", {
24
+ "nuid.credential.challenge/jwt" => challenge_jwt,
25
+ "nuid.credential/proof" => proof
26
+ })
27
+ end
28
+
29
+ def credential_create(verified_credential)
30
+ _post("/credential", {"nuid.credential/verified" => verified_credential})
31
+ end
32
+
33
+ def credential_get(nuid)
34
+ self.class.get("/credential/#{nuid}")
35
+ end
36
+
37
+ private
38
+
39
+ def _post(path, body)
40
+ self.class.post(path, {
41
+ headers: {"Content-Type" => "application/json"},
42
+ body: body.to_json
43
+ })
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,5 @@
1
+ module NuID
2
+ module SDK
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
data/nuid-sdk.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ require_relative "lib/nuid/sdk/version"
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "nuid-sdk"
5
+ spec.version = NuID::SDK::VERSION
6
+ spec.authors = ["BJ Neilsen"]
7
+ spec.email = ["bj.neilsen@gmail.com"]
8
+
9
+ spec.summary = %q{SDK for interacting with NuID APIs in Ruby}
10
+ spec.homepage = "https://portal.nuid.io/docs"
11
+ spec.license = "MIT"
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = "https://github.com/NuID/sdk-ruby"
18
+ spec.metadata["changelog_uri"] = "https://github.com/NuID/sdk-ruby/blob/master/CHANGELOG.md"
19
+
20
+ spec.add_dependency "httparty", "~> 0.18.1"
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
25
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ end
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+ end
data/package-lock.json ADDED
@@ -0,0 +1,140 @@
1
+ {
2
+ "name": "sdk-ruby",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "@nuid/cli": {
8
+ "version": "0.1.0",
9
+ "resolved": "https://registry.npmjs.org/@nuid/cli/-/cli-0.1.0.tgz",
10
+ "integrity": "sha512-tWQ3swq/ue9Bup9sGOtoPLWJksaDkrWYwFKYFdIffrWnkuOBycJXvFtIcBQJ8ZaP0fOzenKzdIpzzeO4obyz0w==",
11
+ "dev": true,
12
+ "requires": {
13
+ "@nuid/zk": "^0.1.1",
14
+ "commander": "^7.0.0"
15
+ }
16
+ },
17
+ "@nuid/zk": {
18
+ "version": "0.1.1",
19
+ "resolved": "https://registry.npmjs.org/@nuid/zk/-/zk-0.1.1.tgz",
20
+ "integrity": "sha512-05nk2K0lXNkRMJKny8gEEsVuAl1xz9xkrM55pjvCp6WrOpmYO2WO1nJ5tDWmkbqKrsZBEJUjVURyfJrF+boGkA==",
21
+ "dev": true,
22
+ "requires": {
23
+ "bn.js": "^5.1.1",
24
+ "brorand": "^1.1.0",
25
+ "buffer": "^5.6.0",
26
+ "elliptic": "^6.5.3",
27
+ "hash.js": "^1.1.7",
28
+ "scryptsy": "^2.1.0"
29
+ }
30
+ },
31
+ "base64-js": {
32
+ "version": "1.5.1",
33
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
34
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
35
+ "dev": true
36
+ },
37
+ "bn.js": {
38
+ "version": "5.1.3",
39
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
40
+ "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
41
+ "dev": true
42
+ },
43
+ "brorand": {
44
+ "version": "1.1.0",
45
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
46
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
47
+ "dev": true
48
+ },
49
+ "buffer": {
50
+ "version": "5.7.1",
51
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
52
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
53
+ "dev": true,
54
+ "requires": {
55
+ "base64-js": "^1.3.1",
56
+ "ieee754": "^1.1.13"
57
+ }
58
+ },
59
+ "commander": {
60
+ "version": "7.0.0",
61
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz",
62
+ "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==",
63
+ "dev": true
64
+ },
65
+ "elliptic": {
66
+ "version": "6.5.4",
67
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
68
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
69
+ "dev": true,
70
+ "requires": {
71
+ "bn.js": "^4.11.9",
72
+ "brorand": "^1.1.0",
73
+ "hash.js": "^1.0.0",
74
+ "hmac-drbg": "^1.0.1",
75
+ "inherits": "^2.0.4",
76
+ "minimalistic-assert": "^1.0.1",
77
+ "minimalistic-crypto-utils": "^1.0.1"
78
+ },
79
+ "dependencies": {
80
+ "bn.js": {
81
+ "version": "4.11.9",
82
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
83
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
84
+ "dev": true
85
+ }
86
+ }
87
+ },
88
+ "hash.js": {
89
+ "version": "1.1.7",
90
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
91
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
92
+ "dev": true,
93
+ "requires": {
94
+ "inherits": "^2.0.3",
95
+ "minimalistic-assert": "^1.0.1"
96
+ }
97
+ },
98
+ "hmac-drbg": {
99
+ "version": "1.0.1",
100
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
101
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
102
+ "dev": true,
103
+ "requires": {
104
+ "hash.js": "^1.0.3",
105
+ "minimalistic-assert": "^1.0.0",
106
+ "minimalistic-crypto-utils": "^1.0.1"
107
+ }
108
+ },
109
+ "ieee754": {
110
+ "version": "1.2.1",
111
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
112
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
113
+ "dev": true
114
+ },
115
+ "inherits": {
116
+ "version": "2.0.4",
117
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
118
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
119
+ "dev": true
120
+ },
121
+ "minimalistic-assert": {
122
+ "version": "1.0.1",
123
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
124
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
125
+ "dev": true
126
+ },
127
+ "minimalistic-crypto-utils": {
128
+ "version": "1.0.1",
129
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
130
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
131
+ "dev": true
132
+ },
133
+ "scryptsy": {
134
+ "version": "2.1.0",
135
+ "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
136
+ "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==",
137
+ "dev": true
138
+ }
139
+ }
140
+ }
data/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "sdk-ruby",
3
+ "description": "Not an NPM Package",
4
+ "homepage": "https://portal.nuid.io/docs",
5
+ "version": "1.0.0",
6
+ "license": "MIT",
7
+ "repository": "https://github.com/NuID/sdk-ruby",
8
+ "devDependencies": {
9
+ "@nuid/cli": "^0.1.0"
10
+ }
11
+ }
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nuid-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - BJ Neilsen
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-02-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.18.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.18.1
27
+ description:
28
+ email:
29
+ - bj.neilsen@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".env.sample"
35
+ - ".gitignore"
36
+ - Dockerfile
37
+ - Gemfile
38
+ - Gemfile.lock
39
+ - LICENSE.txt
40
+ - Makefile
41
+ - README.md
42
+ - Rakefile
43
+ - bin/console
44
+ - bin/setup
45
+ - lib/nuid/sdk.rb
46
+ - lib/nuid/sdk/api/auth.rb
47
+ - lib/nuid/sdk/version.rb
48
+ - nuid-sdk.gemspec
49
+ - package-lock.json
50
+ - package.json
51
+ homepage: https://portal.nuid.io/docs
52
+ licenses:
53
+ - MIT
54
+ metadata:
55
+ allowed_push_host: https://rubygems.org
56
+ homepage_uri: https://portal.nuid.io/docs
57
+ source_code_uri: https://github.com/NuID/sdk-ruby
58
+ changelog_uri: https://github.com/NuID/sdk-ruby/blob/master/CHANGELOG.md
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.0
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubygems_version: 3.1.2
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: SDK for interacting with NuID APIs in Ruby
78
+ test_files: []