unit_ruby_sdk 0.1.2 → 0.1.3

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Gemfile +0 -10
  4. data/README.md +73 -1
  5. data/lib/unit/api_resources/account_resource.rb +125 -0
  6. data/lib/unit/api_resources/application_resource.rb +9 -9
  7. data/lib/unit/api_resources/base_resource.rb +3 -11
  8. data/lib/unit/api_resources/customer_resource.rb +12 -11
  9. data/lib/unit/errors/unit_error.rb +7 -13
  10. data/lib/unit/errors/unit_error_payload.rb +15 -2
  11. data/lib/unit/models/account/account.rb +157 -0
  12. data/lib/unit/models/account/deposit/account_owners_request.rb +29 -0
  13. data/lib/unit/models/account/deposit/balance_history_request.rb +39 -0
  14. data/lib/unit/models/account/deposit/close_deposit_account_request.rb +36 -0
  15. data/lib/unit/models/account/deposit/create_deposit_account_request.rb +39 -0
  16. data/lib/unit/models/account/deposit/freeze_account_request.rb +36 -0
  17. data/lib/unit/models/account/deposit/list_account_params.rb +48 -0
  18. data/lib/unit/models/account/deposit/patch_deposit_account_request.rb +36 -0
  19. data/lib/unit/models/application/application.rb +127 -0
  20. data/lib/unit/models/application/create_business_application_request.rb +7 -7
  21. data/lib/unit/models/application/create_individual_application_request.rb +14 -14
  22. data/lib/unit/models/application/list_application_params.rb +3 -3
  23. data/lib/unit/models/application/patch_application_request.rb +3 -3
  24. data/lib/unit/models/application/upload_document_request.rb +1 -1
  25. data/lib/unit/models/customer/add_authorized_users_request.rb +3 -3
  26. data/lib/unit/models/customer/archive_customer_request.rb +3 -4
  27. data/lib/unit/models/customer/customer.rb +96 -0
  28. data/lib/unit/models/customer/list_customer_params.rb +9 -11
  29. data/lib/unit/models/customer/patch_business_customer_request.rb +8 -8
  30. data/lib/unit/models/customer/patch_individual_customer_request.rb +9 -10
  31. data/lib/unit/models/customer/remove_authorized_users_request.rb +3 -3
  32. data/lib/unit/models/unit_response.rb +7 -1
  33. data/lib/unit/types/authorized_user.rb +1 -1
  34. data/lib/unit/types/relationship.rb +4 -5
  35. data/lib/unit/types/relationship_array.rb +14 -12
  36. data/lib/unit/utils/http_helper.rb +56 -0
  37. data/lib/unit/version.rb +1 -1
  38. data/lib/unit_ruby_sdk.rb +15 -21
  39. metadata +60 -7
  40. data/Gemfile.lock +0 -133
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Update business customer information request
4
- # See: https://docs.unit.co/customers#update-business-customer
4
+ # @see https://docs.unit.co/customers#update-business-customer
5
5
  module Unit
6
6
  module Customer
7
7
  class PatchBusinessCustomerRequest
8
8
  attr_reader :customer_id, :address, :phone, :contact, :authorized_users, :dba, :tags
9
9
 
10
- # @param customer_id [String] The id of business
11
- # @param optional address [Address] The address of business
12
- # @param optional phone [Phone] The phone of business
13
- # @param optional contact [BusinessContact] The primary contact of the business
14
- # @param optional authorized_users [Array<AuthorizedUser>] The authorized users of business
15
- # @param optional dba [String] The dba of business. To modify or add needed to specify the new dba name.
16
- # @param optional tags [Hash] Provides opportunity to add, update or delete tags from resources with the tags attribute on the corresponding Update operation
10
+ # @param customer_id [String]
11
+ # @param address [Address] - optional
12
+ # @param phone [Phone] - optional
13
+ # @param contact [BusinessContact] - optional
14
+ # @param authorized_users [Array<AuthorizedUser>] - optional
15
+ # @param dba [String] - optional
16
+ # @param tags [Hash] - optional
17
17
  # more information regarding tags: https://docs.unit.co/#updating-tags
18
18
  def initialize(customer_id, address = nil, phone = nil, contact = nil,
19
19
  authorized_users = nil, dba = nil, tags = nil)
@@ -1,21 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Update individual customer information request
4
- # See: https://docs.unit.co/customers#update-individual-customer
4
+ # @see https://docs.unit.co/customers#update-individual-customer
5
5
  module Unit
6
6
  module Customer
7
7
  class PatchIndividualCustomerRequest
