colordom 0.9.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5c8de04d1de01b313514ca8971f57b4050125165d3966c1c9bd5e3e26c978ec
4
- data.tar.gz: b0c2eb60501eeaf6b232dd2401961a006bad283dabf669ab6954230dc0aebefb
3
+ metadata.gz: 94afc63c3c09bdb3a95b46e1addc8cd4b01e789dc5608e9cb7ca7c98d895c3a3
4
+ data.tar.gz: c5d316e57bef0e142773d906f15d84d757b1eddf16016d320859767fee72990c
5
5
  SHA512:
6
- metadata.gz: c2e2e2465599fc75642c82a1fa568cd757b17ef63a8057dbe1a26d67732e04dc65ea58a190e763e168a97d1aaee570eb46536590341c5bca2c1bca50bfd432d9
7
- data.tar.gz: 05e690df2658a015342ce12446bee56c028133d94afdf67469e08ff5349958f00852fb32541fc01beac4ef2316c751dd1027c94c66110c85d3015796088179bb
6
+ metadata.gz: 5b62978940b5a5fa4278de9c221b25a4a084dbde3db3acec32d5935e6ef1810ff335884c8f37227aca1a0ef59cdf040125d75536e33fb4281e565414142e2650
7
+ data.tar.gz: 1455b29e2c473db6876482c027096b66bb3cdbb7f908ab01bbed2a245487164b2cf8578e80ba11b2ab88c60679506af901c8e324010dc0ab5aa4684ab0762e38
@@ -6,7 +6,7 @@ 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
- magnus = "0.5"
9
+ magnus = "0.7"
10
10
  image = "0.24"
11
11
  dominant_color = "0.3"
12
12
  palette_extract = "0.1"
@@ -1,8 +1,7 @@
1
1
  use std::path::PathBuf;
2
2
 
3
3
  use magnus::{
4
- class, define_module, function, method,
5
- prelude::*, gc::register_mark_object, memoize,
4
+ function, method, prelude::*, value::Lazy, Ruby,
6
5
  Error, ExceptionClass, RModule, IntoValueFromNative
7
6
  };
8
7
 
@@ -10,12 +9,14 @@ use image::{DynamicImage};
10
9
  use palette_extract::{Quality, MaxColors, PixelEncoding, PixelFilter};
11
10
  use palette::{FromColor, IntoColor, Lab, Pixel, Srgb};
12
11
 
12
+ static MODULE: Lazy<RModule> =
13
+ Lazy::new(|ruby| ruby.class_object().const_get("Colordom").unwrap());
14
+
15
+ static ERROR: Lazy<ExceptionClass> =
16
+ Lazy::new(|ruby| ruby.get_inner(&MODULE).const_get("Error").unwrap());
17
+
13
18
  fn colordom_error() -> ExceptionClass {
14
- *memoize!(ExceptionClass: {
15
- let ex = class::object().const_get::<_, RModule>("Colordom").unwrap().const_get("Error").unwrap();
16
- register_mark_object(ex);
17
- ex
18
- })
19
+ Ruby::get().unwrap().get_inner(&ERROR)
19
20
  }
20
21
 
21
22
  macro_rules! error {
@@ -129,10 +130,10 @@ impl Image {
129
130
  }
130
131
 
131
132
  #[magnus::init]
132
- fn init() -> Result<(), Error> {
133
- let module = define_module("Colordom")?;
133
+ fn init(ruby: &Ruby) -> Result<(), Error> {
134
+ let module = ruby.define_module("Colordom")?;
134
135
 
135
- let colorc = module.define_class("Color", class::object())?;
136
+ let colorc = module.define_class("Color", ruby.class_object())?;
136
137
 
137
138
  colorc.define_singleton_method("new", function!(Color::new, 3))?;
138
139
  colorc.define_method("r", method!(Color::r, 0))?;
@@ -148,7 +149,7 @@ fn init() -> Result<(), Error> {
148
149
  colorc.define_alias("to_rgb", "rgb")?;
149
150
  colorc.define_alias("to_hex", "hex")?;
150
151
 
151
- let imagec = module.define_class("Image", class::object())?;
152
+ let imagec = module.define_class("Image", ruby.class_object())?;
152
153
 
153
154
  imagec.define_singleton_method("new", function!(Image::new, 1))?;
154
155
  imagec.define_method("histogram", method!(Image::histogram, 1))?;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Colordom
4
- VERSION = '0.9.0'
4
+ VERSION = '1.0.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colordom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.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: 2024-01-09 00:00:00.000000000 Z
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys