xlsxrb 0.1.11 → 0.1.13
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -34
- data/README.md +26 -21
- data/lib/xlsxrb/chart_builder.rb +18 -18
- data/lib/xlsxrb/dsl_helpers.rb +175 -0
- data/lib/xlsxrb/elements/cell.rb +56 -22
- data/lib/xlsxrb/elements/column.rb +27 -3
- data/lib/xlsxrb/elements/row.rb +27 -8
- data/lib/xlsxrb/elements/workbook.rb +27 -14
- data/lib/xlsxrb/elements/worksheet.rb +17 -1
- data/lib/xlsxrb/ooxml/cfb.rb +9 -6
- data/lib/xlsxrb/ooxml/crypto/agile.rb +5 -5
- data/lib/xlsxrb/ooxml/reader/listeners/core_listeners.rb +784 -0
- data/lib/xlsxrb/ooxml/reader/listeners/drawing_listeners.rb +3478 -0
- data/lib/xlsxrb/ooxml/reader/listeners/feature_listeners.rb +1796 -0
- data/lib/xlsxrb/ooxml/reader/listeners/style_listeners.rb +428 -0
- data/lib/xlsxrb/ooxml/reader/listeners.rb +4 -6446
- data/lib/xlsxrb/ooxml/shared_strings_parser.rb +3 -5
- data/lib/xlsxrb/ooxml/utils.rb +5 -6
- data/lib/xlsxrb/ooxml/workbook_writer.rb +5 -7
- data/lib/xlsxrb/ooxml/worksheet_parser.rb +172 -9
- data/lib/xlsxrb/ooxml/writer/drawing_xml.rb +1602 -0
- data/lib/xlsxrb/ooxml/writer/features_xml.rb +731 -0
- data/lib/xlsxrb/ooxml/writer/styles_xml.rb +348 -0
- data/lib/xlsxrb/ooxml/writer.rb +9 -2646
- data/lib/xlsxrb/ooxml/xml_builder.rb +31 -2
- data/lib/xlsxrb/ooxml/zip_generator.rb +26 -5
- data/lib/xlsxrb/ooxml/zip_reader.rb +364 -78
- data/lib/xlsxrb/ooxml/zip_writer.rb +32 -5
- data/lib/xlsxrb/stream_sheet.rb +94 -6
- data/lib/xlsxrb/stream_writer.rb +48 -115
- data/lib/xlsxrb/style_builder.rb +10 -1
- data/lib/xlsxrb/version.rb +1 -1
- data/lib/xlsxrb/workbook_builder.rb +1 -1
- data/lib/xlsxrb/worksheet_builder.rb +19 -81
- data/lib/xlsxrb.rb +449 -171
- data/sig/generated/xlsxrb/chart_builder.rbs +36 -36
- data/sig/generated/xlsxrb/dsl_helpers.rbs +92 -0
- data/sig/generated/xlsxrb/elements/cell.rbs +29 -0
- data/sig/generated/xlsxrb/elements/column.rbs +32 -21
- data/sig/generated/xlsxrb/elements/row.rbs +94 -14
- data/sig/generated/xlsxrb/elements/workbook.rbs +102 -10
- data/sig/generated/xlsxrb/elements/worksheet.rbs +9 -0
- data/sig/generated/xlsxrb/ooxml/reader/listeners/core_listeners.rbs +173 -0
- data/sig/generated/xlsxrb/ooxml/reader/listeners/drawing_listeners.rbs +400 -0
- data/sig/generated/xlsxrb/ooxml/reader/listeners/feature_listeners.rbs +442 -0
- data/sig/generated/xlsxrb/ooxml/reader/listeners/style_listeners.rbs +80 -0
- data/sig/generated/xlsxrb/ooxml/reader/listeners.rbs +0 -1072
- data/sig/generated/xlsxrb/ooxml/shared_strings_parser.rbs +0 -2
- data/sig/generated/xlsxrb/ooxml/utils.rbs +2 -0
- data/sig/generated/xlsxrb/ooxml/worksheet_parser.rbs +5 -4
- data/sig/generated/xlsxrb/ooxml/writer/drawing_xml.rbs +79 -0
- data/sig/generated/xlsxrb/ooxml/writer/features_xml.rbs +83 -0
- data/sig/generated/xlsxrb/ooxml/writer/styles_xml.rbs +53 -0
- data/sig/generated/xlsxrb/ooxml/writer.rbs +6 -185
- data/sig/generated/xlsxrb/ooxml/xml_builder.rbs +18 -0
- data/sig/generated/xlsxrb/ooxml/zip_generator.rbs +15 -0
- data/sig/generated/xlsxrb/ooxml/zip_reader.rbs +96 -8
- data/sig/generated/xlsxrb/ooxml/zip_writer.rbs +5 -1
- data/sig/generated/xlsxrb/stream_sheet.rbs +43 -3
- data/sig/generated/xlsxrb/style_builder.rbs +7 -0
- data/sig/generated/xlsxrb.rbs +18 -11
- metadata +22 -144
- data/.devcontainer/Dockerfile +0 -65
- data/.devcontainer/devcontainer.json +0 -17
- data/.gem_rbs_collection/ast/2.4/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/ast/2.4/ast.rbs +0 -73
- data/.gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/concurrent-ruby/1.1/array.rbs +0 -4
- data/.gem_rbs_collection/concurrent-ruby/1.1/atomic_reference.rbs +0 -16
- data/.gem_rbs_collection/concurrent-ruby/1.1/executor.rbs +0 -96
- data/.gem_rbs_collection/concurrent-ruby/1.1/hash.rbs +0 -4
- data/.gem_rbs_collection/concurrent-ruby/1.1/map.rbs +0 -68
- data/.gem_rbs_collection/concurrent-ruby/1.1/promises.rbs +0 -249
- data/.gem_rbs_collection/concurrent-ruby/1.1/set.rbs +0 -4
- data/.gem_rbs_collection/concurrent-ruby/1.1/timer_task.rbs +0 -47
- data/.gem_rbs_collection/concurrent-ruby/1.1/utility/processor_counter.rbs +0 -5
- data/.gem_rbs_collection/csv/3.3/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/csv/3.3/csv.rbs +0 -3871
- data/.gem_rbs_collection/csv/3.3/manifest.yaml +0 -3
- data/.gem_rbs_collection/lint_roller/1.1/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/lint_roller/1.1/lint_roller.rbs +0 -48
- data/.gem_rbs_collection/listen/3.9/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/listen/3.9/listen.rbs +0 -25
- data/.gem_rbs_collection/listen/3.9/listener.rbs +0 -24
- data/.gem_rbs_collection/logger/1.7/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/logger/1.7/formatter.rbs +0 -45
- data/.gem_rbs_collection/logger/1.7/log_device.rbs +0 -100
- data/.gem_rbs_collection/logger/1.7/logger.rbs +0 -796
- data/.gem_rbs_collection/logger/1.7/manifest.yaml +0 -2
- data/.gem_rbs_collection/logger/1.7/period.rbs +0 -17
- data/.gem_rbs_collection/logger/1.7/severity.rbs +0 -34
- data/.gem_rbs_collection/nokogiri/1.11/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/nokogiri/1.11/nokogiri.rbs +0 -2332
- data/.gem_rbs_collection/nokogiri/1.11/patch.rbs +0 -4
- data/.gem_rbs_collection/parallel/1.20/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/parallel/1.20/parallel.rbs +0 -86
- data/.gem_rbs_collection/parser/3.2/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/parser/3.2/manifest.yaml +0 -7
- data/.gem_rbs_collection/parser/3.2/parser.rbs +0 -194
- data/.gem_rbs_collection/parser/3.2/polyfill.rbs +0 -4
- data/.gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/rainbow/3.0/global.rbs +0 -7
- data/.gem_rbs_collection/rainbow/3.0/presenter.rbs +0 -209
- data/.gem_rbs_collection/rainbow/3.0/rainbow.rbs +0 -5
- data/.gem_rbs_collection/rake/13.0/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/rake/13.0/manifest.yaml +0 -2
- data/.gem_rbs_collection/rake/13.0/rake.rbs +0 -39
- data/.gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/regexp_parser/2.8/regexp_parser.rbs +0 -17
- data/.gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/rubocop/1.57/rubocop.rbs +0 -208
- data/.gem_rbs_collection/rubocop-ast/1.46/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/rubocop-ast/1.46/rubocop-ast.rbs +0 -903
- data/.gem_rbs_collection/rubyzip/3.2/.rbs_meta.yaml +0 -9
- data/.gem_rbs_collection/rubyzip/3.2/manifest.yaml +0 -8
- data/.gem_rbs_collection/rubyzip/3.2/zip/central_directory.rbs +0 -42
- data/.gem_rbs_collection/rubyzip/3.2/zip/compressor.rbs +0 -5
- data/.gem_rbs_collection/rubyzip/3.2/zip/constants.rbs +0 -47
- data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/aes_encryption.rbs +0 -30
- data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/decrypted_io.rbs +0 -9
- data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/encryption.rbs +0 -7
- data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/null_encryption.rbs +0 -19
- data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/traditional_encryption.rbs +0 -31
- data/.gem_rbs_collection/rubyzip/3.2/zip/decompressor.rbs +0 -18
- data/.gem_rbs_collection/rubyzip/3.2/zip/deflater.rbs +0 -12
- data/.gem_rbs_collection/rubyzip/3.2/zip/dirtyable.rbs +0 -11
- data/.gem_rbs_collection/rubyzip/3.2/zip/dos_time.rbs +0 -13
- data/.gem_rbs_collection/rubyzip/3.2/zip/entry.rbs +0 -95
- data/.gem_rbs_collection/rubyzip/3.2/zip/entry_set.rbs +0 -31
- data/.gem_rbs_collection/rubyzip/3.2/zip/errors.rbs +0 -58
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/aes.rbs +0 -24
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/generic.rbs +0 -17
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/ntfs.rbs +0 -23
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/old_unix.rbs +0 -22
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/universal_time.rbs +0 -30
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unix.rbs +0 -20
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unknown.rbs +0 -15
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/zip64.rbs +0 -26
- data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field.rbs +0 -21
- data/.gem_rbs_collection/rubyzip/3.2/zip/file.rbs +0 -131
- data/.gem_rbs_collection/rubyzip/3.2/zip/file_split.rbs +0 -14
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/dir.rbs +0 -33
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/directory_iterator.rbs +0 -21
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file.rbs +0 -63
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file_stat.rbs +0 -55
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/zip_file_name_mapper.rbs +0 -35
- data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem.rbs +0 -7
- data/.gem_rbs_collection/rubyzip/3.2/zip/inflater.rbs +0 -10
- data/.gem_rbs_collection/rubyzip/3.2/zip/input_stream.rbs +0 -22
- data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_input_stream.rbs +0 -29
- data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_output_stream.rbs +0 -17
- data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras.rbs +0 -13
- data/.gem_rbs_collection/rubyzip/3.2/zip/null_compressor.rbs +0 -10
- data/.gem_rbs_collection/rubyzip/3.2/zip/null_decompressor.rbs +0 -8
- data/.gem_rbs_collection/rubyzip/3.2/zip/null_input_stream.rbs +0 -6
- data/.gem_rbs_collection/rubyzip/3.2/zip/output_stream.rbs +0 -30
- data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_compressor.rbs +0 -10
- data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_decompressor.rbs +0 -10
- data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_directory.rbs +0 -5
- data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_stream.rbs +0 -15
- data/.gem_rbs_collection/rubyzip/3.2/zip/version.rbs +0 -3
- data/.gem_rbs_collection/rubyzip/3.2/zip.rbs +0 -40
- data/Rakefile +0 -567
- data/Steepfile +0 -18
- data/benchmark.rb +0 -406
- data/docs/ARCHITECTURE.md +0 -514
- data/docs/DEVELOPMENT.md +0 -133
- data/docs/PEER_LIBRARIES.md +0 -121
- data/docs/QUALITY_ASSURANCE.md +0 -25
- data/docs/SPEC_SOURCES.md +0 -48
- data/docs/assets/benchmark_results.svg +0 -144
- data/docs/assets/lsp_autocompletion.png +0 -0
- data/docs/assets/playground_preview.png +0 -0
- data/docs/coi-serviceworker.js +0 -82
- data/docs/office_thread.js +0 -77
- data/docs/preview.html +0 -719
- data/docs/visual/VisualGallery.md +0 -4672
- data/docs/wasm/ruby.wasm +0 -0
- data/docs/wasm/wasm_doc_helper.css +0 -351
- data/docs/wasm/wasm_doc_helper.js +0 -439
- data/docs/zeta.js +0 -1107
- data/rbs_collection.lock.yaml +0 -252
- data/rbs_collection.yaml +0 -19
- data/vendor/sdk_runner/Program.cs +0 -93
- data/vendor/sdk_runner/sdk_runner.csproj +0 -13
|
@@ -32,11 +32,13 @@ module Xlsxrb
|
|
|
32
32
|
# Initializes a streaming worksheet context.
|
|
33
33
|
#
|
|
34
34
|
# @param name [String] The sheet name.
|
|
35
|
-
# @param
|
|
35
|
+
# @param sheet_source [String, Proc, IO, nil] Raw XML content or chunk supplier/stream.
|
|
36
36
|
# @param shared_strings [Array<String>] Shared strings table.
|
|
37
37
|
# @param styles [Hash, nil] Optional parsed styles hash.
|
|
38
|
-
#
|
|
39
|
-
|
|
38
|
+
# @param zip_reader [Ooxml::ZipReader, nil] Optional ZipReader context.
|
|
39
|
+
# @param entry_name [String, nil] Archive entry name for this sheet.
|
|
40
|
+
# : (String name, untyped sheet_source, Array[String] shared_strings, ?Hash[untyped, untyped]? styles, ?zip_reader: Ooxml::ZipReader?, ?entry_name: String?) -> void
|
|
41
|
+
def initialize: (String name, untyped sheet_source, Array[String] shared_strings, ?Hash[untyped, untyped]? styles, ?zip_reader: Ooxml::ZipReader?, ?entry_name: String?) -> void
|
|
40
42
|
|
|
41
43
|
# Iterates over rows in this streaming worksheet with O(1) memory.
|
|
42
44
|
#
|
|
@@ -96,5 +98,43 @@ module Xlsxrb
|
|
|
96
98
|
def load: () -> Elements::Worksheet
|
|
97
99
|
|
|
98
100
|
alias to_worksheet load
|
|
101
|
+
|
|
102
|
+
# Returns merged cell ranges (e.g. ["A1:B2"]) for this worksheet.
|
|
103
|
+
#
|
|
104
|
+
# @return [Array<String>]
|
|
105
|
+
# @api public
|
|
106
|
+
# : () -> Array[String]
|
|
107
|
+
def merged_cells: () -> Array[String]
|
|
108
|
+
|
|
109
|
+
# Returns the auto-filter range (e.g. "A1:E100") for this worksheet, or nil if none.
|
|
110
|
+
#
|
|
111
|
+
# @return [String, nil]
|
|
112
|
+
# @api public
|
|
113
|
+
# : () -> String?
|
|
114
|
+
def auto_filter: () -> String?
|
|
115
|
+
|
|
116
|
+
# Returns data validation rules configured for this worksheet.
|
|
117
|
+
#
|
|
118
|
+
# @return [Array<Hash[Symbol, untyped]>]
|
|
119
|
+
# @api public
|
|
120
|
+
# : () -> Array[Hash[Symbol, untyped]]
|
|
121
|
+
def data_validations: () -> Array[Hash[Symbol, untyped]]
|
|
122
|
+
|
|
123
|
+
# Returns conditional formatting rules configured for this worksheet.
|
|
124
|
+
#
|
|
125
|
+
# @return [Array<Hash[Symbol, untyped]>]
|
|
126
|
+
# @api public
|
|
127
|
+
# : () -> Array[Hash[Symbol, untyped]]
|
|
128
|
+
def conditional_formats: () -> Array[Hash[Symbol, untyped]]
|
|
129
|
+
|
|
130
|
+
# Closes any underlying reader resources.
|
|
131
|
+
# : () -> void
|
|
132
|
+
def close: () -> void
|
|
133
|
+
|
|
134
|
+
private
|
|
135
|
+
|
|
136
|
+
# Returns the full raw XML string for this worksheet, loaded on demand.
|
|
137
|
+
# : () -> String
|
|
138
|
+
def raw_sheet_xml: () -> String
|
|
99
139
|
end
|
|
100
140
|
end
|
|
@@ -7,6 +7,13 @@ module Xlsxrb
|
|
|
7
7
|
class StyleBuilder
|
|
8
8
|
COLORS: untyped
|
|
9
9
|
|
|
10
|
+
# Resolves a color symbol, string, or prefix to an aRGB hex string.
|
|
11
|
+
#
|
|
12
|
+
# @param color [Symbol, String, Object, nil]
|
|
13
|
+
# @return [String, nil]
|
|
14
|
+
# : (untyped color) -> String?
|
|
15
|
+
def self.resolve_color: (untyped color) -> String?
|
|
16
|
+
|
|
10
17
|
def resolve_color: (untyped color) -> untyped
|
|
11
18
|
|
|
12
19
|
# : (?String? name) -> void
|
data/sig/generated/xlsxrb.rbs
CHANGED
|
@@ -49,17 +49,6 @@ module Xlsxrb
|
|
|
49
49
|
class DecryptionError < EncryptedFileError
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
TRACER: untyped
|
|
53
|
-
|
|
54
|
-
# Executes the block within an OpenTelemetry tracer span if tracing is configured.
|
|
55
|
-
#
|
|
56
|
-
# @param name [String] The span name.
|
|
57
|
-
# @param attributes [Hash, nil] Optional telemetry attributes.
|
|
58
|
-
# @yield Block to execute inside the tracing span.
|
|
59
|
-
# @return [Object] The result of the block.
|
|
60
|
-
# : (String name, ?attributes: Hash[String, untyped]?) { (*untyped) -> untyped } -> untyped
|
|
61
|
-
def self.in_span: (String name, ?attributes: Hash[String, untyped]?) { (*untyped) -> untyped } -> untyped
|
|
62
|
-
|
|
63
52
|
# Helper to construct {Elements::RichText} objects with formatted text runs.
|
|
64
53
|
#
|
|
65
54
|
# @example Create multi-run rich text
|
|
@@ -236,6 +225,24 @@ module Xlsxrb
|
|
|
236
225
|
# : (Elements::Row row) -> Hash[Symbol, untyped]
|
|
237
226
|
private def self.build_row_attrs: (Elements::Row row) -> Hash[Symbol, untyped]
|
|
238
227
|
|
|
228
|
+
# : (untyped source, String? password) -> untyped
|
|
229
|
+
private def self.prepare_source_io: (untyped source, String? password) -> untyped
|
|
230
|
+
|
|
231
|
+
# : (untyped dest, Ooxml::ZipReader zip_reader, Hash[String, String] replaced_entries, ?password: String?) -> void
|
|
232
|
+
private def self.perform_modify_write: (untyped dest, Ooxml::ZipReader zip_reader, Hash[String, String] replaced_entries, ?password: String?) -> void
|
|
233
|
+
|
|
234
|
+
# : (String sst_xml, Array[untyped] new_strings) -> String
|
|
235
|
+
private def self.append_to_shared_strings_xml: (String sst_xml, Array[untyped] new_strings) -> String
|
|
236
|
+
|
|
237
|
+
# : (String sheet_xml, String new_sheet_data_xml) -> String
|
|
238
|
+
private def self.replace_sheet_data: (String sheet_xml, String new_sheet_data_xml) -> String
|
|
239
|
+
|
|
240
|
+
# : (String sheet_xml, Array[Elements::Row] rows) -> String
|
|
241
|
+
private def self.update_dimension: (String sheet_xml, Array[Elements::Row] rows) -> String
|
|
242
|
+
|
|
243
|
+
# : (Array[Elements::Row] rows, Array[untyped] shared_strings, Hash[untyped, Integer] sst_index, ?use_sst: bool) -> String
|
|
244
|
+
private def self.serialize_sheet_data_xml: (Array[Elements::Row] rows, Array[untyped] shared_strings, Hash[untyped, Integer] sst_index, ?use_sst: bool) -> String
|
|
245
|
+
|
|
239
246
|
# Builds a raw cell hash from a value for streaming writes.
|
|
240
247
|
#
|
|
241
248
|
# @param row_index [Integer] 0-based row index.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xlsxrb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- niku
|
|
@@ -24,168 +24,36 @@ dependencies:
|
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '4.1'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
|
-
name:
|
|
27
|
+
name: rexml
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '3.0'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - ">="
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0'
|
|
47
|
-
type: :runtime
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - ">="
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '0'
|
|
54
|
-
description: A minimal dependency XLSX reading and writing library for Ruby, relying
|
|
55
|
-
on standard libraries for core logic and opentelemetry-api for observability.
|
|
39
|
+
version: '3.0'
|
|
40
|
+
description: A streaming-capable, low-memory XLSX reading and writing library for
|
|
41
|
+
Ruby, relying solely on standard libraries and bundled gems.
|
|
56
42
|
email:
|
|
57
43
|
- 10890+niku@users.noreply.github.com
|
|
58
44
|
executables: []
|
|
59
45
|
extensions: []
|
|
60
46
|
extra_rdoc_files: []
|
|
61
47
|
files:
|
|
62
|
-
- ".devcontainer/Dockerfile"
|
|
63
|
-
- ".devcontainer/devcontainer.json"
|
|
64
|
-
- ".gem_rbs_collection/ast/2.4/.rbs_meta.yaml"
|
|
65
|
-
- ".gem_rbs_collection/ast/2.4/ast.rbs"
|
|
66
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml"
|
|
67
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/array.rbs"
|
|
68
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/atomic_reference.rbs"
|
|
69
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/executor.rbs"
|
|
70
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/hash.rbs"
|
|
71
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/map.rbs"
|
|
72
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/promises.rbs"
|
|
73
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/set.rbs"
|
|
74
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/timer_task.rbs"
|
|
75
|
-
- ".gem_rbs_collection/concurrent-ruby/1.1/utility/processor_counter.rbs"
|
|
76
|
-
- ".gem_rbs_collection/csv/3.3/.rbs_meta.yaml"
|
|
77
|
-
- ".gem_rbs_collection/csv/3.3/csv.rbs"
|
|
78
|
-
- ".gem_rbs_collection/csv/3.3/manifest.yaml"
|
|
79
|
-
- ".gem_rbs_collection/lint_roller/1.1/.rbs_meta.yaml"
|
|
80
|
-
- ".gem_rbs_collection/lint_roller/1.1/lint_roller.rbs"
|
|
81
|
-
- ".gem_rbs_collection/listen/3.9/.rbs_meta.yaml"
|
|
82
|
-
- ".gem_rbs_collection/listen/3.9/listen.rbs"
|
|
83
|
-
- ".gem_rbs_collection/listen/3.9/listener.rbs"
|
|
84
|
-
- ".gem_rbs_collection/logger/1.7/.rbs_meta.yaml"
|
|
85
|
-
- ".gem_rbs_collection/logger/1.7/formatter.rbs"
|
|
86
|
-
- ".gem_rbs_collection/logger/1.7/log_device.rbs"
|
|
87
|
-
- ".gem_rbs_collection/logger/1.7/logger.rbs"
|
|
88
|
-
- ".gem_rbs_collection/logger/1.7/manifest.yaml"
|
|
89
|
-
- ".gem_rbs_collection/logger/1.7/period.rbs"
|
|
90
|
-
- ".gem_rbs_collection/logger/1.7/severity.rbs"
|
|
91
|
-
- ".gem_rbs_collection/nokogiri/1.11/.rbs_meta.yaml"
|
|
92
|
-
- ".gem_rbs_collection/nokogiri/1.11/nokogiri.rbs"
|
|
93
|
-
- ".gem_rbs_collection/nokogiri/1.11/patch.rbs"
|
|
94
|
-
- ".gem_rbs_collection/parallel/1.20/.rbs_meta.yaml"
|
|
95
|
-
- ".gem_rbs_collection/parallel/1.20/parallel.rbs"
|
|
96
|
-
- ".gem_rbs_collection/parser/3.2/.rbs_meta.yaml"
|
|
97
|
-
- ".gem_rbs_collection/parser/3.2/manifest.yaml"
|
|
98
|
-
- ".gem_rbs_collection/parser/3.2/parser.rbs"
|
|
99
|
-
- ".gem_rbs_collection/parser/3.2/polyfill.rbs"
|
|
100
|
-
- ".gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml"
|
|
101
|
-
- ".gem_rbs_collection/rainbow/3.0/global.rbs"
|
|
102
|
-
- ".gem_rbs_collection/rainbow/3.0/presenter.rbs"
|
|
103
|
-
- ".gem_rbs_collection/rainbow/3.0/rainbow.rbs"
|
|
104
|
-
- ".gem_rbs_collection/rake/13.0/.rbs_meta.yaml"
|
|
105
|
-
- ".gem_rbs_collection/rake/13.0/manifest.yaml"
|
|
106
|
-
- ".gem_rbs_collection/rake/13.0/rake.rbs"
|
|
107
|
-
- ".gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml"
|
|
108
|
-
- ".gem_rbs_collection/regexp_parser/2.8/regexp_parser.rbs"
|
|
109
|
-
- ".gem_rbs_collection/rubocop-ast/1.46/.rbs_meta.yaml"
|
|
110
|
-
- ".gem_rbs_collection/rubocop-ast/1.46/rubocop-ast.rbs"
|
|
111
|
-
- ".gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml"
|
|
112
|
-
- ".gem_rbs_collection/rubocop/1.57/rubocop.rbs"
|
|
113
|
-
- ".gem_rbs_collection/rubyzip/3.2/.rbs_meta.yaml"
|
|
114
|
-
- ".gem_rbs_collection/rubyzip/3.2/manifest.yaml"
|
|
115
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip.rbs"
|
|
116
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/central_directory.rbs"
|
|
117
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/compressor.rbs"
|
|
118
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/constants.rbs"
|
|
119
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/crypto/aes_encryption.rbs"
|
|
120
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/crypto/decrypted_io.rbs"
|
|
121
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/crypto/encryption.rbs"
|
|
122
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/crypto/null_encryption.rbs"
|
|
123
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/crypto/traditional_encryption.rbs"
|
|
124
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/decompressor.rbs"
|
|
125
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/deflater.rbs"
|
|
126
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/dirtyable.rbs"
|
|
127
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/dos_time.rbs"
|
|
128
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/entry.rbs"
|
|
129
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/entry_set.rbs"
|
|
130
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/errors.rbs"
|
|
131
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field.rbs"
|
|
132
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/aes.rbs"
|
|
133
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/generic.rbs"
|
|
134
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/ntfs.rbs"
|
|
135
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/old_unix.rbs"
|
|
136
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/universal_time.rbs"
|
|
137
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/unix.rbs"
|
|
138
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/unknown.rbs"
|
|
139
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/extra_field/zip64.rbs"
|
|
140
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/file.rbs"
|
|
141
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/file_split.rbs"
|
|
142
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem.rbs"
|
|
143
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem/dir.rbs"
|
|
144
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem/directory_iterator.rbs"
|
|
145
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem/file.rbs"
|
|
146
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem/file_stat.rbs"
|
|
147
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/filesystem/zip_file_name_mapper.rbs"
|
|
148
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/inflater.rbs"
|
|
149
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/input_stream.rbs"
|
|
150
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/ioextras.rbs"
|
|
151
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_input_stream.rbs"
|
|
152
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_output_stream.rbs"
|
|
153
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/null_compressor.rbs"
|
|
154
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/null_decompressor.rbs"
|
|
155
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/null_input_stream.rbs"
|
|
156
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/output_stream.rbs"
|
|
157
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/pass_thru_compressor.rbs"
|
|
158
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/pass_thru_decompressor.rbs"
|
|
159
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/streamable_directory.rbs"
|
|
160
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/streamable_stream.rbs"
|
|
161
|
-
- ".gem_rbs_collection/rubyzip/3.2/zip/version.rbs"
|
|
162
48
|
- CHANGELOG.md
|
|
163
49
|
- CODE_OF_CONDUCT.md
|
|
164
50
|
- LICENSE.txt
|
|
165
51
|
- README.md
|
|
166
|
-
- Rakefile
|
|
167
|
-
- Steepfile
|
|
168
|
-
- benchmark.rb
|
|
169
|
-
- docs/ARCHITECTURE.md
|
|
170
|
-
- docs/DEVELOPMENT.md
|
|
171
|
-
- docs/PEER_LIBRARIES.md
|
|
172
|
-
- docs/QUALITY_ASSURANCE.md
|
|
173
|
-
- docs/SPEC_SOURCES.md
|
|
174
|
-
- docs/assets/benchmark_results.svg
|
|
175
|
-
- docs/assets/lsp_autocompletion.png
|
|
176
|
-
- docs/assets/playground_preview.png
|
|
177
|
-
- docs/coi-serviceworker.js
|
|
178
|
-
- docs/office_thread.js
|
|
179
|
-
- docs/preview.html
|
|
180
|
-
- docs/visual/VisualGallery.md
|
|
181
|
-
- docs/wasm/ruby.wasm
|
|
182
|
-
- docs/wasm/wasm_doc_helper.css
|
|
183
|
-
- docs/wasm/wasm_doc_helper.js
|
|
184
|
-
- docs/zeta.js
|
|
185
52
|
- lib/ruby_lsp/xlsxrb/addon.rb
|
|
186
53
|
- lib/ruby_lsp/xlsxrb/completion_listener.rb
|
|
187
54
|
- lib/xlsxrb.rb
|
|
188
55
|
- lib/xlsxrb/chart_builder.rb
|
|
56
|
+
- lib/xlsxrb/dsl_helpers.rb
|
|
189
57
|
- lib/xlsxrb/elements.rb
|
|
190
58
|
- lib/xlsxrb/elements/cell.rb
|
|
191
59
|
- lib/xlsxrb/elements/column.rb
|
|
@@ -201,6 +69,10 @@ files:
|
|
|
201
69
|
- lib/xlsxrb/ooxml/crypto/standard.rb
|
|
202
70
|
- lib/xlsxrb/ooxml/reader.rb
|
|
203
71
|
- lib/xlsxrb/ooxml/reader/listeners.rb
|
|
72
|
+
- lib/xlsxrb/ooxml/reader/listeners/core_listeners.rb
|
|
73
|
+
- lib/xlsxrb/ooxml/reader/listeners/drawing_listeners.rb
|
|
74
|
+
- lib/xlsxrb/ooxml/reader/listeners/feature_listeners.rb
|
|
75
|
+
- lib/xlsxrb/ooxml/reader/listeners/style_listeners.rb
|
|
204
76
|
- lib/xlsxrb/ooxml/shared_strings_parser.rb
|
|
205
77
|
- lib/xlsxrb/ooxml/styles_parser.rb
|
|
206
78
|
- lib/xlsxrb/ooxml/utils.rb
|
|
@@ -209,6 +81,9 @@ files:
|
|
|
209
81
|
- lib/xlsxrb/ooxml/worksheet_parser.rb
|
|
210
82
|
- lib/xlsxrb/ooxml/worksheet_writer.rb
|
|
211
83
|
- lib/xlsxrb/ooxml/writer.rb
|
|
84
|
+
- lib/xlsxrb/ooxml/writer/drawing_xml.rb
|
|
85
|
+
- lib/xlsxrb/ooxml/writer/features_xml.rb
|
|
86
|
+
- lib/xlsxrb/ooxml/writer/styles_xml.rb
|
|
212
87
|
- lib/xlsxrb/ooxml/xml_builder.rb
|
|
213
88
|
- lib/xlsxrb/ooxml/xml_parser.rb
|
|
214
89
|
- lib/xlsxrb/ooxml/zip_generator.rb
|
|
@@ -221,10 +96,9 @@ files:
|
|
|
221
96
|
- lib/xlsxrb/version.rb
|
|
222
97
|
- lib/xlsxrb/workbook_builder.rb
|
|
223
98
|
- lib/xlsxrb/worksheet_builder.rb
|
|
224
|
-
- rbs_collection.lock.yaml
|
|
225
|
-
- rbs_collection.yaml
|
|
226
99
|
- sig/generated/xlsxrb.rbs
|
|
227
100
|
- sig/generated/xlsxrb/chart_builder.rbs
|
|
101
|
+
- sig/generated/xlsxrb/dsl_helpers.rbs
|
|
228
102
|
- sig/generated/xlsxrb/elements.rbs
|
|
229
103
|
- sig/generated/xlsxrb/elements/cell.rbs
|
|
230
104
|
- sig/generated/xlsxrb/elements/column.rbs
|
|
@@ -240,6 +114,10 @@ files:
|
|
|
240
114
|
- sig/generated/xlsxrb/ooxml/crypto/standard.rbs
|
|
241
115
|
- sig/generated/xlsxrb/ooxml/reader.rbs
|
|
242
116
|
- sig/generated/xlsxrb/ooxml/reader/listeners.rbs
|
|
117
|
+
- sig/generated/xlsxrb/ooxml/reader/listeners/core_listeners.rbs
|
|
118
|
+
- sig/generated/xlsxrb/ooxml/reader/listeners/drawing_listeners.rbs
|
|
119
|
+
- sig/generated/xlsxrb/ooxml/reader/listeners/feature_listeners.rbs
|
|
120
|
+
- sig/generated/xlsxrb/ooxml/reader/listeners/style_listeners.rbs
|
|
243
121
|
- sig/generated/xlsxrb/ooxml/shared_strings_parser.rbs
|
|
244
122
|
- sig/generated/xlsxrb/ooxml/styles_parser.rbs
|
|
245
123
|
- sig/generated/xlsxrb/ooxml/utils.rbs
|
|
@@ -248,6 +126,9 @@ files:
|
|
|
248
126
|
- sig/generated/xlsxrb/ooxml/worksheet_parser.rbs
|
|
249
127
|
- sig/generated/xlsxrb/ooxml/worksheet_writer.rbs
|
|
250
128
|
- sig/generated/xlsxrb/ooxml/writer.rbs
|
|
129
|
+
- sig/generated/xlsxrb/ooxml/writer/drawing_xml.rbs
|
|
130
|
+
- sig/generated/xlsxrb/ooxml/writer/features_xml.rbs
|
|
131
|
+
- sig/generated/xlsxrb/ooxml/writer/styles_xml.rbs
|
|
251
132
|
- sig/generated/xlsxrb/ooxml/xml_builder.rbs
|
|
252
133
|
- sig/generated/xlsxrb/ooxml/xml_parser.rbs
|
|
253
134
|
- sig/generated/xlsxrb/ooxml/zip_generator.rbs
|
|
@@ -261,14 +142,11 @@ files:
|
|
|
261
142
|
- sig/generated/xlsxrb/workbook_builder.rbs
|
|
262
143
|
- sig/generated/xlsxrb/worksheet_builder.rbs
|
|
263
144
|
- sig/rexml.rbs
|
|
264
|
-
- vendor/sdk_runner/Program.cs
|
|
265
|
-
- vendor/sdk_runner/sdk_runner.csproj
|
|
266
145
|
homepage: https://github.com/niku/xlsxrb
|
|
267
146
|
licenses:
|
|
268
147
|
- MIT
|
|
269
148
|
metadata:
|
|
270
149
|
allowed_push_host: https://rubygems.org
|
|
271
|
-
homepage_uri: https://github.com/niku/xlsxrb
|
|
272
150
|
source_code_uri: https://github.com/niku/xlsxrb
|
|
273
151
|
changelog_uri: https://github.com/niku/xlsxrb/blob/main/CHANGELOG.md
|
|
274
152
|
documentation_uri: https://niku.github.io/xlsxrb/
|
data/.devcontainer/Dockerfile
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
FROM ruby:4.0.5
|
|
2
|
-
|
|
3
|
-
ARG USERNAME=vscode
|
|
4
|
-
ARG USER_UID=1000
|
|
5
|
-
ARG USER_GID=$USER_UID
|
|
6
|
-
|
|
7
|
-
# Create a non-root user (vscode) with passwordless sudo privileges
|
|
8
|
-
# following Microsoft's Dev Container guidelines to prevent file permission conflicts.
|
|
9
|
-
RUN apt-get update && apt-get install -y sudo ca-certificates \
|
|
10
|
-
# Check if GID already exists, otherwise create it
|
|
11
|
-
&& if [ "$(getent group ${USER_GID})" ]; then \
|
|
12
|
-
echo "GID ${USER_GID} already exists."; \
|
|
13
|
-
else \
|
|
14
|
-
groupadd --gid ${USER_GID} ${USERNAME}; \
|
|
15
|
-
fi \
|
|
16
|
-
# Check if UID already exists, otherwise create user
|
|
17
|
-
&& if [ "$(getent passwd ${USER_UID})" ]; then \
|
|
18
|
-
echo "UID ${USER_UID} already exists."; \
|
|
19
|
-
else \
|
|
20
|
-
useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} -s /bin/bash; \
|
|
21
|
-
fi \
|
|
22
|
-
# Grant passwordless sudo permissions
|
|
23
|
-
&& echo "${USERNAME} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME} \
|
|
24
|
-
&& chmod 0440 /etc/sudoers.d/${USERNAME} \
|
|
25
|
-
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
26
|
-
|
|
27
|
-
# Install .NET SDK for E2E testing with Open-XML-SDK.
|
|
28
|
-
# Use dotnet-install so the container works on both arm64 and amd64 hosts.
|
|
29
|
-
RUN apt-get update && apt-get install -y curl ca-certificates && \
|
|
30
|
-
curl -sSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh && \
|
|
31
|
-
bash /tmp/dotnet-install.sh --channel 8.0 --quality ga --install-dir /usr/share/dotnet && \
|
|
32
|
-
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet && \
|
|
33
|
-
rm -f /tmp/dotnet-install.sh && \
|
|
34
|
-
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
35
|
-
|
|
36
|
-
# Install LibreOffice, poppler-utils, ImageMagick, and fonts for Visual Examples/VRT
|
|
37
|
-
RUN apt-get update && apt-get install -y \
|
|
38
|
-
libreoffice-calc \
|
|
39
|
-
poppler-utils \
|
|
40
|
-
imagemagick \
|
|
41
|
-
fonts-liberation \
|
|
42
|
-
fonts-noto-cjk \
|
|
43
|
-
brotli \
|
|
44
|
-
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
45
|
-
|
|
46
|
-
# Pre-create the workspace folder and assign ownership to the vscode user
|
|
47
|
-
RUN mkdir -p /workspaces/xlsxrb && chown -R ${USERNAME}:${USERNAME} /workspaces
|
|
48
|
-
|
|
49
|
-
# Set up the workspace
|
|
50
|
-
USER ${USERNAME}
|
|
51
|
-
WORKDIR /workspaces/xlsxrb
|
|
52
|
-
|
|
53
|
-
# Pre-download DocumentFormat.OpenXml package to the NuGet cache
|
|
54
|
-
RUN mkdir /tmp/nuget_warmup && cd /tmp/nuget_warmup && \
|
|
55
|
-
dotnet new console && \
|
|
56
|
-
dotnet add package DocumentFormat.OpenXml --version 3.5.1 && \
|
|
57
|
-
cd / && rm -rf /tmp/nuget_warmup
|
|
58
|
-
|
|
59
|
-
# Install gems (Respect Gemfile.lock, maintain correct user ownership)
|
|
60
|
-
COPY --chown=vscode:vscode Gemfile xlsxrb.gemspec ./
|
|
61
|
-
COPY --chown=vscode:vscode lib/xlsxrb/version.rb ./lib/xlsxrb/
|
|
62
|
-
RUN bundle install
|
|
63
|
-
|
|
64
|
-
# Copy the remaining project application files
|
|
65
|
-
COPY --chown=vscode:vscode . .
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "xlsxrb Development",
|
|
3
|
-
"build": {
|
|
4
|
-
"dockerfile": "Dockerfile",
|
|
5
|
-
"context": ".."
|
|
6
|
-
},
|
|
7
|
-
"workspaceFolder": "/workspaces/xlsxrb",
|
|
8
|
-
"customizations": {
|
|
9
|
-
"vscode": {
|
|
10
|
-
"extensions": [
|
|
11
|
-
"Shopify.ruby-lsp",
|
|
12
|
-
]
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"remoteUser": "vscode",
|
|
16
|
-
"postCreateCommand": "bundle install && bin/setup"
|
|
17
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
module AST
|
|
2
|
-
interface _ToAst
|
|
3
|
-
def to_ast: () -> Node
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
interface _ToSym
|
|
7
|
-
def to_sym: () -> Symbol
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Node
|
|
11
|
-
public
|
|
12
|
-
|
|
13
|
-
attr_reader children: Array[untyped]
|
|
14
|
-
attr_reader hash: String
|
|
15
|
-
attr_reader type: Symbol
|
|
16
|
-
|
|
17
|
-
alias + concat
|
|
18
|
-
|
|
19
|
-
alias << append
|
|
20
|
-
|
|
21
|
-
def ==: (untyped other) -> bool
|
|
22
|
-
|
|
23
|
-
def append: (untyped element) -> self
|
|
24
|
-
|
|
25
|
-
alias clone dup
|
|
26
|
-
|
|
27
|
-
def concat: (_ToA[untyped] array) -> self
|
|
28
|
-
|
|
29
|
-
def dup: () -> self
|
|
30
|
-
|
|
31
|
-
def eql?: (untyped other) -> bool
|
|
32
|
-
|
|
33
|
-
def inspect: (?Integer indent) -> String
|
|
34
|
-
|
|
35
|
-
alias to_a children
|
|
36
|
-
|
|
37
|
-
def to_ast: () -> self
|
|
38
|
-
|
|
39
|
-
alias to_s to_sexp
|
|
40
|
-
|
|
41
|
-
def to_sexp: (?Integer indent) -> String
|
|
42
|
-
|
|
43
|
-
def to_sexp_array: () -> Array[untyped]
|
|
44
|
-
|
|
45
|
-
def updated: (?_ToSym? `type`, ?_ToA[untyped]? children, ?Hash[Symbol, untyped]? properties) -> self
|
|
46
|
-
|
|
47
|
-
private
|
|
48
|
-
|
|
49
|
-
def initialize: (_ToSym `type`, ?_ToA[untyped]? children, ?Hash[Symbol, untyped] properties) -> void
|
|
50
|
-
|
|
51
|
-
alias original_dup dup
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
class Processor
|
|
55
|
-
include Mixin
|
|
56
|
-
|
|
57
|
-
module Mixin
|
|
58
|
-
public
|
|
59
|
-
|
|
60
|
-
def handler_missing: (Node node) -> Node?
|
|
61
|
-
|
|
62
|
-
def process: (_ToAst? node) -> Node?
|
|
63
|
-
|
|
64
|
-
def process_all: (Array[_ToAst] nodes) -> Array[Node]
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
module Sexp
|
|
69
|
-
public
|
|
70
|
-
|
|
71
|
-
def s: (_ToSym `type`, *untyped children) -> Node
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Concurrent
|
|
2
|
-
class AtomicReference[T]
|
|
3
|
-
def initialize: (?T value) -> void
|
|
4
|
-
def get: -> T
|
|
5
|
-
def value: -> T
|
|
6
|
-
def set: (T new_value) -> T
|
|
7
|
-
def value=: (T new_value) -> T
|
|
8
|
-
def get_and_set: (T new_value) -> T
|
|
9
|
-
def swap: (T new_value) -> T
|
|
10
|
-
def compare_and_set: (T old_value, T new_value) -> bool
|
|
11
|
-
def compare_and_swap: (T old_value, T new_value) -> bool
|
|
12
|
-
def update: () { (T) -> T } -> T
|
|
13
|
-
def try_update: () { (T) -> T } -> T?
|
|
14
|
-
def try_update!: () { (T) -> T } -> T
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
module Concurrent
|
|
2
|
-
module ExecutorService
|
|
3
|
-
interface _Task
|
|
4
|
-
def call: () -> void
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def post: [A] (*A args) { (*A args) -> void } -> bool
|
|
8
|
-
|
|
9
|
-
def <<: (_Task task) -> bool
|
|
10
|
-
|
|
11
|
-
def can_overflow?: () -> bool
|
|
12
|
-
|
|
13
|
-
def serialized?: () -> bool
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
type executor = ExecutorService | :io | :fast | :immediate
|
|
17
|
-
|
|
18
|
-
def self.executor: (executor executor_identifier) -> ExecutorService
|
|
19
|
-
|
|
20
|
-
def self.global_io_executor: () -> ExecutorService
|
|
21
|
-
def self.global_fast_executor: () -> ExecutorService
|
|
22
|
-
def self.global_immediate_executor: () -> ExecutorService
|
|
23
|
-
|
|
24
|
-
def self.new_io_executor: (?::Hash[Symbol, untyped] opts) -> ExecutorService
|
|
25
|
-
def self.new_fast_executor: (?::Hash[Symbol, untyped] opts) -> ExecutorService
|
|
26
|
-
|
|
27
|
-
# A thread pool that reuses a fixed number of threads operating off an unbounded queue.
|
|
28
|
-
class FixedThreadPool
|
|
29
|
-
include ExecutorService
|
|
30
|
-
|
|
31
|
-
attr_reader fallback_policy: Symbol
|
|
32
|
-
|
|
33
|
-
attr_reader name: String?
|
|
34
|
-
|
|
35
|
-
attr_reader max_length: Integer
|
|
36
|
-
|
|
37
|
-
attr_reader min_length: Integer
|
|
38
|
-
|
|
39
|
-
attr_reader idletime: Integer
|
|
40
|
-
|
|
41
|
-
attr_reader max_queue: Integer
|
|
42
|
-
|
|
43
|
-
attr_reader synchronous: bool
|
|
44
|
-
|
|
45
|
-
def initialize: (Integer num_threads, ?::Hash[Symbol, untyped] opts) -> void
|
|
46
|
-
|
|
47
|
-
def largest_length: () -> Integer
|
|
48
|
-
|
|
49
|
-
def scheduled_task_count: () -> Integer
|
|
50
|
-
|
|
51
|
-
def completed_task_count: () -> Integer
|
|
52
|
-
|
|
53
|
-
def length: () -> Integer
|
|
54
|
-
|
|
55
|
-
def queue_length: () -> Integer
|
|
56
|
-
|
|
57
|
-
def remaining_capacity: () -> Integer
|
|
58
|
-
|
|
59
|
-
def prune_pool: () -> void
|
|
60
|
-
|
|
61
|
-
def running?: () -> bool
|
|
62
|
-
|
|
63
|
-
def shuttingdown?: () -> bool
|
|
64
|
-
|
|
65
|
-
def shutdown?: () -> bool
|
|
66
|
-
|
|
67
|
-
def shutdown: () -> bool
|
|
68
|
-
|
|
69
|
-
def kill: () -> bool
|
|
70
|
-
|
|
71
|
-
def wait_for_termination: (?Numeric? timeout) -> bool
|
|
72
|
-
|
|
73
|
-
def auto_terminate?: () -> bool
|
|
74
|
-
|
|
75
|
-
def to_s: () -> String
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# An executor service which runs all operations on the current thread, blocking as necessary.
|
|
79
|
-
class ImmediateExecutor
|
|
80
|
-
include ExecutorService
|
|
81
|
-
|
|
82
|
-
def initialize: () -> void
|
|
83
|
-
|
|
84
|
-
def running?: () -> bool
|
|
85
|
-
|
|
86
|
-
def shuttingdown?: () -> bool
|
|
87
|
-
|
|
88
|
-
def shutdown?: () -> bool
|
|
89
|
-
|
|
90
|
-
def shutdown: () -> bool
|
|
91
|
-
|
|
92
|
-
def kill: () -> bool
|
|
93
|
-
|
|
94
|
-
def wait_for_termination: (?Numeric? timeout) -> bool
|
|
95
|
-
end
|
|
96
|
-
end
|