8
8
  attr_reader :customer_id, :address, :phone, :email, :dba, :authorized_users, :tags, :jwt_subject
9
9
 
10
- # @param customer_id [String] The id of individual customer
11
- # @param optional address [Address] The address of individual customer
12
- # @param optional phone [Phone] The phone of individual customer
13
- # @param optional email [String] The email of individual customer
14
- # @param optional dba [String] The dba of individual customer. If the individual is a sole proprietor who is doing business under a different name.
15
- # @param optional authorized_users [Array<AuthorizedUser>] The authorized users of individual customer
16
- # @param optional tags [Hash] Provides opportunity to add, update or delete tags from resources with the tags attribute on the corresponding Update operation
17
- # @param optional jwt_subject [String] The subject of the JWT
18
- # More information regarding JWTSubject: https://docs.unit.co/customer-api-tokens/#customers-create-customer-bearer-token-jwt
10
+ # @param customer_id [String]
11
+ # @param address [Address] - optional
12
+ # @param phone [Phone] - optional
13
+ # @param email [String] - optional
14
+ # @param dba [String] - optional
15
+ # @param authorized_users [Array<AuthorizedUser>] - optional
16
+ # @param tags [Hash] - optional
17
+ # @param jwt_subject [String] - optional
19
18
  def initialize(customer_id, address = nil, phone = nil, email = nil, dba = nil, authorized_users = nil, tags = nil, jwt_subject = nil)
20
19
  @customer_id = customer_id
21
20
  @address = address
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Request to remove authorized users from customer
4
- # See: https://docs.unit.co/customers#remove-authorized-users
4
+ # @see https://docs.unit.co/customers#remove-authorized-users
5
5
  module Unit
6
6
  module Customer
7
7
  class RemoveAuthorizedUsersRequest
8
8
  attr_reader :customer_id, :authorized_users_emails
9
9
 
10
- # @param customer_id [String] The id of customer
11
- # @param authorized_users_emails [Array<String>] The list of authorized users emails to remove from the customer.
10
+ # @param customer_id [String]
11
+ # @param authorized_users_emails [Array<String>]
12
12
  def initialize(customer_id, authorized_users_emails)
13
13
  @customer_id = customer_id
14
14
  @authorized_users_emails = authorized_users_emails
@@ -7,11 +7,17 @@ module Unit
7
7
 
8
8
  # @param data [Hash] The JSON API payload
9
9
  # @param included [Array] The JSON API payload
10
-
11
10
  def initialize(data, included, meta)
12
11
  @data = data
13
12
  @included = included
14
13
  @meta = meta
15
14
  end
15
+
16
+ # Creates a new UnitResponse from given response.
17
+ # @param [HTTP::Response] response The response returned from Unit's API
18
+ # @return [UnitResponse] a new UnitResponse populated with values taken from the response
19
+ def self.from_json_api(response)
20
+ new(response.body["data"], response.body["included"], response.body["meta"])
21
+ end
16
22
  end
17
23
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Type representing authorized user
4
- # See: https://docs.unit.co/customers/#authorized-users
4
+ # @see https://docs.unit.co/customers/#authorized-users
5
5
  module Unit
6
6
  module Types
7
7
  class AuthorizedUser
@@ -8,14 +8,13 @@ module Unit
8
8
 
9
9
  # @param id [String] The id of the relationship
10
10
  # @param type [String] The type
11
- def initialize(id, type)
12
- @id = id
11
+ def initialize(type, id)
13
12
  @type = type
13
+ @id = id
14
14
  end
15
15
 
16
- # @param nested [Boolean] Whether or not the relationship is nested
17
- def represent(nested: true)
18
- nested ? { "data": { "id": id, "type": type } } : { "id": id, "type": type }
16
+ def to_hash
17
+ { "data": { "type": type, "id": id } }
19
18
  end
20
19
  end
21
20
  end
@@ -6,23 +6,25 @@ module Unit
6
6
  class RelationshipArray
7
7
  attr_reader :data
8
8
 
9
- # @param array [Array] The array of relationships
9
+ # @param array [Array]
10
10
  def initialize(array)
11
- relationships = []
12
- array.map do |item|
13
- relationships << if item.is_a?(Relationship)
14
- item
15
- else
16
- Relationship.new(item[:data][:id], item[:data][:type]).represent
17
- end
18
- p item
19
- end
20
- @data = relationships
11
+ @data = array
21
12
  end
22
13
 
23
- def represent
14
+ def to_hash
24
15
  { "data": data }
25
16
  end
