rucy 0.2.1 → 0.3

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: 8e17e711a8ae802303c387e10b9718fc4399be80c87fbf25badd9b518d6f4a2b
4
- data.tar.gz: f7ffb9c06acdf4ecb9e2e0011e956365d558f6509a6c158e00894bba2b4de052
3
+ metadata.gz: 3c0b7b7213f348219974af330be0736100deb8a4cfdf64c4d054f9fc1805d987
4
+ data.tar.gz: 4a310f68ba7ea36f7bbcc50c6877faaed482373961e30b0739f1d32028677d5c
5
5
  SHA512:
6
- metadata.gz: 121368e5fa7d2246451dae710fc0eb993b700eb1842a36dd0ecf0243b92aaf0f1a278adbe30bf16176b3656bbba137b4e5cb1e5265b2746cf1d69ad85a658a3c
7
- data.tar.gz: 6363492ca08f9a2a7c03b444263d3b6a723453205335ac4c831ab32a6e92a1d9b9f85e3ca7d49421e8384e82b40da26da1de29d72bd185996b938a7f817b3171
6
+ metadata.gz: e860567f261af864e356afa4f1696daea25250df6bb16ad9d47b8fd8056b8f69a383af5bb1f7a6faab619f873510392978dff2789cefd26a07fe7562c952b321
7
+ data.tar.gz: 4afb44af2a00612432ded96767d7ffa398788d95c4176151c2834b96c410af5aecb86a8ba133d3866911d3414cc56e00c2494d4870d05346990b36992b793d11
@@ -22,9 +22,9 @@ namespace Rucy
22
22
  }// Rucy
23
23
 
24
24
 
25
- RUCY_WRAPPER_VALUE_FROM_TO(Base)
26
- RUCY_WRAPPER_VALUE_FROM_TO(Sub)
27
- RUCY_WRAPPER_VALUE_FROM_TO(SimpleObj)
25
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, Base)
26
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, Sub)
27
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, SimpleObj)
28
28
 
29
29
 
30
30
  template <typename T>
@@ -23,7 +23,7 @@ namespace Rucy
23
23
 
24
24
  }// Rucy
25
25
 
26
- RUCY_VALUE_FROM_TO(Struct)
26
+ RUCY_VALUE_FROM_TO(RUCY_EXPORT, Struct)
27
27
 
28
28
 
