y-rb 0.5.4-x64-mingw32 → 0.5.5-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec9021bf7792db45026ba12429087f67901427adfd65ba43beed761d6307fd61
4
- data.tar.gz: 506644b0acb3622c62218fbe6e8fd634b737a3b1a0d5bdc34cafc8bd5a3ba9c2
3
+ metadata.gz: 67d0e4cb433f07d3ab27816880b93375fa1901b439f1a32b3d80f8fea5a2ed13
4
+ data.tar.gz: ba79b1e316caf550d1af925960ae8f9126162255d4311669a4ba883912f7b5b7
5
5
  SHA512:
6
- metadata.gz: d689c946d1422c2b5a39b0f39436d3337b670b8a6cef9457d48e33ff632b62f57d30548fc94c3ee84b99531fa44cbfb4d6f111b434656d0ec2024c40fe325a7b
7
- data.tar.gz: 25ab01bebe6d9ba1800bcb6d850b3001e175c02fb5405158b66f6d2632589ccd751aaeb4d70ddb9d3574b8d96ee36cd2e14193367b01344df960d5567c69c3e0
6
+ metadata.gz: 3c744ab3a9aa0ca1cd388c9d5e02509d44b21f14c6aad4504e8ab3cb6815a2053089d13d1f284862db68c22aa527cd15b3c675aaa771bdd0d84297318a11d02d
7
+ data.tar.gz: c231e85320a56d39039c867fdbe92986da7ad7bbe6813042533effbf05254826199f658feae2f7322f6d3633ecafc73ca129d1603aa8f1819f621e5f4ee1ce35
data/ext/yrb/Cargo.toml CHANGED
@@ -1,18 +1,17 @@
1
1
  [package]
2
2
  name = "yrb"
3
- version = "0.5.4"
3
+ version = "0.5.5"
4
4
  authors = ["Hannes Moser <box@hannesmoser.at>"]
5
5
  edition = "2021"
6
6
  homepage = "https://github.com/y-crdt/yrb"
7
7
  repository = "https://github.com/y-crdt/yrb"
8
8
 
9
9
  [dependencies]
10
- lib0 = "0.16.10" # must match yrs version
11
- magnus = "0.6.2"
12
- thiserror = "1.0.56"
13
- yrs = "=0.16.10"
14
- y-sync = "=0.3.1"
15
- rb-sys = "0.9.86"
10
+ magnus = "=0.6.2"
11
+ thiserror = "1.0.57"
12
+ yrs = "=0.17.4"
13
+ y-sync = "=0.4.0"
14
+ rb-sys = "0.9.90"
16
15
 
17
16
  [dev-dependencies]
18
17
  magnus = { version = "0.6.2", features = ["embed"] }
data/ext/yrb/src/utils.rs CHANGED
@@ -1,10 +1,9 @@
1
1
  use crate::yvalue::YValue;
2
- use lib0::any::Any;
3
2
  use magnus::r_hash::ForEach::Continue;
4
3
  use magnus::{exception, Error, RArray, RHash, RString, Symbol, Value};
5
4
  use std::sync::Arc;
6
5
  use yrs::types::{Attrs, Value as YrsValue};
7
- use yrs::{Array, Map, TransactionMut};
6
+ use yrs::{Any, Array, Map, TransactionMut};
8
7
 
9
8
  #[derive(Debug, Clone)]
10
9
  pub(crate) struct TypeConversionError;
data/ext/yrb/src/yany.rs CHANGED
@@ -1,9 +1,9 @@
1
- use lib0::any::Any;
2
1
  use magnus::r_string::IntoRString;
3
2
  use magnus::value::ReprValue;
4
3
  use magnus::{value, IntoValue, RArray, RHash, RString, Value};
5
4
  use std::borrow::Borrow;
6
5
  use std::ops::{Deref, DerefMut};
6
+ use yrs::Any;
7
7
 
8
8
  pub(crate) struct YAny(pub(crate) Any);
9
9
 
@@ -35,11 +35,11 @@ impl TryInto<Value> for YAny {
35
35
  Ok(hash.as_value())
36
36
  }
37
37
  Any::Null => Ok(value::qnil().as_value()),