17
+
18
+ def self.from_params_array(array)
19
+ @relationships = []
20
+ array.map do |item|
21
+ @relationships << if item.is_a?(Relationship)
22
+ item.to_hash[:data]
23
+ else
24
+ Relationship.new(item[:type], item[:id]).to_hash[:data] end
25
+ end
26
+ RelationshipArray.new(@relationships).to_hash
27
+ end
26
28
  end
27
29
  end
28
30
  end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "uri"
4
+ require "net/http"
5
+ require "json"
6
+
7
+ module HttpHelper
8
+ def self.get(url, headers:, params: nil)
9
+ make_request(Net::HTTP::Get, url, headers, params: params)
10
+ end
11
+
12
+ def self.post(url, headers:, body: nil)
13
+ make_request(Net::HTTP::Post, url, headers, body: body)
14
+ end
15
+
16
+ def self.put(url, body:, headers:)
17
+ make_request(Net::HTTP::Put, url, headers, body: body)
18
+ end
19
+
20
+ def self.patch(url, body:, headers:)
21
+ make_request(Net::HTTP::Patch, url, headers, body: body)
22
+ end
23
+
24
+ def self.delete(url, body:, headers:)
25
+ make_request(Net::HTTP::Delete, url, headers, body: body)
26
+ end
27
+
28
+ def self.make_request(net_http, url, headers, body: nil, params: nil)
29
+ uri = params.nil? ? URI(url) : URI("#{url}?#{encode(params)}")
30
+ host = uri.host.to_s
31
+ port = uri.port
32
+ options = { use_ssl: uri.scheme == "https" }
33
+
34
+ Net::HTTP.start(host, port, options) do |http|
35
+ request = net_http.new uri, headers
36
+ request.body = body unless body.nil?
37
+ response = http.request request
38
+ response.body = JSON.parse(response.body)
39
+ response
40
+ end
41
+ end
42
+
43
+ def self.encode(value, key = nil)
44
+ case value
45
+ when Hash then value.map { |k, v| encode(v, append_key(key, k)) }.join("&")
46
+ when Array then value.map { |v| encode(v, "#{key}[]") }.join("&")
47
+ when nil then ""
48
+ else
49
+ "#{key}=#{CGI.escape(value.to_s)}"
50
+ end
51
+ end
52
+
53
+ def self.append_key(root_key, key)
54
+ root_key.nil? ? key : "#{root_key}[#{key}]"
55
+ end
56
+ end
data/lib/unit/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Unit
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/unit_ruby_sdk.rb CHANGED
@@ -3,26 +3,14 @@
3
3
  require_relative "unit/version"
4
4
 
5
5
  module Unit
6
+ autoload :Application, "unit/models/application/application"
7
+ autoload :Customer, "unit/models/customer/customer"
8
+ autoload :Account, "unit/models/account/account"
9
+
6
10
  module Resource
7
11
  autoload :ApplicationResource, "unit/api_resources/application_resource"
8
12
  autoload :CustomerResource, "unit/api_resources/customer_resource"
9
- end
10
-
11
- module Application
12
- autoload :CreateBusinessApplicationRequest, "unit/models/application/create_business_application_request"
13
- autoload :CreateIndividualApplicationRequest, "unit/models/application/create_individual_application_request"
14
- autoload :ListApplicationParams, "unit/models/application/list_application_params"
15
- autoload :PatchApplicationRequest, "unit/models/application/patch_application_request"
16
- autoload :UploadDocumentRequest, "unit/models/application/upload_document_request"
17
- end
18
-
19
- module Customer
20
- autoload :AddAuthorizedUsersRequest, "unit/models/customer/add_authorized_users_request"
21
- autoload :ArchiveCustomerRequest, "unit/models/customer/archive_customer_request"
22
- autoload :ListCustomerParams, "unit/models/customer/list_customer_params"
23
- autoload :PatchBusinessCustomerRequest, "unit/models/customer/patch_business_customer_request"
24
- autoload :PatchIndividualCustomerRequest, "unit/models/customer/patch_individual_customer_request"
25
- autoload :RemoveAuthorizedUsersRequest, "unit/models/customer/remove_authorized_users_request"
13
+ autoload :AccountResource, "unit/api_resources/account_resource"
26
14
  end
27
15
 
28
16
  module Types
@@ -46,9 +34,15 @@ module Unit
46
34
  autoload :UnitResource, "unit/models/unit_resource"
47
35
 
48
36
  # Configure Unit SDK - acts both as a setter and a getter
