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.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -34
  3. data/README.md +26 -21
  4. data/lib/xlsxrb/chart_builder.rb +18 -18
  5. data/lib/xlsxrb/dsl_helpers.rb +175 -0
  6. data/lib/xlsxrb/elements/cell.rb +56 -22
  7. data/lib/xlsxrb/elements/column.rb +27 -3
  8. data/lib/xlsxrb/elements/row.rb +27 -8
  9. data/lib/xlsxrb/elements/workbook.rb +27 -14
  10. data/lib/xlsxrb/elements/worksheet.rb +17 -1
  11. data/lib/xlsxrb/ooxml/cfb.rb +9 -6
  12. data/lib/xlsxrb/ooxml/crypto/agile.rb +5 -5
  13. data/lib/xlsxrb/ooxml/reader/listeners/core_listeners.rb +784 -0
  14. data/lib/xlsxrb/ooxml/reader/listeners/drawing_listeners.rb +3478 -0
  15. data/lib/xlsxrb/ooxml/reader/listeners/feature_listeners.rb +1796 -0
  16. data/lib/xlsxrb/ooxml/reader/listeners/style_listeners.rb +428 -0
  17. data/lib/xlsxrb/ooxml/reader/listeners.rb +4 -6446
  18. data/lib/xlsxrb/ooxml/shared_strings_parser.rb +3 -5
  19. data/lib/xlsxrb/ooxml/utils.rb +5 -6
  20. data/lib/xlsxrb/ooxml/workbook_writer.rb +5 -7
  21. data/lib/xlsxrb/ooxml/worksheet_parser.rb +172 -9
  22. data/lib/xlsxrb/ooxml/writer/drawing_xml.rb +1602 -0
  23. data/lib/xlsxrb/ooxml/writer/features_xml.rb +731 -0
  24. data/lib/xlsxrb/ooxml/writer/styles_xml.rb +348 -0
  25. data/lib/xlsxrb/ooxml/writer.rb +9 -2646
  26. data/lib/xlsxrb/ooxml/xml_builder.rb +31 -2
  27. data/lib/xlsxrb/ooxml/zip_generator.rb +26 -5
  28. data/lib/xlsxrb/ooxml/zip_reader.rb +364 -78
  29. data/lib/xlsxrb/ooxml/zip_writer.rb +32 -5
  30. data/lib/xlsxrb/stream_sheet.rb +94 -6
  31. data/lib/xlsxrb/stream_writer.rb +48 -115
  32. data/lib/xlsxrb/style_builder.rb +10 -1
  33. data/lib/xlsxrb/version.rb +1 -1
  34. data/lib/xlsxrb/workbook_builder.rb +1 -1
  35. data/lib/xlsxrb/worksheet_builder.rb +19 -81
  36. data/lib/xlsxrb.rb +449 -171
  37. data/sig/generated/xlsxrb/chart_builder.rbs +36 -36
  38. data/sig/generated/xlsxrb/dsl_helpers.rbs +92 -0
  39. data/sig/generated/xlsxrb/elements/cell.rbs +29 -0
  40. data/sig/generated/xlsxrb/elements/column.rbs +32 -21
  41. data/sig/generated/xlsxrb/elements/row.rbs +94 -14
  42. data/sig/generated/xlsxrb/elements/workbook.rbs +102 -10
  43. data/sig/generated/xlsxrb/elements/worksheet.rbs +9 -0
  44. data/sig/generated/xlsxrb/ooxml/reader/listeners/core_listeners.rbs +173 -0
  45. data/sig/generated/xlsxrb/ooxml/reader/listeners/drawing_listeners.rbs +400 -0
  46. data/sig/generated/xlsxrb/ooxml/reader/listeners/feature_listeners.rbs +442 -0
  47. data/sig/generated/xlsxrb/ooxml/reader/listeners/style_listeners.rbs +80 -0
  48. data/sig/generated/xlsxrb/ooxml/reader/listeners.rbs +0 -1072
  49. data/sig/generated/xlsxrb/ooxml/shared_strings_parser.rbs +0 -2
  50. data/sig/generated/xlsxrb/ooxml/utils.rbs +2 -0
  51. data/sig/generated/xlsxrb/ooxml/worksheet_parser.rbs +5 -4
  52. data/sig/generated/xlsxrb/ooxml/writer/drawing_xml.rbs +79 -0
  53. data/sig/generated/xlsxrb/ooxml/writer/features_xml.rbs +83 -0
  54. data/sig/generated/xlsxrb/ooxml/writer/styles_xml.rbs +53 -0
  55. data/sig/generated/xlsxrb/ooxml/writer.rbs +6 -185
  56. data/sig/generated/xlsxrb/ooxml/xml_builder.rbs +18 -0
  57. data/sig/generated/xlsxrb/ooxml/zip_generator.rbs +15 -0
  58. data/sig/generated/xlsxrb/ooxml/zip_reader.rbs +96 -8
  59. data/sig/generated/xlsxrb/ooxml/zip_writer.rbs +5 -1
  60. data/sig/generated/xlsxrb/stream_sheet.rbs +43 -3
  61. data/sig/generated/xlsxrb/style_builder.rbs +7 -0
  62. data/sig/generated/xlsxrb.rbs +18 -11
  63. metadata +22 -144
  64. data/.devcontainer/Dockerfile +0 -65
  65. data/.devcontainer/devcontainer.json +0 -17
  66. data/.gem_rbs_collection/ast/2.4/.rbs_meta.yaml +0 -9
  67. data/.gem_rbs_collection/ast/2.4/ast.rbs +0 -73
  68. data/.gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml +0 -9
  69. data/.gem_rbs_collection/concurrent-ruby/1.1/array.rbs +0 -4
  70. data/.gem_rbs_collection/concurrent-ruby/1.1/atomic_reference.rbs +0 -16
  71. data/.gem_rbs_collection/concurrent-ruby/1.1/executor.rbs +0 -96
  72. data/.gem_rbs_collection/concurrent-ruby/1.1/hash.rbs +0 -4
  73. data/.gem_rbs_collection/concurrent-ruby/1.1/map.rbs +0 -68
  74. data/.gem_rbs_collection/concurrent-ruby/1.1/promises.rbs +0 -249
  75. data/.gem_rbs_collection/concurrent-ruby/1.1/set.rbs +0 -4
  76. data/.gem_rbs_collection/concurrent-ruby/1.1/timer_task.rbs +0 -47
  77. data/.gem_rbs_collection/concurrent-ruby/1.1/utility/processor_counter.rbs +0 -5
  78. data/.gem_rbs_collection/csv/3.3/.rbs_meta.yaml +0 -9
  79. data/.gem_rbs_collection/csv/3.3/csv.rbs +0 -3871
  80. data/.gem_rbs_collection/csv/3.3/manifest.yaml +0 -3
  81. data/.gem_rbs_collection/lint_roller/1.1/.rbs_meta.yaml +0 -9
  82. data/.gem_rbs_collection/lint_roller/1.1/lint_roller.rbs +0 -48
  83. data/.gem_rbs_collection/listen/3.9/.rbs_meta.yaml +0 -9
  84. data/.gem_rbs_collection/listen/3.9/listen.rbs +0 -25
  85. data/.gem_rbs_collection/listen/3.9/listener.rbs +0 -24
  86. data/.gem_rbs_collection/logger/1.7/.rbs_meta.yaml +0 -9
  87. data/.gem_rbs_collection/logger/1.7/formatter.rbs +0 -45
  88. data/.gem_rbs_collection/logger/1.7/log_device.rbs +0 -100
  89. data/.gem_rbs_collection/logger/1.7/logger.rbs +0 -796
  90. data/.gem_rbs_collection/logger/1.7/manifest.yaml +0 -2
  91. data/.gem_rbs_collection/logger/1.7/period.rbs +0 -17
  92. data/.gem_rbs_collection/logger/1.7/severity.rbs +0 -34
  93. data/.gem_rbs_collection/nokogiri/1.11/.rbs_meta.yaml +0 -9
  94. data/.gem_rbs_collection/nokogiri/1.11/nokogiri.rbs +0 -2332
  95. data/.gem_rbs_collection/nokogiri/1.11/patch.rbs +0 -4
  96. data/.gem_rbs_collection/parallel/1.20/.rbs_meta.yaml +0 -9
  97. data/.gem_rbs_collection/parallel/1.20/parallel.rbs +0 -86
  98. data/.gem_rbs_collection/parser/3.2/.rbs_meta.yaml +0 -9
  99. data/.gem_rbs_collection/parser/3.2/manifest.yaml +0 -7
  100. data/.gem_rbs_collection/parser/3.2/parser.rbs +0 -194
  101. data/.gem_rbs_collection/parser/3.2/polyfill.rbs +0 -4
  102. data/.gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml +0 -9
  103. data/.gem_rbs_collection/rainbow/3.0/global.rbs +0 -7
  104. data/.gem_rbs_collection/rainbow/3.0/presenter.rbs +0 -209
  105. data/.gem_rbs_collection/rainbow/3.0/rainbow.rbs +0 -5
  106. data/.gem_rbs_collection/rake/13.0/.rbs_meta.yaml +0 -9
  107. data/.gem_rbs_collection/rake/13.0/manifest.yaml +0 -2
  108. data/.gem_rbs_collection/rake/13.0/rake.rbs +0 -39
  109. data/.gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml +0 -9
  110. data/.gem_rbs_collection/regexp_parser/2.8/regexp_parser.rbs +0 -17
  111. data/.gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml +0 -9
  112. data/.gem_rbs_collection/rubocop/1.57/rubocop.rbs +0 -208
  113. data/.gem_rbs_collection/rubocop-ast/1.46/.rbs_meta.yaml +0 -9
  114. data/.gem_rbs_collection/rubocop-ast/1.46/rubocop-ast.rbs +0 -903
  115. data/.gem_rbs_collection/rubyzip/3.2/.rbs_meta.yaml +0 -9
  116. data/.gem_rbs_collection/rubyzip/3.2/manifest.yaml +0 -8
  117. data/.gem_rbs_collection/rubyzip/3.2/zip/central_directory.rbs +0 -42
  118. data/.gem_rbs_collection/rubyzip/3.2/zip/compressor.rbs +0 -5
  119. data/.gem_rbs_collection/rubyzip/3.2/zip/constants.rbs +0 -47
  120. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/aes_encryption.rbs +0 -30
  121. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/decrypted_io.rbs +0 -9
  122. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/encryption.rbs +0 -7
  123. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/null_encryption.rbs +0 -19
  124. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/traditional_encryption.rbs +0 -31
  125. data/.gem_rbs_collection/rubyzip/3.2/zip/decompressor.rbs +0 -18
  126. data/.gem_rbs_collection/rubyzip/3.2/zip/deflater.rbs +0 -12
  127. data/.gem_rbs_collection/rubyzip/3.2/zip/dirtyable.rbs +0 -11
  128. data/.gem_rbs_collection/rubyzip/3.2/zip/dos_time.rbs +0 -13
  129. data/.gem_rbs_collection/rubyzip/3.2/zip/entry.rbs +0 -95
  130. data/.gem_rbs_collection/rubyzip/3.2/zip/entry_set.rbs +0 -31
  131. data/.gem_rbs_collection/rubyzip/3.2/zip/errors.rbs +0 -58
  132. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/aes.rbs +0 -24
  133. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/generic.rbs +0 -17
  134. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/ntfs.rbs +0 -23
  135. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/old_unix.rbs +0 -22
  136. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/universal_time.rbs +0 -30
  137. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unix.rbs +0 -20
  138. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unknown.rbs +0 -15
  139. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/zip64.rbs +0 -26
  140. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field.rbs +0 -21
  141. data/.gem_rbs_collection/rubyzip/3.2/zip/file.rbs +0 -131
  142. data/.gem_rbs_collection/rubyzip/3.2/zip/file_split.rbs +0 -14
  143. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/dir.rbs +0 -33
  144. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/directory_iterator.rbs +0 -21
  145. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file.rbs +0 -63
  146. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file_stat.rbs +0 -55
  147. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/zip_file_name_mapper.rbs +0 -35
  148. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem.rbs +0 -7
  149. data/.gem_rbs_collection/rubyzip/3.2/zip/inflater.rbs +0 -10
  150. data/.gem_rbs_collection/rubyzip/3.2/zip/input_stream.rbs +0 -22
  151. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_input_stream.rbs +0 -29
  152. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_output_stream.rbs +0 -17
  153. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras.rbs +0 -13
  154. data/.gem_rbs_collection/rubyzip/3.2/zip/null_compressor.rbs +0 -10
  155. data/.gem_rbs_collection/rubyzip/3.2/zip/null_decompressor.rbs +0 -8
  156. data/.gem_rbs_collection/rubyzip/3.2/zip/null_input_stream.rbs +0 -6
  157. data/.gem_rbs_collection/rubyzip/3.2/zip/output_stream.rbs +0 -30
  158. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_compressor.rbs +0 -10
  159. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_decompressor.rbs +0 -10
  160. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_directory.rbs +0 -5
  161. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_stream.rbs +0 -15
  162. data/.gem_rbs_collection/rubyzip/3.2/zip/version.rbs +0 -3
  163. data/.gem_rbs_collection/rubyzip/3.2/zip.rbs +0 -40
  164. data/Rakefile +0 -567
  165. data/Steepfile +0 -18
  166. data/benchmark.rb +0 -406
  167. data/docs/ARCHITECTURE.md +0 -514
  168. data/docs/DEVELOPMENT.md +0 -133
  169. data/docs/PEER_LIBRARIES.md +0 -121
  170. data/docs/QUALITY_ASSURANCE.md +0 -25
  171. data/docs/SPEC_SOURCES.md +0 -48
  172. data/docs/assets/benchmark_results.svg +0 -144
  173. data/docs/assets/lsp_autocompletion.png +0 -0
  174. data/docs/assets/playground_preview.png +0 -0
  175. data/docs/coi-serviceworker.js +0 -82
  176. data/docs/office_thread.js +0 -77
  177. data/docs/preview.html +0 -719
  178. data/docs/visual/VisualGallery.md +0 -4672
  179. data/docs/wasm/ruby.wasm +0 -0
  180. data/docs/wasm/wasm_doc_helper.css +0 -351
  181. data/docs/wasm/wasm_doc_helper.js +0 -439
  182. data/docs/zeta.js +0 -1107
  183. data/rbs_collection.lock.yaml +0 -252
  184. data/rbs_collection.yaml +0 -19
  185. data/vendor/sdk_runner/Program.cs +0 -93
  186. 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 sheet_xml [String] Raw XML content of the worksheet.
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
- # : (String name, String sheet_xml, Array[String] shared_strings, ?Hash[untyped, untyped]? styles) -> void
39
- def initialize: (String name, String sheet_xml, Array[String] shared_strings, ?Hash[untyped, untyped]? styles) -> void
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
@@ -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.11
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: opentelemetry-api
27
+ name: rexml
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '1.4'
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: '1.4'
40
- - !ruby/object:Gem::Dependency
41
- name: rexml
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/
@@ -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,9 +0,0 @@
1
- ---
2
- name: ast
3
- version: '2.4'
4
- source:
5
- type: git
6
- name: ruby/gem_rbs_collection
7
- revision: 82762423fc5694b82888ea89a972847cf19838c2
8
- remote: https://github.com/ruby/gem_rbs_collection.git
9
- repo_dir: gems
@@ -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,9 +0,0 @@
1
- ---
2
- name: concurrent-ruby
3
- version: '1.1'
4
- source:
5
- type: git
6
- name: ruby/gem_rbs_collection
7
- revision: 82762423fc5694b82888ea89a972847cf19838c2
8
- remote: https://github.com/ruby/gem_rbs_collection.git
9
- repo_dir: gems
@@ -1,4 +0,0 @@
1
- module Concurrent
2
- class Array[T] < ::Array[T]
3
- end
4
- 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
@@ -1,4 +0,0 @@
1
- module Concurrent
2
- class Hash[K, V] < ::Hash[K, V]
3
- end
4
- end