mrml 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.toml +2 -1
  3. data/lib/mrml/version.rb +1 -1
  4. data/src/lib.rs +27 -4
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3f987f15ef350dd08e029dbd14f802d4c0c379f114734160b1cae0e0ca4e59e
4
- data.tar.gz: 774d31d99416e41eed22557f30465c60ee2aebccb1f8e569ab83db51b227a0ca
3
+ metadata.gz: 810bd284bd8900d15194688f0ed73ea6e78e2053ca38b92ec3184faada04cf51
4
+ data.tar.gz: 88bb0fcd4587de5080a5ebd265612a26e3baa04b4042c27835f4729cf0d9176e
5
5
  SHA512:
6
- metadata.gz: 1c35a4541d7807a5ae16be339336375cae98aeee4058132fe436147ae58b154e9c3d3f7a51f555ec2e55680b8ad28b4b16728f91b6e3e03375a9a8ccd68c5627
7
- data.tar.gz: aa0c9591730c76b504aa034bd37c2b5e00e172b62f2201ca66751a9c7e082c62581f2b56ad2a35959f86648a37fecec0160fbc9c85172ba3ee2683ff1429a689
6
+ metadata.gz: 7c484444adc9beda35040b98ae8ab19a3076a821b192cd98c765493e8928ccc8ed7daffcd9829d95a7059086484544620d1fd0a967e728dc41ba93a1c1bab398
7
+ data.tar.gz: 8fc80117c790d2220af3d8df80c07e272e2766be65ab304898871963a88bab49dcb13ec12df9c6ea76a91a44623a500ff3e76b51994dd2d31d14910ddc77bcaa
data/Cargo.toml CHANGED
@@ -6,7 +6,8 @@ edition = "2018"
6
6
 
7
7
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
8
8
  [dependencies]
9
- mrml = "0.5.0"
9
+ mrml = "1.2.4"
10
+ serde = { version = "1.0", features = ["derive"] }
10
11
 
11
12
  [lib]
12
13
  name = "mrml"
data/lib/mrml/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MRML
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
data/src/lib.rs CHANGED
@@ -11,7 +11,7 @@ fn to_char(string: String) -> *mut c_char {
11
11
  CString::new(string).unwrap().into_raw()
12
12
  }
13
13
 
14
- fn to_result(result: Result<String, mrml::Error>) -> *mut c_char {
14
+ fn parse_result(result: Result<String, mrml::prelude::render::Error>) -> *mut c_char {
15
15
  if result.is_err() {
16
16
  to_char(format!("MRML::Error {:?}", result.unwrap_err()))
17
17
  } else {
@@ -19,19 +19,42 @@ fn to_result(result: Result<String, mrml::Error>) -> *mut c_char {
19
19
  }
20
20
  }
21
21
 
22
+ fn parse_option(option: Option<String>) -> *mut c_char {
23
+ to_char(option.unwrap_or("".to_string()))
24
+ }
25
+
22
26
  #[no_mangle]
23
27
  pub extern "C" fn to_title(input: *const c_char) -> *mut c_char {
24
- to_result(mrml::to_title(&to_string(input), mrml::Options::default()))
28
+ let root = mrml::parse(&to_string(input));
29
+
30
+ if root.is_err() {
31
+ to_char(format!("MRML::Error {:?}", root.unwrap_err()))
32
+ } else {
33
+ parse_option(root.unwrap().get_title())
34
+ }
25
35
  }
26
36
 
27
37
  #[no_mangle]
28
38
  pub extern "C" fn to_preview(input: *const c_char) -> *mut c_char {
29
- to_result(mrml::to_preview(&to_string(input), mrml::Options::default()))
39
+ let root = mrml::parse(&to_string(input));
40
+
41
+ if root.is_err() {
42
+ to_char(format!("MRML::Error {:?}", root.unwrap_err()))
43
+ } else {
44
+ parse_option(root.unwrap().get_preview())
45
+ }
30
46
  }
31
47
 
32
48
  #[no_mangle]
33
49
  pub extern "C" fn to_html(input: *const c_char) -> *mut c_char {
34
- to_result(mrml::to_html(&to_string(input), mrml::Options::default()))
50
+ let root = mrml::parse(&to_string(input));
51
+ let opts = mrml::prelude::render::Options::default();
52
+
53
+ if root.is_err() {
54
+ to_char(format!("MRML::Error {:?}", root.unwrap_err()))
55
+ } else {
56
+ parse_result(root.unwrap().render(&opts))
57
+ }
35
58
  }
36
59
 
37
60
  #[no_mangle]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonian Guveli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-04 00:00:00.000000000 Z
11
+ date: 2021-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  requirements: []
128
- rubygems_version: 3.1.4
128
+ rubygems_version: 3.1.6
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: Ruby wrapper for MRML Rust