y-rb 0.5.3-x86_64-darwin → 0.5.5-x86_64-darwin

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: 91ac411669334b234f375bd050bded350b6fda596d65cb7fa152cb91b23fcbd5
4
- data.tar.gz: 3dfbc0a85871c26fcc7fe049bc465b686499af3287c26a8f632ffc1cbdba987c
3
+ metadata.gz: 18f531e7e42a6c7c66abc0a3f0c5004aa914de09e63d39f219d08168612b7b43
4
+ data.tar.gz: cafa15eaa03f50c7c4ddd38d478eb10aeed14b7a4505284b2061104d943e1f7f
5
5
  SHA512:
6
- metadata.gz: '09f93c246cb186a0703af5e44c87796854c17b68dd6731f8e914a6add09c148f0affb6e6f9dd146d0913ebf2982a3bf718683b026ec8462940674723b72d9788'
7
- data.tar.gz: e89a596a2decffcf7858dfba3b38ff2ba78fadcaf2a5b2b7d163fb6715734004c36f12e998261a713fc9524302edde673c276a85956d290493f8410a5f960aab
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.3"
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.50"
13
- yrs = "=0.16.10"
14
- y-sync = "=0.3.1"
15
- rb-sys = "0.9.82"
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,14 +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
- use std::borrow::Borrow;
9
7
  use std::cell::RefCell;
10
8
  use yrs::types::Change;
11
- use yrs::{Array, ArrayRef, Observable};
9
+ use yrs::{Any, Array, ArrayRef, Observable};
12
10
 
13
11
  #[magnus::wrap(class = "Y::Array")]
14
12
  pub(crate) struct YArray(pub(crate) RefCell<ArrayRef>);
@@ -117,7 +115,7 @@ impl YArray {
117
115
  if errors.is_empty() {
118
116
  let args_changes = RArray::new();
119
117
  for change in changes.iter() {
120
- let c = *change.borrow().as_ref().unwrap();
118
+ let c = *change.as_ref().unwrap();
121
119
  args_changes
122
120
  .push(c)
123
121
  .expect("cannot push change event to args");
@@ -176,7 +174,7 @@ impl YArray {
176
174
  let r_arr = RArray::new();
177
175
  for item in arr.iter(tx) {
178
176
  let r_val = YValue::from(item);
179
- let r_val = r_val.0.borrow().clone();
177
+ let r_val = *r_val.0.borrow();
180
178
  r_arr.push(r_val).expect("cannot push item event to array");
181
179
  }
182
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
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.3"
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.3
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: 2023-11-13 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
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.9.71
34
+ version: 0.9.86
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.9.71
41
+ version: 0.9.86
42
42
  force_ruby_platform: false
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rake-compiler
@@ -60,14 +60,14 @@ dependencies:
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 1.3.0
63
+ version: 1.4.0
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 1.3.0
70
+ version: 1.4.0
71
71
  description: Ruby bindings for yrs. Yrs "wires" is a Rust port of the Yjs framework.
72
72
  email:
73
73
  - hmoser@gitlab.com
@@ -95,6 +95,7 @@ files:
95
95
  - lib/3.0/yrb.bundle
96
96
  - lib/3.1/yrb.bundle
97
97
  - lib/3.2/yrb.bundle
98
+ - lib/3.3/yrb.bundle
98
99
  - lib/y-rb.rb
99
100
  - lib/y.rb
100
101
  - lib/y/array.rb
@@ -125,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
126
  version: '3.0'
126
127
  - - "<"
127
128
  - !ruby/object:Gem::Version
128
- version: 3.3.dev
129
+ version: 3.4.dev
129
130
  required_rubygems_version: !ruby/object:Gem::Requirement
130
131
  requirements:
131
132
  - - ">="