ironcalc 0.7.1.3 → 0.7.1.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.
- checksums.yaml +4 -4
- data/.yardopts +11 -0
- data/CHANGELOG.md +12 -0
- data/README.md +9 -15
- data/lib/ironcalc/native_methods.rb +9 -0
- data/lib/ironcalc/version.rb +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e511f58c879d0fdac27a5c4b2d06f424d836bb2c995f4a9562d61bef955f7ea4
|
|
4
|
+
data.tar.gz: 3761670586bb8ed3518e91d270391e51c1f3f9590a8e5aba5e100791de5446c0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6728ca159b613acd5dbcd604c286b674a9c2903040a78d2bfdbb51273d31be5e77f0942f8f20587299778586c06fc83cf2e7ae0c2f92f7d2e1b70e1ba5f2aeac
|
|
7
|
+
data.tar.gz: 4e7b42714f19977be65194cd1af3ffadbf1ac370fc2572613f166c84229f29710b95d95baf0b3688a4387a6e519611e81816f0dd29feda48030ba603f2d18944
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## 0.7.1.5
|
|
2
|
+
|
|
3
|
+
- link to changelog and documentation in gemspec
|
|
4
|
+
- update actions
|
|
5
|
+
- work-around for yard bug
|
|
6
|
+
|
|
7
|
+
## 0.7.1.4
|
|
8
|
+
|
|
9
|
+
- build for Ruby 4.0
|
|
10
|
+
- push with attestation
|
|
11
|
+
- include .yardopts
|
|
12
|
+
|
|
1
13
|
## 0.7.1.3
|
|
2
14
|
|
|
3
15
|
- fix build-provenance and setup github releases
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# IronCalc Ruby
|
|
1
|
+
# IronCalc for Ruby
|
|
2
2
|
|
|
3
3
|
Ruby bindings for [IronCalc](https://www.ironcalc.com/), a modern spreadsheet
|
|
4
4
|
engine written in Rust. Create, read and manipulate xlsx files — manage sheets,
|
|
@@ -16,7 +16,9 @@ Add this line to your application's Gemfile:
|
|
|
16
16
|
gem "ironcalc"
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
On common platforms (Linux, macOS, Windows) a precompiled gem is installed, so
|
|
20
|
+
no Rust toolchain is required. On other platforms the gem builds the IronCalc
|
|
21
|
+
engine from source, which requires a Rust toolchain.
|
|
20
22
|
|
|
21
23
|
## Usage
|
|
22
24
|
|
|
@@ -25,7 +27,7 @@ require "ironcalc"
|
|
|
25
27
|
|
|
26
28
|
# Raw API — call evaluate yourself.
|
|
27
29
|
model = IronCalc.create("model", "en", "UTC", "en")
|
|
28
|
-
model.set_user_input(0, 1, 1, "=
|
|
30
|
+
model.set_user_input(0, 1, 1, "=6*7")
|
|
29
31
|
model.evaluate
|
|
30
32
|
model.get_formatted_cell_value(0, 1, 1) # => "42"
|
|
31
33
|
model.save_to_xlsx("out.xlsx")
|
|
@@ -67,7 +69,7 @@ via **pyo3**, Ruby via **magnus** / **rb-sys**) exposing a module named
|
|
|
67
69
|
`create_user_model_from_bytes`.
|
|
68
70
|
- **Method names and signatures** on `Model` / `UserModel` — `set_user_input`,
|
|
69
71
|
`get_formatted_cell_value`, `evaluate`, `insert_rows`, `set_column_width`,
|
|
70
|
-
`
|
|
72
|
+
`new_sheet`, `save_to_xlsx`, `to_bytes`, … (Python's `snake_case` is also
|
|
71
73
|
Ruby's convention, so they match exactly).
|
|
72
74
|
- **Coordinates**: `sheet` is a 0-based index; `row` and `column` are 1-based.
|
|
73
75
|
- **Semantics**: the same engine, so the same inputs produce the same results.
|
|
@@ -76,7 +78,7 @@ via **pyo3**, Ruby via **magnus** / **rb-sys**) exposing a module named
|
|
|
76
78
|
# Python
|
|
77
79
|
import ironcalc as ic
|
|
78
80
|
model = ic.create("model", "en", "UTC", "en")
|
|
79
|
-
model.set_user_input(0, 1, 1, "=
|
|
81
|
+
model.set_user_input(0, 1, 1, "=6*7")
|
|
80
82
|
model.evaluate()
|
|
81
83
|
model.get_formatted_cell_value(0, 1, 1) # "42"
|
|
82
84
|
```
|
|
@@ -85,7 +87,7 @@ model.get_formatted_cell_value(0, 1, 1) # "42"
|
|
|
85
87
|
# Ruby
|
|
86
88
|
require "ironcalc"
|
|
87
89
|
model = IronCalc.create("model", "en", "UTC", "en")
|
|
88
|
-
model.set_user_input(0, 1, 1, "=
|
|
90
|
+
model.set_user_input(0, 1, 1, "=6*7")
|
|
89
91
|
model.evaluate
|
|
90
92
|
model.get_formatted_cell_value(0, 1, 1) # "42"
|
|
91
93
|
```
|
|
@@ -103,21 +105,13 @@ ports:
|
|
|
103
105
|
| Cell type | `CellType` enum | `Symbol` (`:number`, `:text`, …) |
|
|
104
106
|
| Worksheet properties | list of `SheetProperty` objects | array of `Hash`es (`:name`, `:state`, `:sheet_id`, `:color`) |
|
|
105
107
|
| Sheet dimensions | tuple `(min_row, max_row, min_col, max_col)` | 4-element `Array` |
|
|
106
|
-
| Binary
|
|
108
|
+
| Binary data | `bytes` | binary `String` |
|
|
107
109
|
| Version | `ironcalc.__version__` | `IronCalc::VERSION` |
|
|
108
110
|
|
|
109
111
|
Rather than reconstruct Python's per-field style classes, Ruby exchanges styles
|
|
110
112
|
as plain hashes (serialized as JSON across the boundary). Everything else is kept
|
|
111
113
|
as close to the Python bindings as the two languages allow.
|
|
112
114
|
|
|
113
|
-
## Development
|
|
114
|
-
|
|
115
|
-
```sh
|
|
116
|
-
bundle install
|
|
117
|
-
bundle exec rake compile
|
|
118
|
-
bundle exec rake test
|
|
119
|
-
```
|
|
120
|
-
|
|
121
115
|
## License
|
|
122
116
|
|
|
123
117
|
Dual-licensed under [MIT](LICENSE-MIT.md) or [Apache-2.0](LICENSE-Apache-2.0.md),
|
|
@@ -275,6 +275,11 @@ module IronCalc
|
|
|
275
275
|
# @param sheet [Integer]
|
|
276
276
|
# @return [Array(Integer, Integer, Integer, Integer)]
|
|
277
277
|
# @raise [IronCalc::Error]
|
|
278
|
+
|
|
279
|
+
# Without a real def, the @!method stubs above leak to the IronCalc module
|
|
280
|
+
# (yardoc bug lsegal/yard#1207). Doc-only file, never loaded at runtime.
|
|
281
|
+
# @!visibility private
|
|
282
|
+
def __yard_anchor__; end
|
|
278
283
|
end
|
|
279
284
|
|
|
280
285
|
# The recommended, higher-level IronCalc API. Auto-evaluates after every action
|
|
@@ -497,5 +502,9 @@ module IronCalc
|
|
|
497
502
|
# @param sheet [Integer]
|
|
498
503
|
# @return [Array(Integer, Integer, Integer, Integer)]
|
|
499
504
|
# @raise [IronCalc::Error]
|
|
505
|
+
|
|
506
|
+
# Anchors the @!method stubs above — see {Model}.
|
|
507
|
+
# @!visibility private
|
|
508
|
+
def __yard_anchor__; end
|
|
500
509
|
end
|
|
501
510
|
end
|
data/lib/ironcalc/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ironcalc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.1.
|
|
4
|
+
version: 0.7.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- jvdp
|
|
@@ -33,6 +33,7 @@ extensions:
|
|
|
33
33
|
- ext/ironcalc/extconf.rb
|
|
34
34
|
extra_rdoc_files: []
|
|
35
35
|
files:
|
|
36
|
+
- ".yardopts"
|
|
36
37
|
- CHANGELOG.md
|
|
37
38
|
- Cargo.lock
|
|
38
39
|
- Cargo.toml
|
|
@@ -56,6 +57,8 @@ metadata:
|
|
|
56
57
|
homepage_uri: https://www.ironcalc.com/
|
|
57
58
|
source_code_uri: https://github.com/jvdp/IronCalc-Ruby
|
|
58
59
|
bug_tracker_uri: https://github.com/jvdp/IronCalc-Ruby/issues
|
|
60
|
+
changelog_uri: https://raw.githubusercontent.com/jvdp/IronCalc-Ruby/refs/heads/main/CHANGELOG.md
|
|
61
|
+
documentation_uri: https://www.rubydoc.info/gems/ironcalc/
|
|
59
62
|
rdoc_options: []
|
|
60
63
|
require_paths:
|
|
61
64
|
- lib
|