imgwire 0.1.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.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/AGENTS.md +8 -0
  3. data/CODEGEN_VERSION +1 -0
  4. data/LICENSE +21 -0
  5. data/README.md +159 -0
  6. data/generated/lib/imgwire-generated/api/cors_origins_api.rb +355 -0
  7. data/generated/lib/imgwire-generated/api/custom_domain_api.rb +253 -0
  8. data/generated/lib/imgwire-generated/api/images_api.rb +534 -0
  9. data/generated/lib/imgwire-generated/api/metrics_api.rb +156 -0
  10. data/generated/lib/imgwire-generated/api_client.rb +392 -0
  11. data/generated/lib/imgwire-generated/api_error.rb +58 -0
  12. data/generated/lib/imgwire-generated/configuration.rb +301 -0
  13. data/generated/lib/imgwire-generated/models/bulk_delete_images_schema.rb +248 -0
  14. data/generated/lib/imgwire-generated/models/cache_hit_ratio_dataset_point_schema.rb +263 -0
  15. data/generated/lib/imgwire-generated/models/cors_origin_create_schema.rb +246 -0
  16. data/generated/lib/imgwire-generated/models/cors_origin_schema.rb +341 -0
  17. data/generated/lib/imgwire-generated/models/cors_origin_update_schema.rb +246 -0
  18. data/generated/lib/imgwire-generated/models/custom_domain_certificate_status.rb +41 -0
  19. data/generated/lib/imgwire-generated/models/custom_domain_create_schema.rb +237 -0
  20. data/generated/lib/imgwire-generated/models/custom_domain_schema.rb +531 -0
  21. data/generated/lib/imgwire-generated/models/custom_domain_status.rb +41 -0
  22. data/generated/lib/imgwire-generated/models/custom_metadata_value.rb +106 -0
  23. data/generated/lib/imgwire-generated/models/http_validation_error.rb +222 -0
  24. data/generated/lib/imgwire-generated/models/image_download_job_create_schema.rb +248 -0
  25. data/generated/lib/imgwire-generated/models/image_download_job_schema.rb +389 -0
  26. data/generated/lib/imgwire-generated/models/image_download_status.rb +42 -0
  27. data/generated/lib/imgwire-generated/models/image_schema.rb +659 -0
  28. data/generated/lib/imgwire-generated/models/image_status.rb +42 -0
  29. data/generated/lib/imgwire-generated/models/location_inner.rb +104 -0
  30. data/generated/lib/imgwire-generated/models/metrics_dataset_interval.rb +42 -0
  31. data/generated/lib/imgwire-generated/models/metrics_datasets_schema.rb +379 -0
  32. data/generated/lib/imgwire-generated/models/metrics_stat_value_schema.rb +275 -0
  33. data/generated/lib/imgwire-generated/models/metrics_stats_schema.rb +367 -0
  34. data/generated/lib/imgwire-generated/models/requests_dataset_point_schema.rb +263 -0
  35. data/generated/lib/imgwire-generated/models/standard_upload_create_schema.rb +415 -0
  36. data/generated/lib/imgwire-generated/models/standard_upload_response_schema.rb +263 -0
  37. data/generated/lib/imgwire-generated/models/storage_bytes_dataset_point_schema.rb +289 -0
  38. data/generated/lib/imgwire-generated/models/supported_mime_type.rb +43 -0
  39. data/generated/lib/imgwire-generated/models/transfer_bytes_dataset_point_schema.rb +263 -0
  40. data/generated/lib/imgwire-generated/models/transformations_dataset_point_schema.rb +263 -0
  41. data/generated/lib/imgwire-generated/models/upload_token_create_response_schema.rb +379 -0
  42. data/generated/lib/imgwire-generated/models/uploads_dataset_point_schema.rb +263 -0
  43. data/generated/lib/imgwire-generated/models/validation_error.rb +291 -0
  44. data/generated/lib/imgwire-generated/version.rb +15 -0
  45. data/generated/lib/imgwire-generated.rb +74 -0
  46. data/lib/imgwire/client.rb +52 -0
  47. data/lib/imgwire/client_options.rb +14 -0
  48. data/lib/imgwire/http/upload_client.rb +53 -0
  49. data/lib/imgwire/image.rb +137 -0
  50. data/lib/imgwire/pagination.rb +82 -0
  51. data/lib/imgwire/resources/base_resource.rb +29 -0
  52. data/lib/imgwire/resources/cors_origins_resource.rb +47 -0
  53. data/lib/imgwire/resources/custom_domain_resource.rb +30 -0
  54. data/lib/imgwire/resources/images_resource.rb +106 -0
  55. data/lib/imgwire/resources/metrics_resource.rb +24 -0
  56. data/lib/imgwire/uploads.rb +78 -0
  57. data/lib/imgwire/version.rb +5 -0
  58. data/lib/imgwire.rb +18 -0
  59. metadata +158 -0
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ module Imgwire
6
+ module Pagination
7
+ Metadata = Struct.new(
8
+ :total_count,
9
+ :page,
10
+ :limit,
11
+ :prev_page,
12
+ :next_page,
13
+ keyword_init: true
14
+ ) do
15
+ def self.from_headers(headers)
16
+ normalized = {}
17
+ headers.each do |key, value|
18
+ normalized[key.to_s.downcase] = value
19
+ end
20
+
21
+ new(
22
+ total_count: parse_int(normalized['x-total-count']),
23
+ page: parse_int(normalized['x-page']),
24
+ limit: parse_int(normalized['x-limit']),
25
+ prev_page: parse_int(normalized['x-prev-page']),
26
+ next_page: parse_int(normalized['x-next-page'])
27
+ )
28
+ end
29
+
30
+ def self.parse_int(value)
31
+ return nil if value.nil?
32
+
33
+ normalized = value.to_s.strip.downcase
34
+ return nil if normalized.empty? || normalized == 'null' || normalized == 'none'
35
+
36
+ normalized.to_i
37
+ end
38
+ end
39
+
40
+ Page = Struct.new(:data, :pagination, keyword_init: true)
41
+
42
+ class PageEnumerator
43
+ include Enumerable
44
+
45
+ def initialize(page:, limit:, &loader)
46
+ @page = page
47
+ @limit = limit
48
+ @loader = loader
49
+ end
50
+
51
+ def each
52
+ return enum_for(:each) unless block_given?
53
+
54
+ current_page = @page
55
+ current_limit = @limit
56
+
57
+ while current_page
58
+ result = @loader.call(current_page, current_limit)
59
+ yield result
60
+ current_limit = result.pagination.limit || current_limit
61
+ current_page = result.pagination.next_page
62
+ end
63
+ end
64
+ end
65
+
66
+ class ItemEnumerator
67
+ include Enumerable
68
+
69
+ def initialize(page_enumerator)
70
+ @page_enumerator = page_enumerator
71
+ end
72
+
73
+ def each(&block)
74
+ return enum_for(:each) unless block_given?
75
+
76
+ @page_enumerator.each do |page|
77
+ page.data.each(&block)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ module Resources
5
+ class BaseResource
6
+ def initialize(api_client)
7
+ @api_client = api_client
8
+ end
9
+
10
+ private
11
+
12
+ def coerce_model(model_type, value)
13
+ return value if value.is_a?(model_type)
14
+ return model_type.build_from_hash(value) if value.is_a?(Hash)
15
+
16
+ raise ArgumentError, "Expected #{model_type} or Hash"
17
+ end
18
+
19
+ def to_page(response)
20
+ data, = response
21
+ _data, _status, headers = response
22
+ Pagination::Page.new(
23
+ data: data,
24
+ pagination: Pagination::Metadata.from_headers(headers || {})
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ module Resources
5
+ class CorsOriginsResource < BaseResource
6
+ def initialize(api_client)
7
+ super
8
+ @api = ImgwireGenerated::CorsOriginsApi.new(api_client)
9
+ end
10
+
11
+ def create(payload)
12
+ @api.cors_origins_create(
13
+ coerce_model(ImgwireGenerated::CorsOriginCreateSchema, payload)
14
+ )
15
+ end
16
+
17
+ def delete(cors_origin_id)
18
+ @api.cors_origins_delete(cors_origin_id)
19
+ end
20
+
21
+ def list(page: nil, limit: nil)
22
+ to_page(@api.cors_origins_list_with_http_info(page: page, limit: limit))
23
+ end
24
+
25
+ def list_pages(page: 1, limit: nil)
26
+ Pagination::PageEnumerator.new(page: page, limit: limit) do |current_page, current_limit|
27
+ list(page: current_page, limit: current_limit)
28
+ end
29
+ end
30
+
31
+ def list_all(page: 1, limit: nil)
32
+ Pagination::ItemEnumerator.new(list_pages(page: page, limit: limit))
33
+ end
34
+
35
+ def retrieve(cors_origin_id)
36
+ @api.cors_origins_retrieve(cors_origin_id)
37
+ end
38
+
39
+ def update(cors_origin_id, payload)
40
+ @api.cors_origins_update(
41
+ cors_origin_id,
42
+ coerce_model(ImgwireGenerated::CorsOriginUpdateSchema, payload)
43
+ )
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ module Resources
5
+ class CustomDomainResource < BaseResource
6
+ def initialize(api_client)
7
+ super
8
+ @api = ImgwireGenerated::CustomDomainApi.new(api_client)
9
+ end
10
+
11
+ def create(payload)
12
+ @api.custom_domain_create(
13
+ coerce_model(ImgwireGenerated::CustomDomainCreateSchema, payload)
14
+ )
15
+ end
16
+
17
+ def delete
18
+ @api.custom_domain_delete
19
+ end
20
+
21
+ def retrieve
22
+ @api.custom_domain_retrieve
23
+ end
24
+
25
+ def test_connection
26
+ @api.custom_domain_test_connection
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ module Resources
5
+ class ImagesResource < BaseResource
6
+ def initialize(api_client, options)
7
+ super(api_client)
8
+ @api = ImgwireGenerated::ImagesApi.new(api_client)
9
+ @options = options
10
+ end
11
+
12
+ def bulk_delete(payload)
13
+ @api.images_bulk_delete(
14
+ coerce_model(ImgwireGenerated::BulkDeleteImagesSchema, payload)
15
+ )
16
+ end
17
+
18
+ def create(payload, upload_token: nil)
19
+ response = @api.images_create(
20
+ coerce_model(ImgwireGenerated::StandardUploadCreateSchema, payload),
21
+ upload_token: upload_token
22
+ )
23
+ response.image = Image.wrap(response.image)
24
+ response
25
+ end
26
+
27
+ def create_bulk_download_job(payload)
28
+ @api.images_create_bulk_download_job(
29
+ coerce_model(ImgwireGenerated::ImageDownloadJobCreateSchema, payload)
30
+ )
31
+ end
32
+
33
+ def create_upload_token
34
+ @api.images_create_upload_token
35
+ end
36
+
37
+ def delete(image_id)
38
+ @api.images_delete(image_id)
39
+ end
40
+
41
+ def list(page: nil, limit: nil)
42
+ page_result = to_page(@api.images_list_with_http_info(page: page, limit: limit))
43
+ page_result.data = page_result.data.map { |image| Image.wrap(image) }
44
+ page_result
45
+ end
46
+
47
+ def list_pages(page: 1, limit: nil)
48
+ Pagination::PageEnumerator.new(page: page, limit: limit) do |current_page, current_limit|
49
+ list(page: current_page, limit: current_limit)
50
+ end
51
+ end
52
+
53
+ def list_all(page: 1, limit: nil)
54
+ Pagination::ItemEnumerator.new(list_pages(page: page, limit: limit))
55
+ end
56
+
57
+ def retrieve(image_id)
58
+ Image.wrap(@api.images_retrieve(image_id))
59
+ end
60
+
61
+ def retrieve_bulk_download_job(image_download_job_id)
62
+ @api.images_retrieve_bulk_download_job(image_download_job_id)
63
+ end
64
+
65
+ def upload(
66
+ file:,
67
+ file_name: nil,
68
+ mime_type: nil,
69
+ content_length: nil,
70
+ custom_metadata: nil,
71
+ hash_sha256: nil,
72
+ idempotency_key: nil,
73
+ purpose: nil
74
+ )
75
+ resolved = Uploads.resolve(
76
+ file: file,
77
+ file_name: file_name,
78
+ mime_type: mime_type,
79
+ content_length: content_length
80
+ )
81
+
82
+ created = create(
83
+ {
84
+ content_length: resolved.content_length,
85
+ custom_metadata: custom_metadata,
86
+ file_name: resolved.file_name,
87
+ hash_sha256: hash_sha256,
88
+ idempotency_key: idempotency_key,
89
+ mime_type: resolved.mime_type,
90
+ purpose: purpose
91
+ }
92
+ )
93
+
94
+ @options.upload_http_client.put(
95
+ created.upload_url,
96
+ resolved,
97
+ timeout: @options.timeout,
98
+ max_retries: @options.max_retries,
99
+ backoff_factor: @options.backoff_factor
100
+ )
101
+
102
+ created.image
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ module Resources
5
+ class MetricsResource < BaseResource
6
+ def initialize(api_client)
7
+ super
8
+ @api = ImgwireGenerated::MetricsApi.new(api_client)
9
+ end
10
+
11
+ def datasets(interval: nil, page: nil, limit: nil)
12
+ @api.metrics_get_datasets(
13
+ interval: interval,
14
+ page: page,
15
+ limit: limit
16
+ )
17
+ end
18
+
19
+ def stats
20
+ @api.metrics_get_stats
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ require 'stringio'
5
+ require 'tempfile'
6
+
7
+ module Imgwire
8
+ module Uploads
9
+ DEFAULT_CONTENT_TYPE = 'application/octet-stream'
10
+ MIME_TYPES = {
11
+ '.avif' => 'image/avif',
12
+ '.gif' => 'image/gif',
13
+ '.jpeg' => 'image/jpeg',
14
+ '.jpg' => 'image/jpeg',
15
+ '.png' => 'image/png',
16
+ '.webp' => 'image/webp'
17
+ }.freeze
18
+
19
+ ResolvedUpload = Struct.new(
20
+ :io,
21
+ :file_name,
22
+ :mime_type,
23
+ :content_length,
24
+ keyword_init: true
25
+ ) do
26
+ def rewind
27
+ io.rewind if io.respond_to?(:rewind)
28
+ end
29
+ end
30
+
31
+ module_function
32
+
33
+ def resolve(file:, file_name: nil, mime_type: nil, content_length: nil)
34
+ io = file
35
+ inferred_file_name = file_name || infer_file_name(file)
36
+ inferred_mime_type = mime_type || infer_mime_type(inferred_file_name)
37
+ inferred_content_length = content_length || infer_content_length(file)
38
+
39
+ raise ArgumentError, 'Upload file must respond to #read' unless io.respond_to?(:read)
40
+
41
+ if inferred_file_name.nil? || inferred_file_name.empty?
42
+ raise ArgumentError, 'Upload file_name could not be inferred'
43
+ end
44
+
45
+ raise ArgumentError, 'Upload content_length could not be inferred' if inferred_content_length.nil?
46
+
47
+ ResolvedUpload.new(
48
+ io: io,
49
+ file_name: inferred_file_name,
50
+ mime_type: inferred_mime_type || DEFAULT_CONTENT_TYPE,
51
+ content_length: inferred_content_length
52
+ )
53
+ end
54
+
55
+ def infer_file_name(file)
56
+ return File.basename(file.path) if file.respond_to?(:path) && file.path
57
+ return 'upload.bin' if file.is_a?(StringIO)
58
+
59
+ nil
60
+ end
61
+
62
+ def infer_mime_type(file_name)
63
+ return nil unless file_name
64
+
65
+ MIME_TYPES[File.extname(file_name).downcase]
66
+ end
67
+
68
+ def infer_content_length(file)
69
+ return file.size if file.respond_to?(:size) && file.size
70
+
71
+ return File.size(file.path) if file.respond_to?(:path) && file.path
72
+
73
+ return file.string.bytesize if file.is_a?(StringIO)
74
+
75
+ nil
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imgwire
4
+ VERSION = '0.1.0'
5
+ end
data/lib/imgwire.rb ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.expand_path('../generated/lib', __dir__))
4
+
5
+ require 'imgwire-generated'
6
+
7
+ require 'imgwire/version'
8
+ require 'imgwire/client_options'
9
+ require 'imgwire/client'
10
+ require 'imgwire/image'
11
+ require 'imgwire/pagination'
12
+ require 'imgwire/http/upload_client'
13
+ require 'imgwire/uploads'
14
+ require 'imgwire/resources/base_resource'
15
+ require 'imgwire/resources/images_resource'
16
+ require 'imgwire/resources/cors_origins_resource'
17
+ require 'imgwire/resources/custom_domain_resource'
18
+ require 'imgwire/resources/metrics_resource'
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: imgwire
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Blackhawk Software, LLC
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-04-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: typhoeus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.81'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.81'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop-rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.13'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.13'
69
+ description: Authenticate with a Server API Key, upload files, manage resources, and
70
+ generate image transformation URLs with imgwire from Ruby applications.
71
+ email:
72
+ - support@imgwire.dev
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - AGENTS.md
78
+ - CODEGEN_VERSION
79
+ - LICENSE
80
+ - README.md
81
+ - generated/lib/imgwire-generated.rb
82
+ - generated/lib/imgwire-generated/api/cors_origins_api.rb
83
+ - generated/lib/imgwire-generated/api/custom_domain_api.rb
84
+ - generated/lib/imgwire-generated/api/images_api.rb
85
+ - generated/lib/imgwire-generated/api/metrics_api.rb
86
+ - generated/lib/imgwire-generated/api_client.rb
87
+ - generated/lib/imgwire-generated/api_error.rb
88
+ - generated/lib/imgwire-generated/configuration.rb
89
+ - generated/lib/imgwire-generated/models/bulk_delete_images_schema.rb
90
+ - generated/lib/imgwire-generated/models/cache_hit_ratio_dataset_point_schema.rb
91
+ - generated/lib/imgwire-generated/models/cors_origin_create_schema.rb
92
+ - generated/lib/imgwire-generated/models/cors_origin_schema.rb
93
+ - generated/lib/imgwire-generated/models/cors_origin_update_schema.rb
94
+ - generated/lib/imgwire-generated/models/custom_domain_certificate_status.rb
95
+ - generated/lib/imgwire-generated/models/custom_domain_create_schema.rb
96
+ - generated/lib/imgwire-generated/models/custom_domain_schema.rb
97
+ - generated/lib/imgwire-generated/models/custom_domain_status.rb
98
+ - generated/lib/imgwire-generated/models/custom_metadata_value.rb
99
+ - generated/lib/imgwire-generated/models/http_validation_error.rb
100
+ - generated/lib/imgwire-generated/models/image_download_job_create_schema.rb
101
+ - generated/lib/imgwire-generated/models/image_download_job_schema.rb
102
+ - generated/lib/imgwire-generated/models/image_download_status.rb
103
+ - generated/lib/imgwire-generated/models/image_schema.rb
104
+ - generated/lib/imgwire-generated/models/image_status.rb
105
+ - generated/lib/imgwire-generated/models/location_inner.rb
106
+ - generated/lib/imgwire-generated/models/metrics_dataset_interval.rb
107
+ - generated/lib/imgwire-generated/models/metrics_datasets_schema.rb
108
+ - generated/lib/imgwire-generated/models/metrics_stat_value_schema.rb
109
+ - generated/lib/imgwire-generated/models/metrics_stats_schema.rb
110
+ - generated/lib/imgwire-generated/models/requests_dataset_point_schema.rb
111
+ - generated/lib/imgwire-generated/models/standard_upload_create_schema.rb
112
+ - generated/lib/imgwire-generated/models/standard_upload_response_schema.rb
113
+ - generated/lib/imgwire-generated/models/storage_bytes_dataset_point_schema.rb
114
+ - generated/lib/imgwire-generated/models/supported_mime_type.rb
115
+ - generated/lib/imgwire-generated/models/transfer_bytes_dataset_point_schema.rb
116
+ - generated/lib/imgwire-generated/models/transformations_dataset_point_schema.rb
117
+ - generated/lib/imgwire-generated/models/upload_token_create_response_schema.rb
118
+ - generated/lib/imgwire-generated/models/uploads_dataset_point_schema.rb
119
+ - generated/lib/imgwire-generated/models/validation_error.rb
120
+ - generated/lib/imgwire-generated/version.rb
121
+ - lib/imgwire.rb
122
+ - lib/imgwire/client.rb
123
+ - lib/imgwire/client_options.rb
124
+ - lib/imgwire/http/upload_client.rb
125
+ - lib/imgwire/image.rb
126
+ - lib/imgwire/pagination.rb
127
+ - lib/imgwire/resources/base_resource.rb
128
+ - lib/imgwire/resources/cors_origins_resource.rb
129
+ - lib/imgwire/resources/custom_domain_resource.rb
130
+ - lib/imgwire/resources/images_resource.rb
131
+ - lib/imgwire/resources/metrics_resource.rb
132
+ - lib/imgwire/uploads.rb
133
+ - lib/imgwire/version.rb
134
+ homepage: https://github.com/Blackhawk-Software/imgwire-ruby
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ - generated/lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '3.0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubygems_version: 3.5.22
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: Server-side Ruby SDK for the imgwire API.
158
+ test_files: []