49
- # @param [Hash] new_config If passed, update config
50
- # @return [Hash] current config
51
- def self.config(new_config = nil)
52
- @@config ||= new_config
37
+ # If params are passed, updates config
38
+ # @param [String] api_url
39
+ # @param [String] token
40
+ # @return [Hash] current (updated) config
41
+ def self.config(api_url: nil, token: nil)
42
+ @@config ||= {}
43
+ @@config[:api_url] = api_url if api_url
44
+ @@config[:token] = token if token
45
+
46
+ @@config
53
47
  end
54
48
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unit_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unit
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-12 00:00:00.000000000 Z
11
+ date: 2022-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: factory_bot_rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 6.2.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 6.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '13.0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: rspec
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -25,19 +53,33 @@ dependencies:
25
53
  - !ruby/object:Gem::Version
26
54
  version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
- name: httparty
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.21'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.21'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-debug-ide
29
71
  requirement: !ruby/object:Gem::Requirement
30
72
  requirements:
31
73
  - - ">="
32
74
  - !ruby/object:Gem::Version
33
- version: 0.20.0
34
- type: :runtime
75
+ version: '0'
76
+ type: :development
35
77
  prerelease: false
36
78
  version_requirements: !ruby/object:Gem::Requirement
37
79
  requirements:
38
80
  - - ">="
39
81
  - !ruby/object:Gem::Version
40
- version: 0.20.0
82
+ version: '0'
41
83
  description: This library provides a Ruby wrapper to http://unit.co API. See https://docs.unit.co/
42
84
  email:
43
85
  - engineering@unit.co
@@ -49,15 +91,24 @@ files:
49
91
  - ".rubocop.yml"
50
92
  - CHANGELOG.md
51
93
  - Gemfile
52
- - Gemfile.lock
53
94
  - LICENSE.txt
54
95
  - README.md
55
96
  - Rakefile
97
+ - lib/unit/api_resources/account_resource.rb
56
98
  - lib/unit/api_resources/application_resource.rb
57
99
  - lib/unit/api_resources/base_resource.rb
58
100
  - lib/unit/api_resources/customer_resource.rb
59
101
  - lib/unit/errors/unit_error.rb
60
102
  - lib/unit/errors/unit_error_payload.rb
103
+ - lib/unit/models/account/account.rb
104
+ - lib/unit/models/account/deposit/account_owners_request.rb
105
+ - lib/unit/models/account/deposit/balance_history_request.rb
106
+ - lib/unit/models/account/deposit/close_deposit_account_request.rb
107
+ - lib/unit/models/account/deposit/create_deposit_account_request.rb
108
+ - lib/unit/models/account/deposit/freeze_account_request.rb
109
+ - lib/unit/models/account/deposit/list_account_params.rb
110
+ - lib/unit/models/account/deposit/patch_deposit_account_request.rb
111
+ - lib/unit/models/application/application.rb
61
112
  - lib/unit/models/application/create_business_application_request.rb
62
113
  - lib/unit/models/application/create_individual_application_request.rb
63
114
  - lib/unit/models/application/list_application_params.rb
@@ -65,6 +116,7 @@ files:
65
116
  - lib/unit/models/application/upload_document_request.rb
66
117
  - lib/unit/models/customer/add_authorized_users_request.rb
67
118
  - lib/unit/models/customer/archive_customer_request.rb
119
+ - lib/unit/models/customer/customer.rb
68
120
  - lib/unit/models/customer/list_customer_params.rb
69
121
  - lib/unit/models/customer/patch_business_customer_request.rb
70
122
  - lib/unit/models/customer/patch_individual_customer_request.rb
@@ -83,6 +135,7 @@ files:
83
135
  - lib/unit/types/power_of_attorney_agent.rb
84
136
  - lib/unit/types/relationship.rb
85
137
  - lib/unit/types/relationship_array.rb
138
+ - lib/unit/utils/http_helper.rb
86
139
  - lib/unit/version.rb
87
140
  - lib/unit_ruby_sdk.rb
88
141
  homepage: https://github.com/unit-finance/unit-ruby-sdk
