aspose_cells_cloud 26.9 → 26.10.5

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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +39 -31
  3. data/lib/aspose_cells_cloud/api/cells_api.rb +92 -7
  4. data/lib/aspose_cells_cloud/models/shared_drive_info.rb +222 -0
  5. data/lib/aspose_cells_cloud/requests/aggregate_cells_by_color__deprecated_request.rb +155 -0
  6. data/lib/aspose_cells_cloud/requests/aggregate_cells_by_color_request.rb +1 -1
  7. data/lib/aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet__legacy_put_request.rb +138 -0
  8. data/lib/aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet_request.rb +1 -1
  9. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_range__legacy_put_request.rb +156 -0
  10. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_range_request.rb +1 -1
  11. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet__legacy_put_request.rb +150 -0
  12. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet_request.rb +1 -1
  13. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet__legacy_put_request.rb +145 -0
  14. data/lib/aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet_request.rb +1 -1
  15. data/lib/aspose_cells_cloud/requests/search_content_in_remote_range__legacy_put_request.rb +176 -0
  16. data/lib/aspose_cells_cloud/requests/search_content_in_remote_range_request.rb +1 -1
  17. data/lib/aspose_cells_cloud/requests/search_content_in_remote_spreadsheet__legacy_put_request.rb +154 -0
  18. data/lib/aspose_cells_cloud/requests/search_content_in_remote_spreadsheet_request.rb +1 -1
  19. data/lib/aspose_cells_cloud/requests/search_content_in_remote_worksheet__legacy_put_request.rb +165 -0
  20. data/lib/aspose_cells_cloud/requests/search_content_in_remote_worksheet_request.rb +1 -1
  21. data/lib/aspose_cells_cloud/version.rb +1 -1
  22. data/lib/aspose_cells_cloud.rb +9 -0
  23. metadata +12 -11
  24. data/spec/client_spec.rb +0 -114
  25. data/spec/configuration_spec.rb +0 -61
  26. data/spec/form_file_spec.rb +0 -47
  27. data/spec/model_spec.rb +0 -73
  28. data/spec/request_spec.rb +0 -87
  29. data/spec/rich_response_spec.rb +0 -46
  30. data/spec/sdk_error_spec.rb +0 -27
  31. data/spec/spec_helper.rb +0 -21
@@ -27,5 +27,5 @@
27
27
 
28
28
 
29
29
  module AsposeCellsCloud
30
- VERSION = "26.9"
30
+ VERSION = "26.10.5"
31
31
  end
@@ -42,6 +42,7 @@ require 'aspose_cells_cloud/models/files_list'
42
42
  require 'aspose_cells_cloud/models/files_upload_result'
43
43
  require 'aspose_cells_cloud/models/storage_file'
44
44
  require 'aspose_cells_cloud/models/google_drive_storage_file'
45
+ require 'aspose_cells_cloud/models/shared_drive_info'
45
46
  require 'aspose_cells_cloud/models/aggregate_result_by_color'
46
47
  require 'aspose_cells_cloud/models/broken_link'
47
48
  require 'aspose_cells_cloud/models/cell_area'
@@ -493,6 +494,7 @@ require 'aspose_cells_cloud/requests/report_ai_analysis_request'
493
494
  require 'aspose_cells_cloud/requests/summarize_spreadsheet_request'
494
495
  require 'aspose_cells_cloud/requests/categorize_spreadsheet_request'
495
496
  require 'aspose_cells_cloud/requests/aggregate_cells_by_color_request'
497
+ require 'aspose_cells_cloud/requests/aggregate_cells_by_color__deprecated_request'
496
498
  require 'aspose_cells_cloud/requests/math_calculate_request'
497
499
  require 'aspose_cells_cloud/requests/calculation_formula_request'
498
500
  require 'aspose_cells_cloud/requests/post_access_token_request'
