ee_e_business_register 0.3.0

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.
@@ -0,0 +1,481 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support"
4
+ require "active_support/core_ext"
5
+ require "net/http"
6
+ require "timeout"
7
+
8
+ # Ruby compatibility fix: alias the old timeout constant to new ones
9
+ Net::TimeoutError = Net::ReadTimeout unless defined?(Net::TimeoutError)
10
+
11
+ require_relative "ee_e_business_register/version"
12
+ require_relative "ee_e_business_register/errors"
13
+ require_relative "ee_e_business_register/configuration"
14
+ require_relative "ee_e_business_register/validation"
15
+ require_relative "ee_e_business_register/types"
16
+ require_relative "ee_e_business_register/models/company"
17
+ require_relative "ee_e_business_register/models/classifier"
18
+ require_relative "ee_e_business_register/models/trust"
19
+ require_relative "ee_e_business_register/client"
20
+ require_relative "ee_e_business_register/services/company_service"
21
+ require_relative "ee_e_business_register/services/classifier_service"
22
+ require_relative "ee_e_business_register/services/trusts_service"
23
+
24
+ # Estonian e-Business Register API Client
25
+ #
26
+ # A professional Ruby interface for accessing Estonian company data via the official
27
+ # e-Business Register SOAP API. Provides type-safe models and comprehensive error handling.
28
+ #
29
+ # ## Quick Start
30
+ #
31
+ # require 'ee_e_business_register'
32
+ #
33
+ # # Configure API credentials (required)
34
+ # EeEBusinessRegister.configure do |config|
35
+ # config.username = 'your_api_username'
36
+ # config.password = 'your_api_password'
37
+ # end
38
+ #
39
+ # # Find a company by registry code
40
+ # company = EeEBusinessRegister.find_company('16863232')
41
+ # puts company.name # => "Sorbeet Payments OÜ"
42
+ # puts company.active? # => true
43
+ # puts company.email # => "info@sorbeet.ee"
44
+ #
45
+ module EeEBusinessRegister
46
+ class << self
47
+ # ========================================
48
+ # CONFIGURATION
49
+ # ========================================
50
+
51
+ def configuration
52
+ @configuration ||= Configuration.new
53
+ end
54
+
55
+ def configure
56
+ yield(configuration)
57
+ reset_client! # Reset client when configuration changes
58
+ end
59
+
60
+ # ========================================
61
+ # PRIMARY API - Company Operations
62
+ # ========================================
63
+
64
+ # Find a company by its registry code
65
+ #
66
+ # @param code [String, Integer] 8-digit registry code
67
+ # @return [Company] Company object with basic info
68
+ # @raise [ArgumentError] If registry code is invalid
69
+ # @raise [APIError] If company not found or API fails
70
+ # @example
71
+ # company = EeEBusinessRegister.find_company('16863232')
72
+ # company = EeEBusinessRegister.find_company(16863232) # Also accepts integers
73
+ def find_company(code)
74
+ code = normalize_registry_code(code)
75
+ company_service.find_by_registry_code(code)
76
+ end
77
+
78
+ # Search for companies by name
79
+ #
80
+ # @deprecated This method is no longer functional as the Estonian e-Business Register
81
+ # has removed the company name search operation from their API. The method will
82
+ # raise an APIError when called. Use find_company(registry_code) instead.
83
+ #
84
+ # @param query [String] Search query (partial match supported)
85
+ # @param limit [Integer] Max results (default: 10, max: 100)
86
+ # @return [Array<Company>] This method will raise an error
87
+ # @raise [APIError] Always raised - functionality no longer available
88
+ # @example
89
+ # # This will raise an APIError:
90
+ # # results = EeEBusinessRegister.search_companies('bank')
91
+ #
92
+ # # Use this instead:
93
+ # company = EeEBusinessRegister.find_company('16863232')
94
+ def search_companies(query, limit: 10)
95
+ company_service.search_by_name(query, limit)
96
+ end
97
+
98
+ # ========================================
99
+ # DETAILED DATA RETRIEVAL
100
+ # ========================================
101
+
102
+ # Get comprehensive company details
103
+ #
104
+ # @param code [String, Integer] 8-digit registry code
105
+ # @return [Hash] Complete company data including personnel, addresses, etc.
106
+ # @example
107
+ # details = EeEBusinessRegister.get_company_details('16863232')
108
+ # puts details[:general_data][:email]
109
+ # puts details[:personnel][:board_members]
110
+ def get_company_details(code)
111
+ code = normalize_registry_code(code)
112
+ company_service.get_detailed_data(code)
113
+ end
114
+
115
+ # Get company's annual reports
116
+ #
117
+ # @param code [String, Integer] 8-digit registry code
118
+ # @return [Array<Hash>] List of annual reports
119
+ # @example
120
+ # reports = EeEBusinessRegister.get_annual_reports('16863232')
121
+ # latest = reports.first
122
+ # puts "Year #{latest[:year]}: #{latest[:status]}"
123
+ def get_annual_reports(code)
124
+ code = normalize_registry_code(code)
125
+ company_service.get_annual_reports(code)
126
+ end
127
+
128
+ # Get a specific annual report
129
+ #
130
+ # @param code [String, Integer] 8-digit registry code
131
+ # @param year [Integer] Year of the report
132
+ # @param type [String] Report type: 'balance_sheet', 'income_statement', 'cash_flow'
133
+ # @return [Hash] Annual report data
134
+ # @example
135
+ # report = EeEBusinessRegister.get_annual_report('16863232', 2023)
136
+ # report = EeEBusinessRegister.get_annual_report('16863232', 2023, type: 'income_statement')
137
+ def get_annual_report(code, year, type: 'balance_sheet')
138
+ code = normalize_registry_code(code)
139
+ company_service.get_annual_report(code, year: year, report_type: type)
140
+ end
141
+
142
+ # Get company's documents
143
+ #
144
+ # @param code [String, Integer] 8-digit registry code
145
+ # @return [Array<Hash>] List of documents
146
+ # @example
147
+ # docs = EeEBusinessRegister.get_documents('16863232')
148
+ # docs.each { |doc| puts "#{doc[:type]}: #{doc[:name]}" }
149
+ def get_documents(code)
150
+ code = normalize_registry_code(code)
151
+ company_service.get_documents(code)
152
+ end
153
+
154
+ # Get company's representatives (who can legally represent the company)
155
+ #
156
+ # @param code [String, Integer] 8-digit registry code
157
+ # @return [Array<Hash>] List of people with representation rights
158
+ # @example
159
+ # reps = EeEBusinessRegister.get_representatives('16863232')
160
+ # reps.each { |rep| puts "#{rep[:name]} - #{rep[:role]}" }
161
+ def get_representatives(code)
162
+ code = normalize_registry_code(code)
163
+ company_service.get_representation(code)
164
+ end
165
+
166
+ # Get person changes in the company
167
+ #
168
+ # @param code [String, Integer] 8-digit registry code
169
+ # @param from [Date, String] Start date (optional)
170
+ # @param to [Date, String] End date (optional)
171
+ # @return [Array<Hash>] List of person changes
172
+ # @example
173
+ # changes = EeEBusinessRegister.get_person_changes('16863232')
174
+ # changes = EeEBusinessRegister.get_person_changes('16863232', from: '2023-01-01')
175
+ def get_person_changes(code, from: nil, to: nil)
176
+ code = normalize_registry_code(code)
177
+ company_service.get_person_changes(code, from_date: from, to_date: to)
178
+ end
179
+
180
+ # Get company's beneficial owners
181
+ #
182
+ # @param code [String, Integer] 8-digit registry code
183
+ # @return [Array<Hash>] List of beneficial owners
184
+ # @example
185
+ # owners = EeEBusinessRegister.get_beneficial_owners('10060701')
186
+ # owners.each { |owner| puts "#{owner[:eesnimi]} #{owner[:nimi]} - #{owner[:kontrolli_teostamise_viis_tekstina]}" }
187
+ def get_beneficial_owners(code)
188
+ code = normalize_registry_code(code)
189
+ company_service.get_beneficial_owners(code)
190
+ end
191
+
192
+ # ========================================
193
+ # REFERENCE DATA (Classifiers)
194
+ # ========================================
195
+
196
+ # Get list of legal forms (OÜ, AS, MTÜ, etc.)
197
+ #
198
+ # @return [Array<Hash>] List of legal forms with codes and descriptions
199
+ # @example
200
+ # forms = EeEBusinessRegister.get_legal_forms
201
+ # forms.each { |f| puts "#{f[:code]}: #{f[:name]}" }
202
+ def get_legal_forms
203
+ classifier_service.get_classifier(:legal_forms)
204
+ end
205
+
206
+ # Get list of company statuses
207
+ #
208
+ # @return [Array<Hash>] List of statuses (Active, Liquidation, etc.)
209
+ # @example
210
+ # statuses = EeEBusinessRegister.get_company_statuses
211
+ # active = statuses.find { |s| s[:code] == 'R' }
212
+ def get_company_statuses
213
+ classifier_service.get_classifier(:company_statuses)
214
+ end
215
+
216
+ # Get any classifier by type
217
+ #
218
+ # @param type [Symbol, String] Classifier type
219
+ # @return [Array<Hash>] Classifier data
220
+ # @example
221
+ # regions = EeEBusinessRegister.get_classifier(:regions)
222
+ # countries = EeEBusinessRegister.get_classifier(:countries)
223
+ def get_classifier(type)
224
+ classifier_service.get_classifier(type)
225
+ end
226
+
227
+ # List all available classifiers
228
+ #
229
+ # @return [Hash] Map of classifier types to descriptions
230
+ def list_classifiers
231
+ {
232
+ legal_forms: "Company legal structures (OÜ, AS, MTÜ, etc.)",
233
+ company_statuses: "Registration statuses (Active, Liquidation, Deleted)",
234
+ person_roles: "Roles in companies (Board member, Shareholder, etc.)",
235
+ regions: "Estonian administrative regions",
236
+ countries: "Country codes and names",
237
+ report_types: "Annual report classifications",
238
+ company_subtypes: "Detailed company type classifications",
239
+ currencies: "Supported currency codes"
240
+ }
241
+ end
242
+
243
+ # ========================================
244
+ # UTILITIES & HELPERS
245
+ # ========================================
246
+
247
+ # Check if the API is accessible and working
248
+ #
249
+ # @return [Boolean] true if API is healthy, false otherwise
250
+ # @example
251
+ # if EeEBusinessRegister.check_health
252
+ # puts "API is working!"
253
+ # end
254
+ def check_health
255
+ client.healthy?
256
+ rescue
257
+ false
258
+ end
259
+
260
+ # Validate if a registry code has correct format
261
+ #
262
+ # @param code [String, Integer] Registry code to validate
263
+ # @return [Boolean] true if valid format, false otherwise
264
+ # @example
265
+ # EeEBusinessRegister.validate_code('16863232') # => true
266
+ # EeEBusinessRegister.validate_code('123') # => false
267
+ def validate_code(code)
268
+ Validation.validate_registry_code(code.to_s)
269
+ true
270
+ rescue
271
+ false
272
+ end
273
+
274
+ # Reset all cached services and clients
275
+ # Useful after configuration changes
276
+ #
277
+ # @return [Boolean] Always returns true
278
+ def reset!
279
+ reset_client!
280
+ @company_service = nil
281
+ @classifier_service = nil
282
+ @trusts_service = nil
283
+ true
284
+ end
285
+
286
+ # Get current configuration
287
+ #
288
+ # @return [Configuration] Current configuration object
289
+ def get_configuration
290
+ configuration
291
+ end
292
+
293
+ # ========================================
294
+ # CONVENIENCE METHODS
295
+ # ========================================
296
+
297
+ # Quick check if company exists and is active
298
+ #
299
+ # @param code [String, Integer] 8-digit registry code
300
+ # @return [Boolean] true if company exists and is active, false otherwise
301
+ # @example
302
+ # EeEBusinessRegister.company_active?('16863232') # => true
303
+ def company_active?(code)
304
+ company = find_company(code)
305
+ company&.active? || false
306
+ rescue
307
+ false
308
+ end
309
+
310
+ # Get company name quickly without full object
311
+ #
312
+ # @param code [String, Integer] 8-digit registry code
313
+ # @return [String, nil] Company name or nil if not found
314
+ # @example
315
+ # name = EeEBusinessRegister.company_name('16863232') # => "Sorbeet Payments OÜ"
316
+ def company_name(code)
317
+ company = find_company(code)
318
+ company&.name
319
+ rescue
320
+ nil
321
+ end
322
+
323
+ # Get company email quickly
324
+ #
325
+ # @param code [String, Integer] 8-digit registry code
326
+ # @return [String, nil] Company email or nil if not found
327
+ # @example
328
+ # email = EeEBusinessRegister.company_email('16863232') # => "info@sorbeet.ee"
329
+ def company_email(code)
330
+ company = find_company(code)
331
+ company&.email
332
+ rescue
333
+ nil
334
+ end
335
+
336
+ # Find companies by partial name match (case-insensitive)
337
+ #
338
+ # @deprecated This method is no longer functional as the Estonian e-Business Register
339
+ # has removed the company name search operation from their API. This method will
340
+ # always return an empty array. Use find_company(registry_code) instead.
341
+ #
342
+ # @param query [String] Search query (case-insensitive)
343
+ # @param limit [Integer] Max results (default: 5)
344
+ # @return [Array<Company>] Always returns empty array
345
+ # @example
346
+ # # This will return an empty array:
347
+ # # banks = EeEBusinessRegister.find_companies_like('bank')
348
+ #
349
+ # # Use this instead:
350
+ # company = EeEBusinessRegister.find_company('16863232')
351
+ def find_companies_like(query, limit: 5)
352
+ search_companies(query.to_s, limit: limit)
353
+ rescue
354
+ []
355
+ end
356
+
357
+ # Check if registry code format is valid (doesn't verify existence)
358
+ #
359
+ # @param code [String, Integer] Registry code to check
360
+ # @return [Boolean] true if format is valid, false otherwise
361
+ # @example
362
+ # EeEBusinessRegister.valid_registry_code?('16863232') # => true
363
+ # EeEBusinessRegister.valid_registry_code?('123') # => false
364
+ def valid_registry_code?(code)
365
+ validate_code(code)
366
+ rescue
367
+ false
368
+ end
369
+
370
+ # Get latest annual report year for a company
371
+ #
372
+ # @param code [String, Integer] 8-digit registry code
373
+ # @return [Integer, nil] Latest report year or nil if no reports
374
+ # @example
375
+ # year = EeEBusinessRegister.latest_report_year('16863232') # => 2023
376
+ def latest_report_year(code)
377
+ reports = get_annual_reports(code)
378
+ return nil if reports.empty?
379
+
380
+ # Assuming reports are sorted by year, get the most recent
381
+ reports.first[:year]&.to_i
382
+ rescue
383
+ nil
384
+ end
385
+
386
+ # Check if company has filed reports for a given year
387
+ #
388
+ # @param code [String, Integer] 8-digit registry code
389
+ # @param year [Integer] Year to check
390
+ # @return [Boolean] true if reports exist for that year, false otherwise
391
+ # @example
392
+ # EeEBusinessRegister.has_reports_for_year?('16863232', 2023) # => true
393
+ def has_reports_for_year?(code, year)
394
+ reports = get_annual_reports(code)
395
+ reports.any? { |report| report[:year]&.to_i == year.to_i }
396
+ rescue
397
+ false
398
+ end
399
+
400
+ # Get company age in years (from registration date)
401
+ #
402
+ # @param code [String, Integer] 8-digit registry code
403
+ # @return [Integer, nil] Company age in years or nil if not found
404
+ # @example
405
+ # age = EeEBusinessRegister.company_age('16863232') # => 8
406
+ def company_age(code)
407
+ company = find_company(code)
408
+ return nil unless company&.registration_date
409
+
410
+ registration = Date.parse(company.registration_date)
411
+ ((Date.today - registration) / 365.25).to_i
412
+ rescue
413
+ nil
414
+ end
415
+
416
+ # Normalize registry code to 8 digits
417
+ #
418
+ # @param code [String, Integer] Registry code to normalize
419
+ # @return [String] Normalized 8-digit code
420
+ # @raise [ArgumentError] If code format is invalid
421
+ # @example
422
+ # EeEBusinessRegister.normalize_registry_code('123') # => "00000123"
423
+ # EeEBusinessRegister.normalize_registry_code(16863232) # => "16863232"
424
+ def normalize_registry_code(code)
425
+ code = code.to_s.strip.gsub(/\D/, '') # Remove non-digits
426
+
427
+ # Pad with leading zeros if needed
428
+ code = code.rjust(8, '0') if code.length < 8
429
+
430
+ unless validate_code(code)
431
+ raise ArgumentError, "Invalid registry code '#{code}'. Estonian registry codes must be exactly 8 digits."
432
+ end
433
+
434
+ code
435
+ end
436
+
437
+ # Reset the configuration and cached services
438
+ #
439
+ # @return [Configuration] New configuration instance
440
+ # @example
441
+ # EeEBusinessRegister.reset_configuration!
442
+ def reset_configuration!
443
+ @configuration = nil
444
+ reset_services!
445
+ configuration
446
+ end
447
+
448
+ # Reset all cached services
449
+ def reset_services!
450
+ @company_service = nil
451
+ @classifier_service = nil
452
+ @trusts_service = nil
453
+ @client = nil
454
+ end
455
+
456
+ # Access to company service for testing
457
+ def company_service
458
+ @company_service ||= Services::CompanyService.new(client)
459
+ end
460
+
461
+ # Access to classifier service for testing
462
+ def classifier_service
463
+ @classifier_service ||= Services::ClassifierService.new(client)
464
+ end
465
+
466
+ private
467
+
468
+ def client
469
+ @client ||= Client.new(configuration)
470
+ end
471
+
472
+ def reset_client!
473
+ @client = nil
474
+ end
475
+
476
+ def trusts_service
477
+ @trusts_service ||= Services::TrustsService.new(client)
478
+ end
479
+
480
+ end
481
+ end
@@ -0,0 +1,4 @@
1
+ module EeEBusinessRegister
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ee_e_business_register
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Angelos Kapsimanis
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: savon
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.15'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.15'
26
+ - !ruby/object:Gem::Dependency
27
+ name: nokogiri
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.16'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.16'
40
+ - !ruby/object:Gem::Dependency
41
+ name: activesupport
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '7.0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '7.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: dry-struct
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.6'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.6'
68
+ - !ruby/object:Gem::Dependency
69
+ name: dry-types
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.7'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.7'
82
+ - !ruby/object:Gem::Dependency
83
+ name: minitest
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '5.16'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '5.16'
96
+ - !ruby/object:Gem::Dependency
97
+ name: webmock
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.19'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.19'
110
+ - !ruby/object:Gem::Dependency
111
+ name: vcr
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '6.2'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '6.2'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rake
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '13.0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '13.0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rubocop
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '1.21'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '1.21'
152
+ description: A clean, professional Ruby client for accessing Estonian company data
153
+ from the e-Business Register. Built for FinTech applications with D&B-style conventions.
154
+ email:
155
+ - angelos@sorbet.ee
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".ee_business_register_credentials.yml.example"
161
+ - ".rubocop.yml"
162
+ - CHANGELOG.md
163
+ - CODE_OF_CONDUCT.md
164
+ - LICENSE.txt
165
+ - Makefile
166
+ - README.md
167
+ - Rakefile
168
+ - lib/ee_e_business_register.rb
169
+ - lib/ee_e_business_register/client.rb
170
+ - lib/ee_e_business_register/configuration.rb
171
+ - lib/ee_e_business_register/errors.rb
172
+ - lib/ee_e_business_register/models/classifier.rb
173
+ - lib/ee_e_business_register/models/company.rb
174
+ - lib/ee_e_business_register/models/trust.rb
175
+ - lib/ee_e_business_register/services/classifier_service.rb
176
+ - lib/ee_e_business_register/services/company_service.rb
177
+ - lib/ee_e_business_register/services/trusts_service.rb
178
+ - lib/ee_e_business_register/types.rb
179
+ - lib/ee_e_business_register/validation.rb
180
+ - lib/ee_e_business_register/version.rb
181
+ - sig/ee_e_business_register.rbs
182
+ homepage: https://github.com/angeloskapis/ee_e_business_register
183
+ licenses:
184
+ - MIT
185
+ metadata:
186
+ homepage_uri: https://github.com/angeloskapis/ee_e_business_register
187
+ source_code_uri: https://github.com/angeloskapis/ee_e_business_register
188
+ changelog_uri: https://github.com/angeloskapis/ee_e_business_register/blob/main/CHANGELOG.md
189
+ documentation_uri: https://rubydoc.info/gems/ee_e_business_register
190
+ bug_tracker_uri: https://github.com/angeloskapis/ee_e_business_register/issues
191
+ wiki_uri: https://github.com/angeloskapis/ee_e_business_register/wiki
192
+ mailing_list_uri: https://github.com/angeloskapis/ee_e_business_register/discussions
193
+ funding_uri: https://github.com/sponsors/angeloskapis
194
+ rubygems_mfa_required: 'true'
195
+ rdoc_options: []
196
+ require_paths:
197
+ - lib
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 3.1.0
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ requirements: []
209
+ rubygems_version: 3.6.9
210
+ specification_version: 4
211
+ summary: FinTech-ready client for Estonian e-Business Register API
212
+ test_files: []