y-rb 0.5.4-x86_64-darwin → 0.5.5-x86_64-darwin

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: e0c5851c26f8bb996bebcfc8faddd5dea8511450b22ca737d6cab136dea3b760
4
- data.tar.gz: 41d7675949a473ca6ae6bc7f47ff9c20ef804cdeca35bd693bc43bb87905ffa6
3
+ metadata.gz: 18f531e7e42a6c7c66abc0a3f0c5004aa914de09e63d39f219d08168612b7b43
4
+ data.tar.gz: cafa15eaa03f50c7c4ddd38d478eb10aeed14b7a4505284b2061104d943e1f7f
5
5
  SHA512:
6
- metadata.gz: 7fab8f0e578f584f5c20d5b19a0ed685851439f75d1cccc25b7032d1f27c7fc4173c33a8b29fb6324acd126a6bc8567c0f0690e21c089945375d89c61e55b322
7
- data.tar.gz: 7cee7b4d330979e07766d4f4970c7e9fec9ad5480f334e15c536b92f12b79c6cf7e859f74ab80ee7f57718b3be009c8abd2e6e7fc70273a7746e0a29c756898e
6
+ metadata.gz: '028d511786a26110a5b43ed9c2bd53f52629ba1bbf0f9c7c7409323d6e826aedf490d4778ed2e8400be78fc022a87087ed0910839b7d9df973c06d08f7f103e4'
7
+ data.tar.gz: 28cf7d3981e34bbbe7e76c0caf89df89a3991aa4f58981a2246d625ec21b48bc47a4e25f6bd42295d0ef405f96ed94680b14b29da35f5bd22a255d90eb28077e
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.bundle CHANGED
Binary file
data/lib/3.1/yrb.bundle CHANGED
Binary file
data/lib/3.2/yrb.bundle CHANGED
Binary file
data/lib/3.3/yrb.bundle 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: x86_64-darwin
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