@@ -556,19 +558,26 @@ require 'aspose_cells_cloud/requests/unprotect_spreadsheet_request'
556
558
  require 'aspose_cells_cloud/requests/spreadsheet_digitalsignature_request'
557
559
  require 'aspose_cells_cloud/requests/smart_marker_template_request'
558
560
  require 'aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet_request'
561
+ require 'aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet__legacy_put_request'
559
562
  require 'aspose_cells_cloud/requests/search_spreadsheet_all_text_items_request'
560
563
  require 'aspose_cells_cloud/requests/search_spreadsheet_content_request'
561
564
  require 'aspose_cells_cloud/requests/search_content_in_remote_spreadsheet_request'
565
+ require 'aspose_cells_cloud/requests/search_content_in_remote_spreadsheet__legacy_put_request'
562
566
  require 'aspose_cells_cloud/requests/search_content_in_remote_worksheet_request'
567
+ require 'aspose_cells_cloud/requests/search_content_in_remote_worksheet__legacy_put_request'
563
568
  require 'aspose_cells_cloud/requests/search_content_in_remote_range_request'
569
+ require 'aspose_cells_cloud/requests/search_content_in_remote_range__legacy_put_request'
564
570
  require 'aspose_cells_cloud/requests/replace_spreadsheet_content_request'
565
571
  require 'aspose_cells_cloud/requests/replace_content_in_remote_spreadsheet_request'
566
572
  require 'aspose_cells_cloud/requests/replace_content_in_remote_worksheet_request'
567
573
  require 'aspose_cells_cloud/requests/replace_content_in_remote_range_request'
568
574
  require 'aspose_cells_cloud/requests/search_spreadsheet_broken_links_request'
569
575
  require 'aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet_request'
576
+ require 'aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet__legacy_put_request'
570
577
  require 'aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet_request'
578
+ require 'aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet__legacy_put_request'
571
579
  require 'aspose_cells_cloud/requests/search_broken_links_in_remote_range_request'
580
+ require 'aspose_cells_cloud/requests/search_broken_links_in_remote_range__legacy_put_request'
572
581
  require 'aspose_cells_cloud/requests/spec_request'
573
582
  require 'aspose_cells_cloud/requests/codegen_spec_request'
574
583
  require 'aspose_cells_cloud/requests/trim_character_in_remote_spreadsheet_request'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aspose_cells_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: '26.9'
4
+ version: 26.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aspose Cells Cloud
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-28 00:00:00.000000000 Z
11
+ date: 2026-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -590,6 +590,7 @@ files:
590
590
  - lib/aspose_cells_cloud/models/shape_response.rb
591
591
  - lib/aspose_cells_cloud/models/shapes.rb
592
592
  - lib/aspose_cells_cloud/models/shapes_response.rb
593
+ - lib/aspose_cells_cloud/models/shared_drive_info.rb
593
594
  - lib/aspose_cells_cloud/models/single_value.rb
594
595
  - lib/aspose_cells_cloud/models/single_value_response.rb
595
596
  - lib/aspose_cells_cloud/models/smart_marker_task_parameter.rb
@@ -696,6 +697,7 @@ files:
696
697
  - lib/aspose_cells_cloud/requests/add_text_in_remote_spreadsheet_request.rb
697
698
  - lib/aspose_cells_cloud/requests/add_text_request.rb
698
699
  - lib/aspose_cells_cloud/requests/add_worksheet_to_spreadsheet_request.rb
700
+ - lib/aspose_cells_cloud/requests/aggregate_cells_by_color__deprecated_request.rb
699
701
  - lib/aspose_cells_cloud/requests/aggregate_cells_by_color_request.rb
700
702
  - lib/aspose_cells_cloud/requests/calculation_formula_request.rb
701
703
  - lib/aspose_cells_cloud/requests/categorize_spreadsheet_request.rb
@@ -1123,12 +1125,19 @@ files:
1123
1125
  - lib/aspose_cells_cloud/requests/replace_spreadsheet_content_request.rb