data/Gemfile.lock DELETED
@@ -1,133 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- unit_ruby_sdk (0.1.1)
5
- httparty
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actionpack (6.1.7)
11
- actionview (= 6.1.7)
12
- activesupport (= 6.1.7)
13
- rack (~> 2.0, >= 2.0.9)
14
- rack-test (>= 0.6.3)
15
- rails-dom-testing (~> 2.0)
16
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
- actionview (6.1.7)
18
- activesupport (= 6.1.7)
19
- builder (~> 3.1)
20
- erubi (~> 1.4)
21
- rails-dom-testing (~> 2.0)
22
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
- activesupport (6.1.7)
24
- concurrent-ruby (~> 1.0, >= 1.0.2)
25
- i18n (>= 1.6, < 2)
26
- minitest (>= 5.1)
27
- tzinfo (~> 2.0)
28
- zeitwerk (~> 2.3)
29
- ast (2.4.2)
30
- builder (3.2.4)
31
- concurrent-ruby (1.1.10)
32
- crass (1.0.6)
33
- diff-lcs (1.5.0)
34
- erubi (1.11.0)
35
- factory_bot (6.2.1)
36
- activesupport (>= 5.0.0)
37
- factory_bot_rails (6.2.0)
38
- factory_bot (~> 6.2.0)
39
- railties (>= 5.0.0)
40
- httparty (0.20.0)
41
- mime-types (~> 3.0)
42
- multi_xml (>= 0.5.2)
43
- i18n (1.12.0)
44
- concurrent-ruby (~> 1.0)
45
- json (2.6.2)
46
- loofah (2.19.0)
47
- crass (~> 1.0.2)
48
- nokogiri (>= 1.5.9)
49
- method_source (1.0.0)
50
- mime-types (3.4.1)
51
- mime-types-data (~> 3.2015)
52
- mime-types-data (3.2022.0105)
53
- minitest (5.16.3)
54
- multi_xml (0.6.0)
55
- nokogiri (1.13.9-arm64-darwin)
56
- racc (~> 1.4)
57
- nokogiri (1.13.9-x86_64-darwin)
58
- racc (~> 1.4)
59
- nokogiri (1.13.9-x86_64-linux)
60
- racc (~> 1.4)
61
- parallel (1.22.1)
62
- parser (3.1.3.0)
63
- ast (~> 2.4.1)
64
- racc (1.6.0)
65
- rack (2.2.4)
66
- rack-test (2.0.2)
67
- rack (>= 1.3)
68
- rails-dom-testing (2.0.3)
69
- activesupport (>= 4.2.0)
70
- nokogiri (>= 1.6)
71
- rails-html-sanitizer (1.4.3)
72
- loofah (~> 2.3)
73
- railties (6.1.7)
74
- actionpack (= 6.1.7)
75
- activesupport (= 6.1.7)
76
- method_source
77
- rake (>= 12.2)
78
- thor (~> 1.0)
79
- rainbow (3.1.1)
80
- rake (13.0.6)
81
- regexp_parser (2.6.1)
82
- rexml (3.2.5)
83
- rspec (3.12.0)
84
- rspec-core (~> 3.12.0)
85
- rspec-expectations (~> 3.12.0)
86
- rspec-mocks (~> 3.12.0)
87
- rspec-core (3.12.0)
88
- rspec-support (~> 3.12.0)
89
- rspec-expectations (3.12.0)
90
- diff-lcs (>= 1.2.0, < 2.0)
91
- rspec-support (~> 3.12.0)
92
- rspec-mocks (3.12.0)
93
- diff-lcs (>= 1.2.0, < 2.0)
94
- rspec-support (~> 3.12.0)
95
- rspec-support (3.12.0)
96
- rubocop (1.39.0)
97
- json (~> 2.3)
98
- parallel (~> 1.10)
99
- parser (>= 3.1.2.1)
100
- rainbow (>= 2.2.2, < 4.0)
101
- regexp_parser (>= 1.8, < 3.0)
102
- rexml (>= 3.2.5, < 4.0)
103
- rubocop-ast (>= 1.23.0, < 2.0)
104
- ruby-progressbar (~> 1.7)
105
- unicode-display_width (>= 1.4.0, < 3.0)
106
- rubocop-ast (1.23.0)
107
- parser (>= 3.1.1.0)
108
- ruby-debug-ide (0.7.3)
109
- rake (>= 0.8.1)
110
- ruby-progressbar (1.11.0)
111
- thor (1.2.1)
112
- tzinfo (2.0.5)
113
- concurrent-ruby (~> 1.0)
114
- unicode-display_width (2.3.0)
115
- zeitwerk (2.6.6)
116
-
117
- PLATFORMS
118
- arm64-darwin-21
119
- universal-darwin-22
120
- x86_64-darwin-21
121
- x86_64-linux
122
-
123
- DEPENDENCIES
124
- factory_bot_rails (~> 6.2.0)
125
- httparty
126
- rake (~> 13.0)
127
- rspec
128
- rubocop (~> 1.21)
129
- ruby-debug-ide
130
- unit_ruby_sdk!
131
-
132
- BUNDLED WITH
133
- 2.3.26