mrml 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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