1124
1126
  - lib/aspose_cells_cloud/requests/report_ai_analysis_request.rb
1125
1127
  - lib/aspose_cells_cloud/requests/save_spreadsheet_as_request.rb
1128
+ - lib/aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet__legacy_put_request.rb
1126
1129
  - lib/aspose_cells_cloud/requests/search_all_text_items_in_remote_spreadsheet_request.rb
1130
+ - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_range__legacy_put_request.rb
1127
1131
  - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_range_request.rb
1132
+ - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet__legacy_put_request.rb
1128
1133
  - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_spreadsheet_request.rb
1134
+ - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet__legacy_put_request.rb
1129
1135
  - lib/aspose_cells_cloud/requests/search_broken_links_in_remote_worksheet_request.rb
1136
+ - lib/aspose_cells_cloud/requests/search_content_in_remote_range__legacy_put_request.rb
1130
1137
  - lib/aspose_cells_cloud/requests/search_content_in_remote_range_request.rb
1138
+ - lib/aspose_cells_cloud/requests/search_content_in_remote_spreadsheet__legacy_put_request.rb
1131
1139
  - lib/aspose_cells_cloud/requests/search_content_in_remote_spreadsheet_request.rb
1140
+ - lib/aspose_cells_cloud/requests/search_content_in_remote_worksheet__legacy_put_request.rb
1132
1141
  - lib/aspose_cells_cloud/requests/search_content_in_remote_worksheet_request.rb
1133
1142
  - lib/aspose_cells_cloud/requests/search_spreadsheet_all_text_items_request.rb
1134
1143
  - lib/aspose_cells_cloud/requests/search_spreadsheet_broken_links_request.rb
@@ -1155,14 +1164,6 @@ files:
1155
1164
  - lib/aspose_cells_cloud/requests/update_word_case_request.rb
1156
1165
  - lib/aspose_cells_cloud/requests/upload_file_request.rb
1157
1166
  - lib/aspose_cells_cloud/version.rb
1158
- - spec/client_spec.rb
1159
- - spec/configuration_spec.rb
1160
- - spec/form_file_spec.rb
1161
- - spec/model_spec.rb
1162
- - spec/request_spec.rb
1163
- - spec/rich_response_spec.rb
1164
- - spec/sdk_error_spec.rb
1165
- - spec/spec_helper.rb
1166
1167
  homepage: https://products.aspose.cloud/cells/ruby
1167
1168
  licenses:
1168
1169
  - MIT
@@ -1185,7 +1186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1185
1186
  - !ruby/object:Gem::Version
1186
1187
  version: '0'
1187
1188
  requirements: []
1188
- rubygems_version: 3.3.7
1189
+ rubygems_version: 3.4.15
1189
1190
  signing_key:
1190
1191
  specification_version: 4
1191
1192
  summary: Effortlessly handle Excel and other spreadsheet documents with features like
