rucy 0.2.1 → 0.3

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: 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