rucy 0.2 → 0.2.1
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 +4 -4
- data/.doc/ext/rucy/tester.cpp +1 -1
- data/.github/workflows/release-gem.yml +1 -1
- data/.github/workflows/tag.yml +1 -1
- data/.github/workflows/test.yml +7 -1
- data/ChangeLog.md +8 -0
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/ext/rucy/tester.cpp +1 -1
- data/include/rucy/extension.h.erb +3 -2
- data/include/rucy/ruby.h +1 -0
- data/include/rucy/value.h.erb +5 -5
- data/rucy.gemspec +1 -1
- data/src/exception.cpp +1 -25
- data/src/value.cpp.erb +15 -16
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e17e711a8ae802303c387e10b9718fc4399be80c87fbf25badd9b518d6f4a2b
|
4
|
+
data.tar.gz: f7ffb9c06acdf4ecb9e2e0011e956365d558f6509a6c158e00894bba2b4de052
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 121368e5fa7d2246451dae710fc0eb993b700eb1842a36dd0ecf0243b92aaf0f1a278adbe30bf16176b3656bbba137b4e5cb1e5265b2746cf1d69ad85a658a3c
|
7
|
+
data.tar.gz: 6363492ca08f9a2a7c03b444263d3b6a723453205335ac4c831ab32a6e92a1d9b9f85e3ca7d49421e8384e82b40da26da1de29d72bd185996b938a7f817b3171
|
data/.doc/ext/rucy/tester.cpp
CHANGED
data/.github/workflows/tag.yml
CHANGED
data/.github/workflows/test.yml
CHANGED
@@ -16,7 +16,7 @@ jobs:
|
|
16
16
|
ruby-version: 3.2
|
17
17
|
|
18
18
|
- name: checkout
|
19
|
-
uses: actions/checkout@
|
19
|
+
uses: actions/checkout@v4
|
20
20
|
|
21
21
|
- name: setup gems
|
22
22
|
run: bundle install
|
@@ -24,5 +24,11 @@ jobs:
|
|
24
24
|
- name: setup dependencies
|
25
25
|
run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
|
26
26
|
|
27
|
+
- name: lib
|
28
|
+
run: bundle exec rake lib
|
29
|
+
|
30
|
+
- name: ext
|
31
|
+
run: bundle exec rake ext
|
32
|
+
|
27
33
|
- name: test
|
28
34
|
run: bundle exec rake test
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# rucy ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [v0.2.1] - 2024-07-05
|
5
|
+
|
6
|
+
- Value() can take encoding parameter
|
7
|
+
- value(size, values) -> array(values, size)
|
8
|
+
- Update workflows for test
|
9
|
+
- Update to actions/checkout@v4
|
10
|
+
|
11
|
+
|
4
12
|
## [v0.2] - 2024-03-14
|
5
13
|
|
6
14
|
- Change the super class for exception class from RuntimeError to StandardError
|
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2
|
1
|
+
0.2.1
|
data/ext/rucy/tester.cpp
CHANGED
@@ -446,8 +446,9 @@ namespace Rucy
|
|
446
446
|
template <typename T> inline T* get_type_ptr (Value obj, Value klass = nil())
|
447
447
|
{
|
448
448
|
if (!klass.is_nil()) check_class(obj, klass);
|
449
|
-
|
450
|
-
|
449
|
+
RubyValue o = obj.value();
|
450
|
+
T* p = NULL;
|
451
|
+
Data_Get_Struct(o, T, p);
|
451
452
|
return p;
|
452
453
|
}
|
453
454
|
|
data/include/rucy/ruby.h
CHANGED
data/include/rucy/value.h.erb
CHANGED
@@ -29,9 +29,9 @@ namespace Rucy
|
|
29
29
|
|
30
30
|
Value (double n);
|
31
31
|
|
32
|
-
Value (const char* s);
|
32
|
+
Value (const char* s, rb_encoding* encoding = NULL);
|
33
33
|
|
34
|
-
Value (const char* s, size_t len);
|
34
|
+
Value (const char* s, size_t len, rb_encoding* encoding = NULL);
|
35
35
|
|
36
36
|
Value (size_t size, const Value* array);
|
37
37
|
|
@@ -243,11 +243,11 @@ namespace Rucy
|
|
243
243
|
|
244
244
|
Value value (double n);
|
245
245
|
|
246
|
-
Value value (const char* s);
|
246
|
+
Value value (const char* s, rb_encoding* encoding = NULL);
|
247
247
|
|
248
|
-
Value value (const char* s, size_t len);
|
248
|
+
Value value (const char* s, size_t len, rb_encoding* encoding = NULL);
|
249
249
|
|
250
|
-
Value
|
250
|
+
Value array (const Value* values, size_t size);
|
251
251
|
% (1..16).each do |n|
|
252
252
|
|
253
253
|
Value array (<%= params(n, ', ') {|i| "Value v#{i}"} %>);
|
data/rucy.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.platform = Gem::Platform::RUBY
|
26
26
|
s.required_ruby_version = '>= 3.0.0'
|
27
27
|
|
28
|
-
s.add_runtime_dependency 'xot', '~> 0.2'
|
28
|
+
s.add_runtime_dependency 'xot', '~> 0.2.1'
|
29
29
|
|
30
30
|
s.files = `git ls-files`.split $/
|
31
31
|
s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
|
data/src/exception.cpp
CHANGED
@@ -3,9 +3,6 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
#include <typeinfo>
|
6
|
-
#ifdef WIN32
|
7
|
-
#include <windows.h>
|
8
|
-
#endif
|
9
6
|
#include <xot/exception.h>
|
10
7
|
#include "rucy/ruby.h"
|
11
8
|
#include "rucy/rucy.h"
|
@@ -136,28 +133,7 @@ namespace Rucy
|
|
136
133
|
system_error (const char* file, int line, const char* format, ...)
|
137
134
|
{
|
138
135
|
XOT_STRINGF(format, s);
|
139
|
-
|
140
|
-
#ifdef WIN32
|
141
|
-
DWORD lasterror = GetLastError();
|
142
|
-
if (lasterror != 0)
|
143
|
-
{
|
144
|
-
LPVOID msg = NULL;
|
145
|
-
DWORD flags =
|
146
|
-
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
147
|
-
FORMAT_MESSAGE_FROM_SYSTEM |
|
148
|
-
FORMAT_MESSAGE_IGNORE_INSERTS;
|
149
|
-
if (FormatMessageA(
|
150
|
-
flags, NULL, lasterror, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
151
|
-
(LPSTR) &msg, 0, NULL))
|
152
|
-
{
|
153
|
-
Xot::String m = (LPCSTR) msg;
|
154
|
-
if (!m.empty()) s += ": " + m;
|
155
|
-
}
|
156
|
-
LocalFree(msg);
|
157
|
-
}
|
158
|
-
#endif
|
159
|
-
|
160
|
-
raise(system_error_class(), Xot::error_text(file, line, s));
|
136
|
+
raise(system_error_class(), Xot::system_error_text(file, line, s));
|
161
137
|
}
|
162
138
|
|
163
139
|
|
data/src/value.cpp.erb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
#include "rucy/value.h"
|
3
3
|
|
4
4
|
|
5
|
-
#include <ruby/encoding.h>
|
6
5
|
#include "rucy/function.h"
|
7
6
|
#include "rucy/exception.h"
|
8
7
|
#include "rucy/debug.h"
|
@@ -56,28 +55,28 @@ namespace Rucy
|
|
56
55
|
}
|
57
56
|
|
58
57
|
static VALUE
|
59
|
-
str_new (const char* s)
|
58
|
+
str_new (const char* s, rb_encoding* encoding)
|
60
59
|
{
|
61
|
-
rb_encoding* e = rb_default_internal_encoding();
|
60
|
+
rb_encoding* e = encoding ? encoding : rb_default_internal_encoding();
|
62
61
|
return e ? rb_enc_str_new_cstr(s, e) : rb_str_new_cstr(s);
|
63
62
|
}
|
64
63
|
|
65
64
|
static VALUE
|
66
|
-
str_new (const char* s, size_t len)
|
65
|
+
str_new (const char* s, size_t len, rb_encoding* encoding)
|
67
66
|
{
|
68
|
-
rb_encoding* e = rb_default_internal_encoding();
|
67
|
+
rb_encoding* e = encoding ? encoding : rb_default_internal_encoding();
|
69
68
|
return e ? rb_enc_str_new(s, len, e) : rb_str_new(s, len);
|
70
69
|
}
|
71
70
|
|
72
|
-
Value::Value (const char* s)
|
73
|
-
: val(s ? str_new(s) : Qnil)
|
71
|
+
Value::Value (const char* s, rb_encoding* encoding)
|
72
|
+
: val(s ? str_new(s, encoding) : Qnil)
|
74
73
|
{
|
75
74
|
if (!s)
|
76
75
|
argument_error(__FILE__, __LINE__);
|
77
76
|
}
|
78
77
|
|
79
|
-
Value::Value (const char* s, size_t len)
|
80
|
-
: val(s ? str_new(s, len) : Qnil)
|
78
|
+
Value::Value (const char* s, size_t len, rb_encoding* encoding)
|
79
|
+
: val(s ? str_new(s, len, encoding) : Qnil)
|
81
80
|
{
|
82
81
|
if (!s)
|
83
82
|
argument_error(__FILE__, __LINE__);
|
@@ -613,21 +612,21 @@ namespace Rucy
|
|
613
612
|
}
|
614
613
|
|
615
614
|
Value
|
616
|
-
value (const char* s)
|
615
|
+
value (const char* s, rb_encoding* encoding)
|
617
616
|
{
|
618
|
-
return Value(s);
|
617
|
+
return Value(s, encoding);
|
619
618
|
}
|
620
619
|
|
621
620
|
Value
|
622
|
-
value (const char* s, size_t len)
|
621
|
+
value (const char* s, size_t len, rb_encoding* encoding)
|
623
622
|
{
|
624
|
-
return Value(s, len);
|
623
|
+
return Value(s, len, encoding);
|
625
624
|
}
|
626
625
|
|
627
626
|
Value
|
628
|
-
|
627
|
+
array (const Value* values, size_t size)
|
629
628
|
{
|
630
|
-
return Value(size,
|
629
|
+
return Value(size, values);
|
631
630
|
}
|
632
631
|
% (1..16).each do |n|
|
633
632
|
|
@@ -635,7 +634,7 @@ namespace Rucy
|
|
635
634
|
array (<%= params(n, ', ') {|i| "Value v#{i}"} %>)
|
636
635
|
{
|
637
636
|
Value tmp[] = {<%= params(n, ', ') {|i| "v#{i}"} %>};
|
638
|
-
return
|
637
|
+
return array(tmp, <%= n %>);
|
639
638
|
}
|
640
639
|
% end
|
641
640
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rucy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.2.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.2.1
|
27
27
|
description: This library helps you to develop Ruby Extension by C++.
|
28
28
|
email: xordog@gmail.com
|
29
29
|
executables:
|