data/spec/client_spec.rb DELETED
@@ -1,114 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'tempfile'
4
-
5
- RSpec.describe Aspose::Cells::Cloud::AsposeCellsCloudClient do
6
- subject(:client) { described_class.new('client-id', 'client-secret') }
7
-
8
- describe 'construction' do
9
- it 'builds a Configuration with the supplied credentials and default base_url' do
10
- expect(client.configuration.client_id).to eq('client-id')
11
- expect(client.configuration.client_secret).to eq('client-secret')
12
- expect(client.configuration.base_url).to eq('https://api.aspose.cloud')
13
- end
14
-
15
- it 'accepts a custom base_url and options' do
16
- custom = described_class.new('id', 'secret', 'https://example.com', timeout: 10, retries: 2)
17
- expect(custom.configuration.base_url).to eq('https://example.com')
18
- expect(custom.configuration.timeout).to eq(10)
19
- expect(custom.configuration.retries).to eq(2)
20
- end
21
-
22
- it 'exposes configuration via #get_configuration' do
23
- expect(client.get_configuration).to be(client.configuration)
24
- end
25
- end
26
-
27
- describe '#build_multipart (private)' do
28
- it 'embeds a file as a multipart part with its basename' do
29
- Tempfile.create('book') do |file|
30
- file.write('spreadsheet-bytes')
31
- file.flush
32
- content_type, body = client.send(:build_multipart, 'File' => file.path)
33
- expect(content_type).to match(%r{^multipart/form-data; boundary=})
34
- expect(body).to include('name="File"')
35
- expect(body).to include("filename=\"#{File.basename(file.path)}\"")
36
- expect(body).to include('spreadsheet-bytes')
37
- end
38
- end
39
-
40
- it 'sends a plain value as a text field' do
41
- _content_type, body = client.send(:build_multipart, 'note' => 'hello')
42
- expect(body).to include('name="note"')
43
- expect(body).to include('hello')
44
- end
45
-
46
- it 'accepts an open IO object (File/Tempfile) as a file part' do
47
- Tempfile.create('book') do |file|
48
- file.write('from-io')
49
- file.flush
50
- _content_type, body = client.send(:build_multipart, 'File' => file)
51
- expect(body).to include("filename=\"#{File.basename(file.path)}\"")
52
- expect(body).to include('from-io')
53
- end
54
- end
55
-
56
- it 'accepts a FormFile.from_bytes binary array as a file part' do
57
- form_file = Aspose::Cells::Cloud::FormFile.from_bytes([0x00, 0x48, 0x49], filename: 'raw.bin')
58
- _content_type, body = client.send(:build_multipart, 'File' => form_file)
59
- expect(body).to include('filename="raw.bin"')
60
- expect(body).to include("\x00HI".b)
61
- end
62
-
63
- it 'uses a FormFile content_type when provided' do
64
- form_file = Aspose::Cells::Cloud::FormFile.from_bytes([0x50, 0x4B], filename: 'a.xlsx',
65
- content_type: 'application/vnd.ms-excel')
66
- content_type, body = client.send(:build_multipart, 'File' => form_file)
67
- expect(content_type).to match(%r{^multipart/form-data; boundary=})
68
- expect(body).to include('Content-Type: application/vnd.ms-excel')
69
- end
70
-
71
- it 'sends a bare integer array as a binary text field' do
72
- _content_type, body = client.send(:build_multipart, 'blob' => [0x01, 0x02, 0x03])
73
- expect(body).to include("name=\"blob\"")
74
- expect(body).to include("\x01\x02\x03".b)
75
- expect(body).not_to include('filename=')
76
- end
77
- end
78
-
79
- describe '#build_request (private)' do
80
- let(:uri) { URI.parse('https://api.aspose.cloud/v4.0/cells/convert') }
81
-
82
- it 'builds a GET request with no body' do
83
- req = client.send(:build_request, 'GET', uri, {}, nil, nil)
84
- expect(req).to be_a(Net::HTTP::Get)
85
- expect(req.body).to be_nil
86
- end
87
-
88
- it 'serializes a JSON body' do
89
- req = client.send(:build_request, 'POST', uri, { 'Content-Type' => 'application/json' },
90
- { 'Name' => 'x' }, nil)
91
- expect(req.body).to eq('{"Name":"x"}')
92
- expect(req['Content-Type']).to eq('application/json')
93
- end
94
-
95
- it 'rejects an unsupported HTTP method' do
96
- expect { client.send(:build_request, 'PATCH', uri, {}, nil, nil) }
97
- .to raise_error(Aspose::Cells::Cloud::SDKError, /Unsupported HTTP method/)
98
- end
99
- end
100
-
101
- describe '#upload_file / #download_file' do
102
- it 'upload_file builds and executes an UploadFileRequest' do
103
- response = double('response', success?: true)
104
- allow(client).to receive(:execute).and_return(response)
105
- expect(client.upload_file('TestData/In/a.xlsx', 'testdata/a.xlsx')).to be(response)
106
- end
107
-
108
- it 'download_file returns the response bytes' do
109
- response = double('response', to_bytes: 'CONTENT')
110
- allow(client).to receive(:execute).and_return(response)
111
- expect(client.download_file('TestData/In/a.xlsx')).to eq('CONTENT')
112
- end
113
- end
114
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Aspose::Cells::Cloud::Configuration do
4
- describe 'defaults' do
5
- subject(:config) { described_class.new }
6
-
7
- it 'defaults base_url to the production endpoint' do
8
- expect(config.base_url).to eq('https://api.aspose.cloud')
9
- end
10
-
11
- it 'defaults timeout to 30 seconds' do
12
- expect(config.timeout).to eq(30)
13
- end
14
-
15
- it 'defaults retries to 0' do
16
- expect(config.retries).to eq(0)
17
- end
18
-
19
- it 'defaults api_version to v4.0' do
20
- expect(config.api_version).to eq('v4.0')
21
- end
22
-
23
- it 'leaves credentials nil (no fake defaults)' do
24
- expect(config.client_id).to be_nil
25
- expect(config.client_secret).to be_nil
26
- end
27
-
28
- it 'starts with an empty header map' do
29
- expect(config.header_parameters).to eq({})
30
- end
31
- end
32
-
33
- describe '#token_url' do
34
- it 'derives the OAuth2 endpoint from api_version (v4.0) by default' do
35
- expect(described_class.new.token_url).to eq('https://api.aspose.cloud/v4.0/cells/connect/token')
36
- end
37
-
38
- it 'uses /v3.0/cells/connect/token when api_version is v3.0' do
39
- config = described_class.new(api_version: 'v3.0')
40
- expect(config.token_url).to eq('https://api.aspose.cloud/v3.0/cells/connect/token')
41
- end
42
-
43
- it 'honours an explicit auth_url override' do
44
- config = described_class.new(auth_url: 'https://example.com/oauth2/token')
45
- expect(config.token_url).to eq('https://example.com/oauth2/token')
46
- end
47
-
48
- it 'strips a trailing slash from base_url' do
49
- config = described_class.new(base_url: 'https://api.aspose.cloud/')
50
- expect(config.token_url).to eq('https://api.aspose.cloud/v4.0/cells/connect/token')
51
- end
52
- end
53
-
54
- describe '#add_default_header' do
55
- it 'adds a header to the map' do
56
- config = described_class.new
57
- config.add_default_header('X-Custom', 'value')
58
- expect(config.header_parameters['X-Custom']).to eq('value')
59
- end
60
- end
61
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'stringio'
4
- require 'tempfile'
5
-
6
- RSpec.describe Aspose::Cells::Cloud::FormFile do
7
- describe '.from_path' do
8
- it 'reads the file bytes and uses its basename as the filename' do
9
- Tempfile.create('book') do |file|
10
- file.write('sheet-bytes')
11
- file.flush
12
- form_file = described_class.from_path(file.path)
13
- expect(form_file.filename).to eq(File.basename(file.path))
14
- expect(form_file.read).to eq('sheet-bytes')
15
- expect(form_file.read.encoding).to eq(Encoding::BINARY)
16
- end
17
- end
18
- end
19
-
20
- describe '.from_io' do
21
- it 'reads the stream and honors an explicit filename' do
22
- form_file = described_class.from_io(StringIO.new('io-content'), filename: 'report.csv')
23
- expect(form_file.filename).to eq('report.csv')
24
- expect(form_file.read).to eq('io-content')
25
- end
26
- end
27
-
28
- describe '.from_bytes' do
29
- it 'packs an integer byte array into a binary string' do
30
- form_file = described_class.from_bytes([0x50, 0x4B, 0x03, 0x04], filename: 'Book1.xlsx')
31
- expect(form_file.read).to eq("\x50\x4B\x03\x04".b)
32
- end
33
-
34
- it 'accepts a binary string as-is' do
35
- form_file = described_class.from_bytes("\x50\x4B".b, filename: 'a.xlsx')
36
- expect(form_file.read).to eq("\x50\x4B".b)
37
- end
38
- end
39
-
40
- describe 'validation' do
41
- it 'requires exactly one of path/io/bytes' do
42
- expect { described_class.new }.to raise_error(ArgumentError, /exactly one/)
43
- expect { described_class.new(path: 'a', io: StringIO.new) }.to raise_error(ArgumentError, /exactly one/)
44
- expect { described_class.from_bytes([1], filename: nil) }.not_to raise_error
45
- end
46
- end
47
- end
data/spec/model_spec.rb DELETED
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe 'generated models' do
4
- describe Aspose::Cells::Cloud::Model::Font do
5
- it 'serializes set attributes to PascalCase wire names' do
6
- font = described_class.new(is_bold: true, size: 16, name: 'Arial')
7
- expect(font.to_h).to eq('IsBold' => true, 'Name' => 'Arial', 'Size' => 16)
8
- end
9
-
10
- it 'omits nil attributes (omitempty semantics)' do
11
- expect(described_class.new.to_h).to eq({})
12
- end
13
-
14
- it 'produces JSON via #to_json' do
15
- font = described_class.new(size: 12)
16
- expect(font.to_json).to eq('{"Size":12}')
17
- end
18
- end
19
-
20
- describe Aspose::Cells::Cloud::Model::FontSetting do
21
- it 'nests a model reference with #to_h' do
22
- setting = described_class.new(
23
- font: Aspose::Cells::Cloud::Model::Font.new(size: 10),
24
- length: 5,
25
- start_index: 0
26
- )
27
- expect(setting.to_h).to eq('Font' => { 'Size' => 10 }, 'Length' => 5, 'StartIndex' => 0)
28
- end
29
- end
30
-
31
- describe 'keyword-conflict attributes' do
32
- it 'maps a Type property to a type_ accessor with wire name Type' do
33
- color = Aspose::Cells::Cloud::Model::CellsColor.new(type_: 'Automatic')
34
- expect(color.type_).to eq('Automatic')
35
- expect(color.to_h).to eq('Type' => 'Automatic')
36
- end
37
- end
38
-
39
- describe 'container (array-of-model) properties' do
40
- it 'maps each element with #to_h' do
41
- links = Aspose::Cells::Cloud::Model::ListObjects.new(
42
- list_object_list: [
43
- Aspose::Cells::Cloud::Model::ListObject.new,
44
- Aspose::Cells::Cloud::Model::ListObject.new
45
- ]
46
- )
47
- expect(links.to_h['ListObjectList']).to be_an(Array)
48
- expect(links.to_h['ListObjectList'].length).to eq(2)
49
- end
50
- end
51
-
52
- describe 'enum models' do
53
- it 'serializes to an empty hash' do
54
- enum = Aspose::Cells::Cloud::Model::AggregateOperation.new('Sum')
55
- expect(enum.to_h).to eq({})
56
- end
57
- end
58
-
59
- describe 'full generation' do
60
- it 'generates 483 model classes' do
61
- model_files = Dir[File.join(__dir__, '..', 'lib', 'aspose', 'cells', 'cloud', 'model', '*.rb')]
62
- expect(model_files.length).to eq(483)
63
- end
64
-
65
- it 'every model responds to to_h and to_json' do
66
- Aspose::Cells::Cloud::Model.constants.each do |const|
67
- klass = Aspose::Cells::Cloud::Model.const_get(const)
68
- next unless klass.is_a?(Class)
69
- expect(klass.new).to respond_to(:to_h, :to_json)
70
- end
71
- end
72
- end
73
- end
data/spec/request_spec.rb DELETED
@@ -1,87 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe 'generated requests' do
4
- describe Aspose::Cells::Cloud::Request::PostClearContentsRequest do
5
- subject(:request) do
6
- described_class.new(name: 'Book 1.xlsx', sheet_name: 'Sheet1', range: 'A1:C10',
7
- folder: 'TestData/In')
8
- end
9
-
10
- it 'returns the HTTP verb' do
11
- expect(request.get_method).to eq('POST')
12
- end
13
-
14
- it 'substitutes and URL-encodes path placeholders' do
15
- expect(request.get_path).to eq('/v3.0/cells/Book%201.xlsx/worksheets/Sheet1/cells/clearcontents')
16
- end
17
-
18
- it 'includes required + present optional query parameters' do
19
- expect(request.get_query_parameters).to eq('range' => 'A1:C10', 'folder' => 'TestData/In')
20
- end
21
-
22
- it 'raises ArgumentError when a required parameter is empty' do
23
- expect { described_class.new(name: '', sheet_name: 'Sheet1') }
24
- .to raise_error(ArgumentError, /name is required/)
25
- end
26
-
27
- it 'enforces a required keyword argument' do
28
- expect { described_class.new(sheet_name: 'Sheet1') }
29
- .to raise_error(ArgumentError, /missing keyword/)
30
- end
31
- end
32
-
33
- describe Aspose::Cells::Cloud::Request::PutConvertWorkbookRequest do
34
- subject(:request) { described_class.new(format_: 'pdf', file: 'testdata/Book1.xlsx') }
35
-
36
- it 'maps the format_ attribute to the format wire key' do
37
- expect(request.get_query_parameters).to eq('format' => 'pdf')
38
- end
39
-
40
- it 'exposes the file as a multipart form field' do
41
- expect(request.get_multipart_form).to eq('File' => 'testdata/Book1.xlsx')
42
- expect(request.get_header_parameters).to eq('Content-Type' => 'multipart/form-data')
43
- end
44
- end
45
-
46
- describe Aspose::Cells::Cloud::Request::UploadFileRequest do
47
- it 'uses the UploadFiles form field name' do
48
- request = described_class.new(path: 'TestData/In/Book1.xlsx',
49
- upload_files: 'testdata/Book1.xlsx')
50
- expect(request.get_multipart_form).to eq('UploadFiles' => 'testdata/Book1.xlsx')
51
- expect(request.get_path).to eq('/v4.0/cells/storage/file/TestData%2FIn%2FBook1.xlsx')
52
- end
53
- end
54
-
55
- describe Aspose::Cells::Cloud::Request::PutWorksheetColorFilterRequest do
56
- it 'serializes a body model to a Hash and sets JSON content type' do
57
- request = described_class.new(
58
- name: 'Book1.xlsx', sheet_name: 'Sheet1', range: 'A1:C10', field_index: 0,
59
- color_filter: Aspose::Cells::Cloud::Model::ColorFilterRequest.new(pattern: 'Solid')
60
- )
61
- expect(request.get_json_body).to eq('Pattern' => 'Solid')
62
- expect(request.get_header_parameters).to eq('Content-Type' => 'application/json')
63
- end
64
- end
65
-
66
- describe 'full generation' do
67
- it 'generates 457 request classes (461 operations minus 4 ignored)' do
68
- files = Dir[File.join(__dir__, '..', 'lib', 'aspose', 'cells', 'cloud', 'request', '*_request.rb')]
69
- expect(files.length).to eq(457)
70
- end
71
-
72
- it 'every request is well-formed (verb, no leftover placeholders, Hash query)' do
73
- Aspose::Cells::Cloud::Request.constants.each do |const|
74
- klass = Aspose::Cells::Cloud::Request.const_get(const)
75
- next unless klass.is_a?(Class) && klass < Aspose::Cells::Cloud::RequestOption
76
-
77
- required = klass.instance_method(:initialize).parameters
78
- .select { |type, _| type == :keyreq }.map { |_, name| name }
79
- request = klass.new(**required.to_h { |name| [name, 'test'] })
80
-
81
- expect(request.get_method).to match(/\A(GET|POST|PUT|DELETE)\z/)
82
- expect(request.get_path).not_to include('{', '}')
83
- expect(request.get_query_parameters).to be_a(Hash)
84
- end
85
- end
86
- end
87
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Aspose::Cells::Cloud::RichResponse do
4
- subject(:response) do
5
- described_class.new(200, { 'Content-Type' => 'application/json' }, '{"Name":"Book1.xlsx"}')
6
- end
7
-
8
- it 'exposes status_code, headers, and body' do
9
- expect(response.status_code).to eq(200)
10
- expect(response.headers['Content-Type']).to eq('application/json')
11
- expect(response.body).to eq('{"Name":"Book1.xlsx"}')
12
- end
13
-
14
- describe '#to_s' do
15
- it 'decodes the body as UTF-8' do
16
- expect(response.to_s).to eq('{"Name":"Book1.xlsx"}')
17
- expect(response.to_s.encoding).to eq(Encoding::UTF_8)
18
- end
19
-
20
- it 'returns empty string for a nil body' do
21
- expect(described_class.new(204, {}, nil).to_s).to eq('')
22
- end
23
- end
24
-
25
- describe '#to_bytes' do
26
- it 'returns a binary-encoded body' do
27
- bytes = response.to_bytes
28
- expect(bytes).to eq('{"Name":"Book1.xlsx"}')
29
- expect(bytes.encoding).to eq(Encoding::BINARY)
30
- end
31
- end
32
-
33
- describe '#get_json' do
34
- it 'parses the body into a Hash' do
35
- expect(response.get_json).to eq('Name' => 'Book1.xlsx')
36
- end
37
-
38
- it 'hydrates a model when a class is given' do
39
- hydrated = described_class.new(200, {}, '{"UsedSize":1,"TotalSize":2}')
40
- .get_json(Aspose::Cells::Cloud::Model::DiscUsage)
41
- expect(hydrated).to be_a(Aspose::Cells::Cloud::Model::DiscUsage)
42
- expect(hydrated.used_size).to eq(1)
43
- expect(hydrated.total_size).to eq(2)
44
- end
45
- end
46
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Aspose::Cells::Cloud::SDKError do
4
- it 'is a StandardError' do
5
- expect(described_class.superclass).to eq(StandardError)
6
- end
7
-
8
- it 'carries a message' do
9
- error = described_class.new('boom')
10
- expect(error.message).to eq('boom')
11
- end
12
-
13
- it 'carries an optional HTTP code and body' do
14
- error = described_class.new('boom', code: 401, response_body: '{"error":"denied"}')
15
- expect(error.code).to eq(401)
16
- expect(error.response_body).to eq('{"error":"denied"}')
17
- end
18
-
19
- it 'can be rescued via the class name' do
20
- raised = begin
21
- raise described_class, 'x'
22
- rescue described_class => e
23
- e
24
- end
25
- expect(raised).to be_a(described_class)
26
- end
27
- end
data/spec/spec_helper.rb DELETED
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Makes the SDK available to every spec without requiring Bundler.
4
- $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
5
-
6
- require 'aspose/cells/cloud'
7
-
8
- RSpec.configure do |config|
9
- config.expect_with :rspec do |expectations|
10
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
11
- end
12
-
13
- config.mock_with :rspec do |mocks|
14
- mocks.verify_partial_doubles = true
15
- end
16
-
17
- config.shared_context_metadata_behavior = :apply_to_host_groups
18
- config.disable_monkey_patching!
19
- config.order = :random
20
- Kernel.srand config.seed
21
- end