rucy 0.1.7 → 0.1.8
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/class.cpp +18 -12
- data/.doc/ext/rucy/struct.cpp +8 -1
- data/README.md +5 -5
- data/VERSION +1 -1
- data/ext/rucy/class.cpp +18 -12
- data/ext/rucy/struct.cpp +8 -1
- data/include/rucy/extension.h.erb +58 -51
- data/include/rucy/ruby.h +2 -0
- data/rucy.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6389e875eb101e6a833bf7fd8e5f3ef7579f381
|
4
|
+
data.tar.gz: 7ff8ff8ee865b36934f2ebdcb67641ed4bf5bdfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 292fb66119c7e65044608dfd84474a561768f41561d7d29ea4eaa4d08fb542039b207f26f19a271462422fb3a6956d293cfedc690b2b7f1e43f92d7316a72c11
|
7
|
+
data.tar.gz: 891da47387483201e047d68ffb53dcdf73e2f06658744c82f70154e66ed1a2eefdeee90f659545723c767a0e668cf6587e15e6a7d5a6e9540558d5e7c200b6be
|
data/.doc/ext/rucy/class.cpp
CHANGED
@@ -9,15 +9,21 @@ using namespace Rucy;
|
|
9
9
|
|
10
10
|
static Class cBase, cSub, cSimpleObj;
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
namespace Rucy
|
13
|
+
{
|
14
|
+
|
15
|
+
template <> inline Class get_ruby_class<Base> () {return cBase;}
|
16
|
+
|
17
|
+
template <> inline Class get_ruby_class<Sub> () {return cSub;}
|
18
|
+
|
19
|
+
template <> inline Class get_ruby_class<SimpleObj> () {return cSimpleObj;}
|
15
20
|
|
16
|
-
|
21
|
+
}// Rucy
|
17
22
|
|
18
|
-
template <> Class get_class<Base> () {return cBase;}
|
19
23
|
|
20
|
-
|
24
|
+
RUCY_WRAPPER_VALUE_FROM_TO(Base)
|
25
|
+
RUCY_WRAPPER_VALUE_FROM_TO(Sub)
|
26
|
+
RUCY_WRAPPER_VALUE_FROM_TO(SimpleObj)
|
21
27
|
|
22
28
|
|
23
29
|
template <typename T>
|
@@ -41,7 +47,7 @@ class RubyBase : public ClassWrapper<T>
|
|
41
47
|
virtual const char* name_overridable_faster () const
|
42
48
|
{
|
43
49
|
RUCY_SYM(name_overridable_faster);
|
44
|
-
if (RUCY_IS_OVERRIDDEN(name_overridable_faster
|
50
|
+
if (RUCY_IS_OVERRIDDEN(name_overridable_faster))
|
45
51
|
return this->value.call(name_overridable_faster).c_str();
|
46
52
|
else
|
47
53
|
return Super::name_overridable_faster();
|
@@ -50,7 +56,7 @@ class RubyBase : public ClassWrapper<T>
|
|
50
56
|
bool is_name_overridable_faster_overridden () const
|
51
57
|
{
|
52
58
|
RUCY_SYM(name_overridable_faster);
|
53
|
-
return RUCY_IS_OVERRIDDEN(name_overridable_faster
|
59
|
+
return RUCY_IS_OVERRIDDEN(name_overridable_faster);
|
54
60
|
}
|
55
61
|
|
56
62
|
};// RubyBase
|
@@ -58,7 +64,7 @@ class RubyBase : public ClassWrapper<T>
|
|
58
64
|
|
59
65
|
#define THIS(type) to<type*>(self)
|
60
66
|
|
61
|
-
#define CHECK(type) RUCY_CHECK_OBJ(type,
|
67
|
+
#define CHECK(type) RUCY_CHECK_OBJ(type, self)
|
62
68
|
|
63
69
|
#define CALL(type, obj, fun) RUCY_WRAPPER_CALL(type, obj, fun)
|
64
70
|
|
@@ -118,14 +124,14 @@ template <typename T>
|
|
118
124
|
static
|
119
125
|
VALUE is_name_overridable_faster_overridden(VALUE self)
|
120
126
|
{
|
121
|
-
RUCY_CHECK_OBJ(T,
|
127
|
+
RUCY_CHECK_OBJ(T, self);
|
122
128
|
RubyBase<T>* obj = dynamic_cast<RubyBase<T>*>(THIS(T));
|
123
129
|
if (!obj) invalid_object_error(__FILE__, __LINE__, "dynamic_cast() failed.");
|
124
130
|
return value(obj->is_name_overridable_faster_overridden());
|
125
131
|
}
|
126
132
|
|
127
|
-
static RUCY_DEF_clear_override_flags(Base_clear_override_flags, Base
|
128
|
-
static RUCY_DEF_clear_override_flags(Sub_clear_override_flags, Sub
|
133
|
+
static RUCY_DEF_clear_override_flags(Base_clear_override_flags, Base);
|
134
|
+
static RUCY_DEF_clear_override_flags(Sub_clear_override_flags, Sub);
|
129
135
|
|
130
136
|
static
|
131
137
|
VALUE base_new_raw(VALUE self)
|
data/.doc/ext/rucy/struct.cpp
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
# Rucy - A Ruby C++ Extension Helper Library
|
3
3
|
|
4
4
|
by snori@xord.org
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
## What is this library?
|
8
8
|
|
9
9
|
This library helps you to develop Ruby C extension library with few useful
|
10
10
|
classes.
|
@@ -13,19 +13,19 @@ classes.
|
|
13
13
|
* Exception safe (Rucy/C++).
|
14
14
|
|
15
15
|
|
16
|
-
|
16
|
+
## How to use
|
17
17
|
|
18
18
|
$ gem install rucy
|
19
19
|
|
20
20
|
write C++ source like ext/rucy/tester.cpp.
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
## Examples
|
24
24
|
|
25
25
|
see ext/rucy/tester.cpp.
|
26
26
|
|
27
27
|
|
28
|
-
|
28
|
+
## Contact information.
|
29
29
|
|
30
30
|
Web: http://blog.xord.org/
|
31
31
|
Mail: snori@xord.org
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.8
|
data/ext/rucy/class.cpp
CHANGED
@@ -9,15 +9,21 @@ using namespace Rucy;
|
|
9
9
|
|
10
10
|
static Class cBase, cSub, cSimpleObj;
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
namespace Rucy
|
13
|
+
{
|
14
|
+
|
15
|
+
template <> inline Class get_ruby_class<Base> () {return cBase;}
|
16
|
+
|
17
|
+
template <> inline Class get_ruby_class<Sub> () {return cSub;}
|
18
|
+
|
19
|
+
template <> inline Class get_ruby_class<SimpleObj> () {return cSimpleObj;}
|
15
20
|
|
16
|
-
|
21
|
+
}// Rucy
|
17
22
|
|
18
|
-
template <> Class get_class<Base> () {return cBase;}
|
19
23
|
|
20
|
-
|
24
|
+
RUCY_WRAPPER_VALUE_FROM_TO(Base)
|
25
|
+
RUCY_WRAPPER_VALUE_FROM_TO(Sub)
|
26
|
+
RUCY_WRAPPER_VALUE_FROM_TO(SimpleObj)
|
21
27
|
|
22
28
|
|
23
29
|
template <typename T>
|
@@ -41,7 +47,7 @@ class RubyBase : public ClassWrapper<T>
|
|
41
47
|
virtual const char* name_overridable_faster () const
|
42
48
|
{
|
43
49
|
RUCY_SYM(name_overridable_faster);
|
44
|
-
if (RUCY_IS_OVERRIDDEN(name_overridable_faster
|
50
|
+
if (RUCY_IS_OVERRIDDEN(name_overridable_faster))
|
45
51
|
return this->value.call(name_overridable_faster).c_str();
|
46
52
|
else
|
47
53
|
return Super::name_overridable_faster();
|
@@ -50,7 +56,7 @@ class RubyBase : public ClassWrapper<T>
|
|
50
56
|
bool is_name_overridable_faster_overridden () const
|
51
57
|
{
|
52
58
|
RUCY_SYM(name_overridable_faster);
|
53
|
-
return RUCY_IS_OVERRIDDEN(name_overridable_faster
|
59
|
+
return RUCY_IS_OVERRIDDEN(name_overridable_faster);
|
54
60
|
}
|
55
61
|
|
56
62
|
};// RubyBase
|
@@ -58,7 +64,7 @@ class RubyBase : public ClassWrapper<T>
|
|
58
64
|
|
59
65
|
#define THIS(type) to<type*>(self)
|
60
66
|
|
61
|
-
#define CHECK(type) RUCY_CHECK_OBJ(type,
|
67
|
+
#define CHECK(type) RUCY_CHECK_OBJ(type, self)
|
62
68
|
|
63
69
|
#define CALL(type, obj, fun) RUCY_WRAPPER_CALL(type, obj, fun)
|
64
70
|
|
@@ -125,15 +131,15 @@ template <typename T>
|
|
125
131
|
static
|
126
132
|
RUCY_DEF0(is_name_overridable_faster_overridden)
|
127
133
|
{
|
128
|
-
RUCY_CHECK_OBJ(T,
|
134
|
+
RUCY_CHECK_OBJ(T, self);
|
129
135
|
RubyBase<T>* obj = dynamic_cast<RubyBase<T>*>(THIS(T));
|
130
136
|
if (!obj) invalid_object_error(__FILE__, __LINE__, "dynamic_cast() failed.");
|
131
137
|
return value(obj->is_name_overridable_faster_overridden());
|
132
138
|
}
|
133
139
|
RUCY_END
|
134
140
|
|
135
|
-
static RUCY_DEF_clear_override_flags(Base_clear_override_flags, Base
|
136
|
-
static RUCY_DEF_clear_override_flags(Sub_clear_override_flags, Sub
|
141
|
+
static RUCY_DEF_clear_override_flags(Base_clear_override_flags, Base);
|
142
|
+
static RUCY_DEF_clear_override_flags(Sub_clear_override_flags, Sub);
|
137
143
|
|
138
144
|
static
|
139
145
|
RUCY_DEF0(base_new_raw)
|
data/ext/rucy/struct.cpp
CHANGED
@@ -28,26 +28,26 @@
|
|
28
28
|
template <> native_class value_to<native_class> (Value value, bool convert); \
|
29
29
|
}
|
30
30
|
|
31
|
-
#define RUCY_DECLARE_WRAPPER_VALUE_FROM(
|
31
|
+
#define RUCY_DECLARE_WRAPPER_VALUE_FROM(native_class) \
|
32
32
|
namespace Rucy \
|
33
33
|
{ \
|
34
|
-
Value value (
|
35
|
-
Value value (
|
34
|
+
Value value (native_class* obj); \
|
35
|
+
Value value (native_class* obj, Value klass); \
|
36
36
|
}
|
37
37
|
|
38
|
-
#define RUCY_DECLARE_WRAPPER_VALUE_TO(
|
38
|
+
#define RUCY_DECLARE_WRAPPER_VALUE_TO(native_class) \
|
39
39
|
namespace Rucy \
|
40
40
|
{ \
|
41
|
-
template <>
|
41
|
+
template <> native_class* value_to<native_class*> (Value value, bool convert); \
|
42
42
|
}
|
43
43
|
|
44
|
-
#define RUCY_DEFINE_VALUE_FROM(native_class
|
44
|
+
#define RUCY_DEFINE_VALUE_FROM(native_class) \
|
45
45
|
namespace Rucy \
|
46
46
|
{ \
|
47
47
|
Value \
|
48
48
|
value (const native_class& obj) \
|
49
49
|
{ \
|
50
|
-
return new_type(
|
50
|
+
return new_type(get_ruby_class<native_class>(), new native_class(obj)); \
|
51
51
|
} \
|
52
52
|
Value \
|
53
53
|
value (const native_class* obj) \
|
@@ -56,13 +56,13 @@
|
|
56
56
|
} \
|
57
57
|
}
|
58
58
|
|
59
|
-
#define RUCY_DEFINE_VALUE_TO(native_class
|
59
|
+
#define RUCY_DEFINE_VALUE_TO(native_class) \
|
60
60
|
namespace Rucy \
|
61
61
|
{ \
|
62
62
|
template <> native_class* \
|
63
63
|
value_to<native_class*> (Value value, bool) \
|
64
64
|
{ \
|
65
|
-
return get_type_ptr<native_class>(value,
|
65
|
+
return get_type_ptr<native_class>(value, get_ruby_class<native_class>()); \
|
66
66
|
} \
|
67
67
|
template <> native_class& \
|
68
68
|
value_to<native_class&> (Value value, bool convert) \
|
@@ -74,32 +74,32 @@
|
|
74
74
|
} \
|
75
75
|
}
|
76
76
|
|
77
|
-
#define RUCY_DEFINE_WRAPPER_VALUE_FROM(
|
77
|
+
#define RUCY_DEFINE_WRAPPER_VALUE_FROM(native_class) \
|
78
78
|
namespace Rucy \
|
79
79
|
{ \
|
80
80
|
Value \
|
81
|
-
value (
|
81
|
+
value (native_class* obj) \
|
82
82
|
{ \
|
83
|
-
return value(obj,
|
83
|
+
return value(obj, get_ruby_class<native_class>()); \
|
84
84
|
} \
|
85
85
|
Value \
|
86
|
-
value (
|
86
|
+
value (native_class* obj, Value klass) \
|
87
87
|
{ \
|
88
88
|
if (!obj) return nil(); \
|
89
|
-
ClassWrapper<
|
89
|
+
ClassWrapper<native_class>* p = dynamic_cast<ClassWrapper<native_class>*>(obj); \
|
90
90
|
if (!p) return new_ref(klass, obj); \
|
91
91
|
if (p->value.is_nil()) p->value = new_wrapper(klass, obj); \
|
92
92
|
return p->value; \
|
93
93
|
} \
|
94
94
|
}
|
95
95
|
|
96
|
-
#define RUCY_DEFINE_WRAPPER_VALUE_TO(
|
96
|
+
#define RUCY_DEFINE_WRAPPER_VALUE_TO(native_class) \
|
97
97
|
namespace Rucy \
|
98
98
|
{ \
|
99
|
-
template <>
|
100
|
-
value_to<
|
99
|
+
template <> native_class* \
|
100
|
+
value_to<native_class*> (Value value, bool convert) \
|
101
101
|
{ \
|
102
|
-
return get_type_ptr<
|
102
|
+
return get_type_ptr<native_class>(value, get_ruby_class<native_class>()); \
|
103
103
|
} \
|
104
104
|
}
|
105
105
|
|
@@ -107,29 +107,29 @@
|
|
107
107
|
RUCY_DECLARE_VALUE_FROM(native_class) \
|
108
108
|
RUCY_DECLARE_VALUE_TO(native_class)
|
109
109
|
|
110
|
-
#define RUCY_DEFINE_VALUE_FROM_TO(native_class
|
111
|
-
RUCY_DEFINE_VALUE_FROM(native_class
|
112
|
-
RUCY_DEFINE_VALUE_TO(native_class
|
110
|
+
#define RUCY_DEFINE_VALUE_FROM_TO(native_class) \
|
111
|
+
RUCY_DEFINE_VALUE_FROM(native_class) \
|
112
|
+
RUCY_DEFINE_VALUE_TO(native_class)
|
113
113
|
|
114
|
-
#define RUCY_VALUE_FROM_TO(native_class
|
114
|
+
#define RUCY_VALUE_FROM_TO(native_class) \
|
115
115
|
RUCY_DECLARE_VALUE_FROM_TO(native_class) \
|
116
|
-
RUCY_DEFINE_VALUE_FROM_TO(native_class
|
116
|
+
RUCY_DEFINE_VALUE_FROM_TO(native_class)
|
117
117
|
|
118
|
-
#define RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(
|
119
|
-
RUCY_DECLARE_WRAPPER_VALUE_FROM(
|
120
|
-
RUCY_DECLARE_WRAPPER_VALUE_TO(
|
118
|
+
#define RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(native_class) \
|
119
|
+
RUCY_DECLARE_WRAPPER_VALUE_FROM(native_class) \
|
120
|
+
RUCY_DECLARE_WRAPPER_VALUE_TO(native_class)
|
121
121
|
|
122
|
-
#define RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(
|
123
|
-
RUCY_DEFINE_WRAPPER_VALUE_FROM(
|
124
|
-
RUCY_DEFINE_WRAPPER_VALUE_TO(
|
122
|
+
#define RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(native_class) \
|
123
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM(native_class) \
|
124
|
+
RUCY_DEFINE_WRAPPER_VALUE_TO(native_class)
|
125
125
|
|
126
|
-
#define RUCY_WRAPPER_VALUE_FROM_TO(
|
127
|
-
RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(
|
128
|
-
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(
|
126
|
+
#define RUCY_WRAPPER_VALUE_FROM_TO(native_class) \
|
127
|
+
RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(native_class) \
|
128
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(native_class)
|
129
129
|
|
130
130
|
|
131
131
|
#define RUCY_OVERRIDE_BEGIN(wrapper_class) \
|
132
|
-
typedef wrapper_class RucyWrapper;
|
132
|
+
typedef wrapper_class RucyWrapper; \
|
133
133
|
typedef RucyWrapper Super; \
|
134
134
|
enum { OVERRIDE_ID_FIRST = RucyWrapper::OVERRIDE_ID_LAST - 1,
|
135
135
|
|
@@ -139,8 +139,8 @@
|
|
139
139
|
#define RUCY_OVERRIDE_ID(name) \
|
140
140
|
OID_##name,
|
141
141
|
|
142
|
-
#define RUCY_IS_OVERRIDDEN(name
|
143
|
-
this->is_overridden(
|
142
|
+
#define RUCY_IS_OVERRIDDEN(name) \
|
143
|
+
this->is_overridden(name, OID_##name)
|
144
144
|
|
145
145
|
|
146
146
|
#define RUCY_TRY \
|
@@ -221,12 +221,12 @@
|
|
221
221
|
RUCY_TRY
|
222
222
|
% end
|
223
223
|
|
224
|
-
#define RUCY_DEF_clear_override_flags(name,
|
224
|
+
#define RUCY_DEF_clear_override_flags(name, native_class) \
|
225
225
|
RUCY_DEF0(name) \
|
226
226
|
{ \
|
227
|
-
RUCY_CHECK_OBJ(
|
228
|
-
ClassWrapper<
|
229
|
-
dynamic_cast<ClassWrapper<
|
227
|
+
RUCY_CHECK_OBJ(native_class, self); \
|
228
|
+
ClassWrapper<native_class>* obj = \
|
229
|
+
dynamic_cast<ClassWrapper<native_class>*>(to<native_class*>(self)); \
|
230
230
|
if (obj) obj->clear_override_flags(); \
|
231
231
|
} \
|
232
232
|
RUCY_END
|
@@ -237,26 +237,25 @@
|
|
237
237
|
}
|
238
238
|
|
239
239
|
|
240
|
-
#define RUCY_CHECK_OBJ(native_class,
|
240
|
+
#define RUCY_CHECK_OBJ(native_class, obj) \
|
241
241
|
do \
|
242
242
|
{ \
|
243
|
-
native_class* p =
|
243
|
+
native_class* p = \
|
244
|
+
Rucy::get_type_ptr<native_class>(obj, Rucy::get_ruby_class<native_class>()); \
|
244
245
|
if (!p) Rucy::invalid_object_error(__FILE__, __LINE__); \
|
245
246
|
} \
|
246
247
|
while(0)
|
247
248
|
|
248
|
-
#define RUCY_CHECK_OBJECT(native_class,
|
249
|
+
#define RUCY_CHECK_OBJECT(native_class, obj) \
|
249
250
|
do \
|
250
251
|
{ \
|
251
|
-
native_class* p = Rucy::get_type_ptr<native_class>(obj,
|
252
|
+
native_class* p = Rucy::get_type_ptr<native_class>(obj, get_ruby_class<native_class>()); \
|
252
253
|
if (!p || !*p) Rucy::invalid_object_error(__FILE__, __LINE__); \
|
253
254
|
} \
|
254
255
|
while(0)
|
255
256
|
|
256
|
-
#define RUCY_WRAPPER_CALL(
|
257
|
-
(
|
258
|
-
? reinterpret_cast<ClassWrapper<wrapped_class>*>(obj)->RucyWrapped::fun \
|
259
|
-
: (obj)->fun)
|
257
|
+
#define RUCY_WRAPPER_CALL(native_class, obj, fun) \
|
258
|
+
((obj)->rucy_wrapped() ? (obj)->native_class::fun : (obj)->fun)
|
260
259
|
|
261
260
|
|
262
261
|
namespace Rucy
|
@@ -272,6 +271,9 @@ namespace Rucy
|
|
272
271
|
int n6 = -1, int n7 = -1, int n8 = -1, int n9 = -1, int n10 = -1);
|
273
272
|
|
274
273
|
|
274
|
+
template <typename T> Class get_ruby_class ();
|
275
|
+
|
276
|
+
|
275
277
|
template <typename T>
|
276
278
|
class ClassWrapper : public T
|
277
279
|
{
|
@@ -316,7 +318,7 @@ namespace Rucy
|
|
316
318
|
override_flags.reset();
|
317
319
|
}
|
318
320
|
|
319
|
-
virtual bool is_overridden (const
|
321
|
+
virtual bool is_overridden (const Symbol& name, uint id) const
|
320
322
|
{
|
321
323
|
if (id <= OVERRIDE_ID_UNKNOWN)
|
322
324
|
return false;
|
@@ -325,13 +327,18 @@ namespace Rucy
|
|
325
327
|
get_override_flag(&checked, &overridden, id);
|
326
328
|
if (checked) return overridden;
|
327
329
|
|
328
|
-
overridden = check_overridden(
|
330
|
+
overridden = check_overridden(name);
|
329
331
|
if (!set_override_flag(id, true, overridden))
|
330
332
|
return false;
|
331
333
|
|
332
334
|
return overridden;
|
333
335
|
}
|
334
336
|
|
337
|
+
virtual bool rucy_wrapped () const
|
338
|
+
{
|
339
|
+
return true;
|
340
|
+
}
|
341
|
+
|
335
342
|
protected:
|
336
343
|
|
337
344
|
enum
|
@@ -359,11 +366,11 @@ namespace Rucy
|
|
359
366
|
|
360
367
|
mutable boost::dynamic_bitset<> override_flags;
|
361
368
|
|
362
|
-
bool check_overridden (const
|
369
|
+
bool check_overridden (const Symbol& name) const
|
363
370
|
{
|
364
371
|
RUCY_SYM(method);
|
365
372
|
RUCY_SYM(owner);
|
366
|
-
return value.call(method, name.value()).call(owner) !=
|
373
|
+
return value.call(method, name.value()).call(owner) != get_ruby_class<RucyWrapped>();
|
367
374
|
}
|
368
375
|
|
369
376
|
void get_override_flag (bool* checked, bool* overridden, uint id) const
|
data/include/rucy/ruby.h
CHANGED
data/rucy.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
s.authors = %w[snori]
|
25
25
|
s.email = 'snori@xord.org'
|
26
|
-
s.homepage = "
|
26
|
+
s.homepage = "https://github.com/xord/spacy/wiki/#{name.capitalize}-Home"
|
27
27
|
|
28
28
|
s.platform = Gem::Platform::RUBY
|
29
29
|
s.required_ruby_version = '>=1.9.0'
|
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: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- snori
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -113,7 +113,7 @@ files:
|
|
113
113
|
- ".doc/ext/rucy/struct.cpp"
|
114
114
|
- ".doc/ext/rucy/tester.cpp"
|
115
115
|
- ".doc/ext/rucy/value.cpp"
|
116
|
-
homepage:
|
116
|
+
homepage: https://github.com/xord/spacy/wiki/Rucy-Home
|
117
117
|
licenses: []
|
118
118
|
metadata: {}
|
119
119
|
post_install_message:
|