Skip to content

Commit 225b5ea

Browse files
committed
update magnus to v7.0
1 parent 7d8824a commit 225b5ea

File tree

3 files changed

+39
-42
lines changed

3 files changed

+39
-42
lines changed

Cargo.lock

Lines changed: 27 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/mrml/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ edition = "2018"
66

77
[dependencies]
88
mrml = "4.0"
9-
magnus = "0.5"
9+
magnus = "0.7"
1010

1111
[dependencies.serde]
1212
version = "1.0"

ext/mrml/src/lib.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
use magnus::{
2-
class, define_module, function, method,
3-
prelude::*, gc::register_mark_object, memoize,
2+
function, method, prelude::*, value::Lazy, Ruby,
43
Error, ExceptionClass, RModule
54
};
65

76
use mrml::mjml::Mjml;
87
use mrml::prelude::print::Printable;
98
use mrml::prelude::render::RenderOptions;
109

10+
static MODULE: Lazy<RModule> =
11+
Lazy::new(|ruby| ruby.class_object().const_get("MRML").unwrap());
12+
13+
static ERROR: Lazy<ExceptionClass> =
14+
Lazy::new(|ruby| ruby.get_inner(&MODULE).const_get("Error").unwrap());
15+
1116
fn mrml_error() -> ExceptionClass {
12-
*memoize!(ExceptionClass: {
13-
let ex = class::object().const_get::<_, RModule>("MRML").unwrap().const_get("Error").unwrap();
14-
register_mark_object(ex);
15-
ex
16-
})
17+
Ruby::get().unwrap().get_inner(&ERROR)
1718
}
1819

1920
macro_rules! error {
@@ -76,9 +77,9 @@ impl Clone for Template {
7677
}
7778

7879
#[magnus::init]
79-
fn init() -> Result<(), Error> {
80-
let module = define_module("MRML")?;
81-
let class = module.define_class("Template", class::object())?;
80+
fn init(ruby: &Ruby) -> Result<(), Error> {
81+
let module = ruby.define_module("MRML")?;
82+
let class = module.define_class("Template", ruby.class_object())?;
8283

8384
class.define_singleton_method("new", function!(Template::new, 1))?;
8485
class.define_singleton_method("from_json", function!(Template::from_json, 1))?;

0 commit comments

Comments
 (0)