38
- Any::Undefined => Ok(Value::from(value::qnil().as_value())),
38
+ Any::Undefined => Ok(value::qnil().as_value()),
39
39
  Any::Bool(v) => Ok(v.into_value()),
40
- Any::Number(v) => Ok(Value::from(v.into_value())),
41
- Any::BigInt(v) => Ok(Value::from(v.into_value())),
42
- Any::String(v) => Ok(RString::from(v.into_r_string()).as_value()),
40
+ Any::Number(v) => Ok(v.into_value()),
41
+ Any::BigInt(v) => Ok(v.into_value()),
42
+ Any::String(v) => Ok(v.into_r_string().as_value()),
43
43
  Any::Buffer(v) => Ok(RString::from_slice(v.borrow()).as_value()),
44
44
  };
45
45
  }
@@ -1,13 +1,12 @@
1
1
  use crate::utils::convert_yvalue_to_ruby_value;
2
2
  use crate::ytransaction::YTransaction;
3
3
  use crate::yvalue::YValue;
4
- use lib0::any::Any;
5
4
  use magnus::block::Proc;
6
5
  use magnus::value::Qnil;
7
6
  use magnus::{Error, IntoValue, RArray, RHash, Symbol, Value};
8
7
  use std::cell::RefCell;
9
8
  use yrs::types::Change;
10
- use yrs::{Array, ArrayRef, Observable};
9
+ use yrs::{Any, Array, ArrayRef, Observable};
11
10
 
12
11
  #[magnus::wrap(class = "Y::Array")]
13
12
  pub(crate) struct YArray(pub(crate) RefCell<ArrayRef>);