29
29
  /*
@@ -24,7 +24,7 @@ jobs:
24
24
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
25
25
 
26
26
  - name: test
27
- run: bundle exec rake quiet test
27
+ run: bundle exec rake quiet packages test
28
28
 
29
29
  - name: create gem
30
30
  id: gem
@@ -24,6 +24,9 @@ jobs:
24
24
  - name: setup dependencies
25
25
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
26
26
 
27
+ - name: packages
28
+ run: bundle exec rake packages
29
+
27
30
  - name: lib
28
31
  run: bundle exec rake lib
29
32
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # rucy ChangeLog
2
2
 
3
3
 
4
+ ## [v0.3] - 2024-07-06
5
+
6
+ - Support Windows
7
+
8
+
4
9
  ## [v0.2.1] - 2024-07-05
5
10
 
6
11
  - Value() can take encoding parameter
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3
data/ext/rucy/class.cpp CHANGED
@@ -22,9 +22,9 @@ namespace Rucy
22
22
  }// Rucy
23
23
 
24
24
 
25
- RUCY_WRAPPER_VALUE_FROM_TO(Base)
26
- RUCY_WRAPPER_VALUE_FROM_TO(Sub)
27
- RUCY_WRAPPER_VALUE_FROM_TO(SimpleObj)
25
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, Base)
26
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, Sub)
27
+ RUCY_WRAPPER_VALUE_FROM_TO(RUCY_EXPORT, SimpleObj)
28
28
 
29
29
 
30
30
  template <typename T>
data/ext/rucy/struct.cpp CHANGED
@@ -23,7 +23,7 @@ namespace Rucy
23
23
 
24
24
  }// Rucy
25
25
 
26
- RUCY_VALUE_FROM_TO(Struct)
26
+ RUCY_VALUE_FROM_TO(RUCY_EXPORT, Struct)
27
27
 
28
28
 
29
29
  /*
@@ -0,0 +1,14 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __RUCY_DEFS_H__
4
+ #define __RUCY_DEFS_H__
5
+
6
+
7
+ #if defined(WIN32) && defined(GCC) && defined(RUCY)
8
+ #define RUCY_EXPORT __declspec(dllexport)
9
+ #else
10
+ #define RUCY_EXPORT
11
+ #endif
12
+
13
+
14
+ #endif//EOH
@@ -6,84 +6,85 @@
6
6
 
7
7
  #include <xot/ref.h>
8
8
  #include <xot/string.h>
9
+ #include <rucy/defs.h>
9
10
  #include <rucy/rucy.h>
10
11
  #include <rucy/value.h>
11
12
  #include <rucy/exception.h>
12
13
 
13
14
 
14
- #define RUCY_DECLARE_VALUE_FROM(native_class) \
15
+ #define RUCY_DECLARE_VALUE_FROM(export, native_class) \
15
16
  namespace Rucy \
16
17
  { \
17
- Value value (const native_class& obj); \
18
- Value value (const native_class* obj); \
18
+ export Value value (const native_class& obj); \
19
+ export Value value (const native_class* obj); \
19
20
  }
20
21
 
21
- #define RUCY_DECLARE_VALUE_TO(native_class) \
22
+ #define RUCY_DECLARE_VALUE_TO(export, native_class) \
22
23
  namespace Rucy \
23
24
  { \
24
- template <> native_class* value_to< native_class*> (Value value, bool); \
25
- template <> const native_class* value_to<const native_class*> (Value value, bool); \
26
- template <> native_class& value_to< native_class&> (Value value, bool convert); \
27
- template <> const native_class& value_to<const native_class&> (Value value, bool convert); \
25
+ template <> export native_class* value_to< native_class*> (Value value, bool); \
26
+ template <> export const native_class* value_to<const native_class*> (Value value, bool); \
27
+ template <> export native_class& value_to< native_class&> (Value value, bool convert); \
28
+ template <> export const native_class& value_to<const native_class&> (Value value, bool convert); \
28
29
  }
29
30
 
30
- #define RUCY_DECLARE_ARRAY_TO(native_class) \
31
+ #define RUCY_DECLARE_ARRAY_TO(export, native_class) \
31
32
  namespace Rucy \
32
33
  { \
33
- template <> native_class value_to<native_class> (Value value, bool convert); \
34
- template <> native_class value_to<native_class> (int argc, const Value* argv, bool convert); \
34
+ template <> export native_class value_to<native_class> (Value value, bool convert); \
35
+ template <> export native_class value_to<native_class> (int argc, const Value* argv, bool convert); \
35
36
  }
36
37
 
37
- #define RUCY_DECLARE_CONVERT_TO(native_type) \
38
- RUCY_DECLARE_ARRAY_TO(native_type)
38
+ #define RUCY_DECLARE_CONVERT_TO(export, native_type) \
39
+ RUCY_DECLARE_ARRAY_TO(export, native_type)
39
40
 
40
- #define RUCY_DECLARE_VALUE_OR_ARRAY_TO(native_class) \
41
- RUCY_DECLARE_VALUE_TO(native_class) \
42
- RUCY_DECLARE_ARRAY_TO(native_class)
41
+ #define RUCY_DECLARE_VALUE_OR_ARRAY_TO(export, native_class) \
42
+ RUCY_DECLARE_VALUE_TO(export, native_class) \
43
+ RUCY_DECLARE_ARRAY_TO(export, native_class)
43
44
 
44
- #define RUCY_DECLARE_WRAPPER_VALUE_FROM(native_class) \
45
+ #define RUCY_DECLARE_WRAPPER_VALUE_FROM(export, native_class) \
45
46
  namespace Rucy \
46
47
  { \
47
- Value value (native_class* obj); \
48
- Value value (native_class* obj, Value klass); \
48
+ export Value value (native_class* obj); \
49
+ export Value value (native_class* obj, Value klass); \
49
50
  }
50
51
 
51
- #define RUCY_DECLARE_WRAPPER_VALUE_TO(native_class) \
52
+ #define RUCY_DECLARE_WRAPPER_VALUE_TO(export, native_class) \
52
53
  namespace Rucy \
53
54
  { \
54
- template <> native_class* value_to< native_class*> (Value value, bool convert); \
55
- template <> const native_class* value_to<const native_class*> (Value value, bool convert); \
55
+ template <> export native_class* value_to< native_class*> (Value value, bool convert); \
56
+ template <> export const native_class* value_to<const native_class*> (Value value, bool convert); \
56
57
  }
57
58
 
58
- #define RUCY_DEFINE_VALUE_FROM(native_class) \
59
+ #define RUCY_DEFINE_VALUE_FROM(export, native_class) \
59
60
  namespace Rucy \
60
61
  { \
61
- Value \
62
+ export Value \
62
63
  value (const native_class& obj) \
63
64
  { \
64
65
  return new_type(get_ruby_class<native_class>(), new native_class(obj)); \
65
66
  } \
66
- Value \
67
+ export Value \
67
68
  value (const native_class* obj) \
68
69
  { \
69
70
  return obj ? value(*obj) : nil(); \
70
71
  } \
71
72
  }
72
73
 
73
- #define RUCY_DEFINE_VALUE_TO(native_class) \
74
+ #define RUCY_DEFINE_VALUE_TO(export, native_class) \
74
75
  namespace Rucy \
75
76
  { \
76
- template <> native_class* \
77
+ template <> export native_class* \
77
78
  value_to<native_class*> (Value value, bool) \
78
79
  { \
79
80
  return get_type_ptr<native_class>(value, get_ruby_class<native_class>()); \
80
81
  } \
81
- template <> const native_class* \
82
+ template <> export const native_class* \
82
83
  value_to<const native_class*> (Value value, bool convert) \
83
84
  { \
84
85
  return (const native_class*) value_to<native_class*>(value, convert); \
85
86
  } \
86
- template <> native_class& \
87
+ template <> export native_class& \
87
88
  value_to<native_class&> (Value value, bool convert) \
88
89
  { \
89
90
  native_class* obj = value_to<native_class*>(value, convert); \
@@ -91,17 +92,17 @@
91
92
  rucy_error(__FILE__, __LINE__, "failed to convert from/to %s.", #native_class); \
92
93
  return *obj; \
93
94
  } \
94
- template <> const native_class& \
95
+ template <> export const native_class& \
95
96
  value_to<const native_class&> (Value value, bool convert) \
96
97
  { \
97
98
  return (const native_class&) value_to<native_class&>(value, convert); \
98
99
  } \
99
100
  }
100
101
 
101
- #define RUCY_DEFINE_ARRAY_TO(native_class) \
102
+ #define RUCY_DEFINE_ARRAY_TO(export, native_class) \
102
103
  namespace Rucy \
103
104
  { \
104
- template <> native_class \
105
+ template <> export native_class \
105
106
  value_to<native_class> (Value value, bool convert) \
106
107
  { \
107
108
  if (value.is_array()) \
@@ -111,22 +112,22 @@
111
112
  } \
112
113
  }
113
114
 
114
- #define RUCY_DEFINE_CONVERT_TO(native_type) \
115
- RUCY_DEFINE_ARRAY_TO(native_type)
115
+ #define RUCY_DEFINE_CONVERT_TO(export, native_type) \
116
+ RUCY_DEFINE_ARRAY_TO(export, native_type)
116
117
 
117
- #define RUCY_DEFINE_VALUE_OR_ARRAY_TO(native_class) \
118
- RUCY_DEFINE_VALUE_TO(native_class) \
119
- RUCY_DEFINE_ARRAY_TO(native_class)
118
+ #define RUCY_DEFINE_VALUE_OR_ARRAY_TO(export, native_class) \
119
+ RUCY_DEFINE_VALUE_TO(export, native_class) \
120
+ RUCY_DEFINE_ARRAY_TO(export, native_class)
120
121
 
121
- #define RUCY_DEFINE_WRAPPER_VALUE_FROM(native_class) \
122
+ #define RUCY_DEFINE_WRAPPER_VALUE_FROM(export, native_class) \
122
123
  namespace Rucy \
123
124
  { \
124
- Value \
125
+ export Value \
125
126
  value (native_class* obj) \
126
127
  { \
127
128
  return value(obj, get_ruby_class<native_class>()); \
128
129
  } \
129
- Value \
130
+ export Value \
130
131
  value (native_class* obj, Value klass) \
131
132
  { \
132
133
  if (!obj) return nil(); \
@@ -137,56 +138,56 @@
137
138
  } \
138
139
  }
139
140
 
140
- #define RUCY_DEFINE_WRAPPER_VALUE_TO(native_class) \
141
+ #define RUCY_DEFINE_WRAPPER_VALUE_TO(export, native_class) \
141
142
  namespace Rucy \
142
143
  { \
143
- template <> native_class* \
144
+ template <> export native_class* \
144
145
  value_to<native_class*> (Value value, bool) \
145
146
  { \
146
147
  return get_type_ptr<native_class>(value, get_ruby_class<native_class>()); \
147
148
  } \
148
- template <> const native_class* \
149
+ template <> export const native_class* \
149
150
  value_to<const native_class*> (Value value, bool convert) \
150
151
  { \
151
152
  return (const native_class*) value_to<native_class*>(value, convert); \
152
153
  } \
153
154
  }
154
155
 
155
- #define RUCY_DECLARE_VALUE_FROM_TO(native_class) \
156
- RUCY_DECLARE_VALUE_FROM(native_class) \
157
- RUCY_DECLARE_VALUE_TO(native_class)
156
+ #define RUCY_DECLARE_VALUE_FROM_TO(export, native_class) \
157
+ RUCY_DECLARE_VALUE_FROM(export, native_class) \
158
+ RUCY_DECLARE_VALUE_TO(export, native_class)
158
159
 
159
- #define RUCY_DEFINE_VALUE_FROM_TO(native_class) \
160
- RUCY_DEFINE_VALUE_FROM(native_class) \
161
- RUCY_DEFINE_VALUE_TO(native_class)
160
+ #define RUCY_DEFINE_VALUE_FROM_TO(export, native_class) \
161
+ RUCY_DEFINE_VALUE_FROM(export, native_class) \
162
+ RUCY_DEFINE_VALUE_TO(export, native_class)
162
163
 
163
- #define RUCY_VALUE_FROM_TO(native_class) \
164
- RUCY_DECLARE_VALUE_FROM_TO(native_class) \
165
- RUCY_DEFINE_VALUE_FROM_TO(native_class)
164
+ #define RUCY_VALUE_FROM_TO(export, native_class) \
165
+ RUCY_DECLARE_VALUE_FROM_TO(export, native_class) \
166
+ RUCY_DEFINE_VALUE_FROM_TO(export, native_class)
166
167
 
167
- #define RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(native_class) \
168
- RUCY_DECLARE_VALUE_FROM(native_class) \
169
- RUCY_DECLARE_VALUE_OR_ARRAY_TO(native_class)
168
+ #define RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(export, native_class) \
169
+ RUCY_DECLARE_VALUE_FROM(export, native_class) \
170
+ RUCY_DECLARE_VALUE_OR_ARRAY_TO(export, native_class)
170
171
 
171
- #define RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(native_class) \
172
- RUCY_DEFINE_VALUE_FROM(native_class) \
173
- RUCY_DEFINE_VALUE_OR_ARRAY_TO(native_class)
172
+ #define RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(export, native_class) \
173
+ RUCY_DEFINE_VALUE_FROM(export, native_class) \
174
+ RUCY_DEFINE_VALUE_OR_ARRAY_TO(export, native_class)
174
175
 
175
- #define RUCY_VALUE_OR_ARRAY_FROM_TO(native_class) \
176
- RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(native_class) \
177
- RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(native_class)
176
+ #define RUCY_VALUE_OR_ARRAY_FROM_TO(export, native_class) \
177
+ RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(export, native_class) \
178
+ RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(export, native_class)
178
179
 
179
- #define RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(native_class) \
180
- RUCY_DECLARE_WRAPPER_VALUE_FROM(native_class) \
181
- RUCY_DECLARE_WRAPPER_VALUE_TO(native_class)
180
+ #define RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(export, native_class) \
181
+ RUCY_DECLARE_WRAPPER_VALUE_FROM(export, native_class) \
182
+ RUCY_DECLARE_WRAPPER_VALUE_TO(export, native_class)
182
183
 
183
- #define RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(native_class) \
184
- RUCY_DEFINE_WRAPPER_VALUE_FROM(native_class) \
185
- RUCY_DEFINE_WRAPPER_VALUE_TO(native_class)
184
+ #define RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(export, native_class) \
185
+ RUCY_DEFINE_WRAPPER_VALUE_FROM(export, native_class) \
186
+ RUCY_DEFINE_WRAPPER_VALUE_TO(export, native_class)
186
187
 
187
- #define RUCY_WRAPPER_VALUE_FROM_TO(native_class) \
188
- RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(native_class) \
189
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(native_class)
188
+ #define RUCY_WRAPPER_VALUE_FROM_TO(export, native_class) \
189
+ RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(export, native_class) \
190
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(export, native_class)
190
191
 
191
192
 
192
193
  #define RUCY_TRY \
data/include/rucy/ruby.h CHANGED
@@ -15,6 +15,10 @@
15
15
  #undef memcpy // avoid defining ruby_nonempty_memcpy
16
16
  #endif
17
17
 
18
+ #ifdef THIS
19
+ #undef THIS // defined by <combaseapi.h>
20
+ #endif
21
+
18
22
 
19
23
  namespace Rucy
20
24
  {
data/include/rucy.h CHANGED
@@ -5,6 +5,7 @@
5
5
 
6
6
 
7
7
  #include <rucy/ruby.h>
8
+ #include <rucy/defs.h>
8
9
  #include <rucy/rucy.h>
9
10
  #include <rucy/exception.h>
10
11
  #include <rucy/debug.h>
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.1'
28
+ s.add_runtime_dependency 'xot', '~> 0.3'
29
29
 
30
30
  s.files = `git ls-files`.split $/
31
31
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rucy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.1
19
+ version: '0.3'
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: 0.2.1
26
+ version: '0.3'
27
27
  description: This library helps you to develop Ruby Extension by C++.
28
28
  email: xordog@gmail.com
29
29
  executables:
@@ -69,6 +69,7 @@ files:
69
69
  - include/rucy.h
70
70
  - include/rucy/class.h
71
71
  - include/rucy/debug.h
72
+ - include/rucy/defs.h
72
73
  - include/rucy/exception.h
73
74
  - include/rucy/extension.h.erb
74
75
  - include/rucy/function.h.erb