mrml 0.4.0 → 0.7.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: 2ac5121bb844316ffafff3d72ce5edf18171d0ff0e42da9131f5284c3a1cff9d
4
+ data.tar.gz: ff271a6f8045e1916da2fb21d2ba221fbd32f63278ee5e4f3d60f982bc94525d
5
5
  SHA512:
6
- metadata.gz: 1c35a4541d7807a5ae16be339336375cae98aeee4058132fe436147ae58b154e9c3d3f7a51f555ec2e55680b8ad28b4b16728f91b6e3e03375a9a8ccd68c5627
7
- data.tar.gz: aa0c9591730c76b504aa034bd37c2b5e00e172b62f2201ca66751a9c7e082c62581f2b56ad2a35959f86648a37fecec0160fbc9c85172ba3ee2683ff1429a689
6
+ metadata.gz: 065ffc6bff6bd633b91c1fd45df70902c4fabf1c428cbb3a1b9a40802add1b41308b409e3d3b5a9c132eeeb318516533dfa36c0a7221a0213d02f1d274b94448
7
+ data.tar.gz: f005af0eaadc30ee2fec1d710d59504e55e2c4a47960575d5e43782bec473d426a86c79170ba2e7c2d03e77c08e3397715cb25ca612ea479920a036dcb02d745
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.7"
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.7.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.7.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: 2022-02-25 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