@@ -175,7 +174,7 @@ impl YArray {
175
174
  let r_arr = RArray::new();
176
175
  for item in arr.iter(tx) {
177
176
  let r_val = YValue::from(item);
178
- let r_val = r_val.0.borrow().clone();
177
+ let r_val = *r_val.0.borrow();
179
178
  r_arr.push(r_val).expect("cannot push item event to array");
180
179
  }
181
180
  r_arr
@@ -1,10 +1,10 @@
1
1
  use crate::yvalue::YValue;
2
- use lib0::any::Any;
3
2
  use magnus::r_hash::ForEach::Continue;
4
3
  use magnus::{RHash, Value};
5
4
  use std::ops::{Deref, DerefMut};
6
5
  use std::sync::Arc;
7
6
  use yrs::types::Attrs;
7
+ use yrs::Any;
8
8
 
9
9
  pub(crate) struct YAttrs(pub(crate) Attrs);
10
10
 
@@ -17,10 +17,10 @@ unsafe impl Send for YAwareness {}
17
17
  impl YAwareness {
18
18
  pub(crate) fn yawareness_new() -> Self {
19
19
  let mut options = Options {
20
- offset_kind: OffsetKind::Utf32,
20
+ offset_kind: OffsetKind::Utf16,
21
21
  ..Default::default()
22
22
  };
23
- options.offset_kind = OffsetKind::Utf32;
23
+ options.offset_kind = OffsetKind::Utf16;
24
24
 
25
25
  let doc = Doc::with_options(options);
26
26
 
data/ext/yrb/src/ydoc.rs CHANGED
@@ -25,7 +25,7 @@ impl YDoc {
25
25
  let value = client_id.first().unwrap();
26
26
  options.client_id = Integer::from_value(*value).unwrap().to_u64().unwrap();
27
27
  }
28
- options.offset_kind = OffsetKind::Utf32;
28
+ options.offset_kind = OffsetKind::Utf16;
29
29
 
30
30
  let doc = Doc::with_options(options);
31
31
  Self(RefCell::new(doc))
@@ -89,7 +89,7 @@ impl YDoc {
89
89
  YXmlText::from(xml_text_ref)
90
90
  }
91
91
 
92
- pub(crate) fn ydoc_transact<'doc>(&self) -> YTransaction {
92
+ pub(crate) fn ydoc_transact(&self) -> YTransaction {
93
93
  let doc = self.0.borrow();
94
94
  let transaction = doc.transact_mut();
95
95
  YTransaction::from(transaction)
data/ext/yrb/src/ymap.rs CHANGED
@@ -1,12 +1,11 @@
1
1
  use crate::utils::{convert_yvalue_to_ruby_value, indifferent_hash_key};
2
2
  use crate::yvalue::YValue;
3
3
  use crate::YTransaction;
4
- use lib0::any::Any;
5
4
  use magnus::block::Proc;
6
5
  use magnus::{exception, Error, RArray, RHash, Symbol, Value};
7
6
  use std::cell::RefCell;
8
7
  use yrs::types::{EntryChange, Value as YrsValue};
9
- use yrs::{Map, MapRef, Observable};
8
+ use yrs::{Any, Map, MapRef, Observable};
10
9
 
11
10
  #[magnus::wrap(class = "Y::Map")]
12
11
  pub(crate) struct YMap(pub(crate) RefCell<MapRef>);
data/ext/yrb/src/ytext.rs CHANGED
@@ -1,13 +1,12 @@
1
1
  use crate::yattrs::YAttrs;
2
2
  use crate::yvalue::YValue;
3
3
  use crate::YTransaction;
4
- use lib0::any::Any;
5
4
  use magnus::block::Proc;
6
5
  use magnus::value::Qnil;
7
6
  use magnus::{Error, RHash, Symbol, Value};
8
7
  use std::cell::RefCell;
9
8
  use yrs::types::Delta;
10
- use yrs::{GetString, Observable, Text, TextRef};
9
+ use yrs::{Any, GetString, Observable, Text, TextRef};
11
10
 
12
11
  #[magnus::wrap(class = "Y::Text")]
13
12
  pub(crate) struct YText(pub(crate) RefCell<TextRef>);
@@ -1,13 +1,13 @@
1
1
  use crate::{YText, YXmlElement, YXmlText};
2
- use lib0::any::Any;
3
2
  use magnus::r_hash::ForEach::Continue;
4
3
  use magnus::value::{Qnil, ReprValue};
5
4
  use magnus::{class, value, Float, Integer, IntoValue, RArray, RHash, RString, Symbol, Value};
6
5
  use std::cell::RefCell;
7
6
  use std::collections::HashMap;
7
+ use std::sync::Arc;
8
8
  use yrs::types::Value as YrsValue;
9
9
  use yrs::{
10
- Array, Map, TextRef as YrsText, Transact, XmlElementRef as YrsXmlElement,
10
+ Any, Array, Map, TextRef as YrsText, Transact, XmlElementRef as YrsXmlElement,
11
11
  XmlTextRef as YrsXmlText,
12
12
  };
13
13
 
@@ -67,6 +67,12 @@ impl From<RHash> for YValue {
67
67
  }
68
68
  }
69
69
 
70
+ impl From<Vec<u8>> for YValue {
71
+ fn from(value: Vec<u8>) -> Self {
72
+ YValue(RefCell::from(value.into_value()))
73
+ }
74
+ }
75
+
70
76
  impl From<YrsText> for YValue {
71
77
  fn from(value: YrsText) -> Self {
72
78
  YValue(RefCell::from(YText(RefCell::from(value)).into_value()))
@@ -113,13 +119,13 @@ impl From<Any> for YValue {
113
119
  Any::Bool(v) => YValue::from(v),
114
120
  Any::Number(v) => YValue::from(v),
115
121
  Any::BigInt(v) => YValue::from(v),
116
- Any::String(v) => YValue::from(v.into_string()),
117
- Any::Buffer(v) => YValue::from(v.into_vec().into_value()),
122
+ Any::String(v) => YValue::from(v.to_string()),
123
+ Any::Buffer(v) => YValue::from(v.to_vec()),
118
124
  Any::Array(v) => {
119
125
  let arr = RArray::new();
120
126
  for item in v.iter() {
121
127
  let val = YValue::from(item.clone());
122
- let val = val.0.borrow().clone();
128
+ let val = *val.0.borrow();
123
129
  arr.push(val).expect("cannot push item event to array");
124
130
  }
125
131
  YValue::from(arr)
@@ -146,7 +152,6 @@ impl From<YrsValue> for YValue {
146
152
  YrsValue::YXmlElement(el) => YValue::from(el),
147
153
  YrsValue::YXmlText(text) => YValue::from(text),
148
154
  YrsValue::YArray(val) => {
149
- print!("try to acquire transaction");
150
155
  let tx = val.transact();
151
156
  let arr = RArray::new();
152
157
  for item in val.iter(&tx) {
@@ -157,7 +162,6 @@ impl From<YrsValue> for YValue {
157
162
  YValue::from(arr)
158
163
  }
159
164
  YrsValue::YMap(val) => {
160
- print!("try to acquire transaction");
161
165
  let tx = val.transact();
162
166
  let iter = val.iter(&tx).map(|(key, val)| {
163
167
  let val = YValue::from(val);
@@ -184,14 +188,14 @@ impl From<YValue> for Any {
184
188
  Any::BigInt(i.to_i64().unwrap())
185
189
  } else if value.is_kind_of(class::symbol()) {
186
190
  let s = Symbol::from_value(value).unwrap();
187
- Any::String(Box::from(s.name().unwrap()))
191
+ Any::String(Arc::from(s.name().unwrap()))
188
192
  } else if value.is_kind_of(class::true_class()) {
189
193
  Any::Bool(true)
190
194
  } else if value.is_kind_of(class::false_class()) {
191
195
  Any::Bool(false)
192
196
  } else if value.is_kind_of(class::string()) {
193
197
  let s = RString::from_value(value).unwrap();
194
- unsafe { Any::String(Box::from(s.as_str().unwrap().to_string())) }
198
+ unsafe { Any::String(Arc::from(s.as_str().unwrap().to_string())) }
195
199
  } else if value.is_kind_of(class::array()) {
196
200
  let arr = RArray::from_value(value).unwrap();
197
201
  let items = arr
@@ -201,7 +205,7 @@ impl From<YValue> for Any {
201
205
  Any::from(yvalue)
202
206
  })
203
207
  .collect::<Vec<Any>>();
204
- Any::Array(Box::from(items))
208
+ Any::Array(Arc::from(items))
205
209
  } else if value.is_kind_of(class::hash()) {
206
210
  let map = RHash::from_value(value).unwrap();
207
211
  let mut m: HashMap<String, Any> = HashMap::new();
@@ -221,7 +225,7 @@ impl From<YValue> for Any {
221
225
  })
222
226
  .expect("cannot map key/value pair");
223
227
 
224
- Any::Map(Box::from(m))
228
+ Any::Map(Arc::from(m))
225
229
  } else {
226
230
  Any::Undefined
227
231
  }
@@ -238,8 +242,8 @@ impl Into<Value> for YValue {
238
242
  #[cfg(test)]
239
243
  mod tests {
240
244
  use crate::yvalue::YValue;
241
- use lib0::any::Any;
242
245
  use magnus::value::ReprValue;
246
+ use yrs::Any;
243
247
 
244
248
  #[test]
245
249
  fn convert_any_to_yvalue() {
@@ -116,7 +116,7 @@ impl YXmlElement {
116
116
  let values = RArray::new();
117
117
  for value in v.iter() {
118
118
  let value = YValue::from(value.clone());
119
- let value = value.0.borrow().clone();
119
+ let value = *value.0.borrow();
120
120
  values.push(value).expect("cannot push value to array");
121
121
  }
122
122
 
@@ -2,10 +2,9 @@ use crate::utils::map_rhash_to_attrs;
2
2
  use crate::yvalue::YValue;
3
3
  use crate::yxml_fragment::YXmlFragment;
4
4
  use crate::{YTransaction, YXmlElement};
5
- use lib0::any::Any;
6
5
  use magnus::{Error, IntoValue, RHash, Value};
7
6
  use std::cell::RefCell;
8
- use yrs::{GetString, Text, Xml, XmlNode, XmlTextRef};
7
+ use yrs::{Any, GetString, Text, Xml, XmlNode, XmlTextRef};
9
8
 
10
9
  #[magnus::wrap(class = "Y::XMLText")]
11
10
  pub(crate) struct YXmlText(pub(crate) RefCell<XmlTextRef>);
data/lib/3.0/yrb.so CHANGED
Binary file
data/lib/y/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Y
4
- VERSION = "0.5.4"
4
+ VERSION = "0.5.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: y-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Hannes Moser
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-04 00:00:00.000000000 Z
11
+ date: 2024-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake