tatara 0.2.0 → 0.3.0

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +17 -1
  3. data/.gitignore +1 -0
  4. data/Gemfile +0 -1
  5. data/Gemfile.lock +0 -2
  6. data/Makefile +11 -73
  7. data/README.md +2 -1
  8. data/docs/tatara/float_array.md +65 -0
  9. data/docs/tatara/float_vector.md +64 -0
  10. data/docs/tatara/integer_array.md +64 -0
  11. data/docs/tatara/integer_vector.md +64 -0
  12. data/docs/tatara/string_array.md +64 -0
  13. data/docs/tatara/string_vector.md +64 -0
  14. data/ext/tatara/array/array.hpp +5 -119
  15. data/ext/tatara/array/float/float_array.hpp +132 -0
  16. data/ext/tatara/array/integer/int_array.hpp +132 -0
  17. data/ext/tatara/array/string/string_array.hpp +133 -0
  18. data/ext/tatara/extconf.rb +1 -1
  19. data/ext/tatara/float/float.hpp +148 -0
  20. data/ext/tatara/integer/integer.hpp +164 -0
  21. data/ext/tatara/map/float/float_float_map.hpp +66 -0
  22. data/ext/tatara/map/float/float_int_map.hpp +66 -0
  23. data/ext/tatara/map/float/float_string_map.hpp +67 -0
  24. data/ext/tatara/map/integer/int_float_map.hpp +66 -0
  25. data/ext/tatara/map/integer/int_int_map.hpp +66 -0
  26. data/ext/tatara/map/integer/int_string_map.hpp +67 -0
  27. data/ext/tatara/map/map.hpp +14 -27
  28. data/ext/tatara/map/string/string_float_map.hpp +67 -0
  29. data/ext/tatara/map/string/string_int_map.hpp +67 -0
  30. data/ext/tatara/map/string/string_string_map.hpp +67 -0
  31. data/ext/tatara/string/string.hpp +105 -0
  32. data/ext/tatara/tatara.cpp +245 -244
  33. data/ext/tatara/vector/float/float_vector.hpp +132 -0
  34. data/ext/tatara/vector/integer/int_vector.hpp +132 -0
  35. data/ext/tatara/vector/string/string_vector.hpp +133 -0
  36. data/ext/tatara/vector/vector.hpp +4 -0
  37. data/lib/tatara/array/array.rb +73 -0
  38. data/lib/tatara/vector/vector.rb +77 -0
  39. data/lib/tatara/version.rb +1 -1
  40. data/tatara.gemspec +1 -0
  41. metadata +31 -2
@@ -0,0 +1,67 @@
1
+ #ifndef STRING_FLOAT_MAP_HPP_
2
+ #define STRING_FLOAT_MAP_HPP_
3
+
4
+ #include <ruby.h>
5
+ #include <unordered_map>
6
+ #include <string>
7
+
8
+ class StringFloatMap {
9
+ std::unordered_map<std::string, double> container;
10
+
11
+ public:
12
+ StringFloatMap();
13
+ ~StringFloatMap();
14
+ double bracket(const std::string key);
15
+ double bracket_equal(const std::string key, const double value);
16
+ };
17
+
18
+ StringFloatMap::StringFloatMap() {}
19
+
20
+ StringFloatMap::~StringFloatMap() {}
21
+
22
+ double StringFloatMap::bracket(const std::string key) {
23
+ return this->container[key];
24
+ }
25
+
26
+ double StringFloatMap::bracket_equal(const std::string key, const double value) {
27
+ return this->container[key] = value;
28
+ }
29
+
30
+ static StringFloatMap *getStringFloatMap(VALUE self) {
31
+ StringFloatMap *ptr;
32
+ Data_Get_Struct(self, StringFloatMap, ptr);
33
+ return ptr;
34
+ }
35
+
36
+ static void wrap_string_float_map_free(StringFloatMap *ptr) {
37
+ ptr->~StringFloatMap();
38
+ ruby_xfree(ptr);
39
+ }
40
+
41
+ static VALUE wrap_string_float_map_alloc(VALUE klass) {
42
+ void *p = ruby_xmalloc(sizeof(StringFloatMap));
43
+ p = new StringFloatMap;
44
+ return Data_Wrap_Struct(klass, NULL, wrap_string_float_map_free, p);
45
+ }
46
+
47
+ static VALUE wrap_string_float_map_init(VALUE self) {
48
+ StringFloatMap *p = getStringFloatMap(self);
49
+ p = new StringFloatMap;
50
+ return Qnil;
51
+ }
52
+
53
+ static VALUE wrap_string_float_map_bracket(VALUE self, VALUE key) {
54
+ const std::string k = {StringValueCStr(key)};
55
+ const double value = getStringFloatMap(self)->bracket(k);
56
+ VALUE result = DBL2NUM(value);
57
+ return result;
58
+ }
59
+
60
+ static VALUE wrap_string_float_map_bracket_equal(VALUE self, VALUE key, VALUE value) {
61
+ const std::string k = {StringValueCStr(key)};
62
+ const double v = NUM2DBL(value);
63
+ getStringFloatMap(self)->bracket_equal(k, v);
64
+ return value;
65
+ }
66
+
67
+ #endif
@@ -0,0 +1,67 @@
1
+ #ifndef STRING_INT_MAP_HPP_
2
+ #define STRING_INT_MAP_HPP_
3
+
4
+ #include <ruby.h>
5
+ #include <unordered_map>
6
+ #include <string>
7
+
8
+ class StringIntMap {
9
+ std::unordered_map<std::string, int> container;
10
+
11
+ public:
12
+ StringIntMap();
13
+ ~StringIntMap();
14
+ int bracket(const std::string key);
15
+ int bracket_equal(const std::string key, const int value);
16
+ };
17
+
18
+ StringIntMap::StringIntMap() {}
19
+
20
+ StringIntMap::~StringIntMap() {}
21
+
22
+ int StringIntMap::bracket(const std::string key) {
23
+ return this->container[key];
24
+ }
25
+
26
+ int StringIntMap::bracket_equal(const std::string key, const int value) {
27
+ return this->container[key] = value;
28
+ }
29
+
30
+ static StringIntMap *getStringIntMap(VALUE self) {
31
+ StringIntMap *ptr;
32
+ Data_Get_Struct(self, StringIntMap, ptr);
33
+ return ptr;
34
+ }
35
+
36
+ static void wrap_string_int_map_free(StringIntMap *ptr) {
37
+ ptr->~StringIntMap();
38
+ ruby_xfree(ptr);
39
+ }
40
+
41
+ static VALUE wrap_string_int_map_alloc(VALUE klass) {
42
+ void *p = ruby_xmalloc(sizeof(StringIntMap));
43
+ p = new StringIntMap;
44
+ return Data_Wrap_Struct(klass, NULL, wrap_string_int_map_free, p);
45
+ }
46
+
47
+ static VALUE wrap_string_int_map_init(VALUE self) {
48
+ StringIntMap *p = getStringIntMap(self);
49
+ p = new StringIntMap;
50
+ return Qnil;
51
+ }
52
+
53
+ static VALUE wrap_string_int_map_bracket(VALUE self, VALUE key) {
54
+ const std::string k = {StringValueCStr(key)};
55
+ const int value = getStringIntMap(self)->bracket(k);
56
+ VALUE result = INT2NUM(value);
57
+ return result;
58
+ }
59
+
60
+ static VALUE wrap_string_int_map_bracket_equal(VALUE self, VALUE key, VALUE value) {
61
+ const std::string k = {StringValueCStr(key)};
62
+ const int v = NUM2INT(value);
63
+ getStringIntMap(self)->bracket_equal(k, v);
64
+ return value;
65
+ }
66
+
67
+ #endif
@@ -0,0 +1,67 @@
1
+ #ifndef STRING_STRING_MAP_HPP_
2
+ #define STRING_STRING_MAP_HPP_
3
+
4
+ #include <ruby.h>
5
+ #include <unordered_map>
6
+ #include <string>
7
+
8
+ class StringStringMap {
9
+ std::unordered_map<std::string, std::string> container;
10
+
11
+ public:
12
+ StringStringMap();
13
+ ~StringStringMap();
14
+ std::string bracket(const std::string key);
15
+ std::string bracket_equal(const std::string key, const std::string value);
16
+ };
17
+
18
+ StringStringMap::StringStringMap() {}
19
+
20
+ StringStringMap::~StringStringMap() {}
21
+
22
+ std::string StringStringMap::bracket(const std::string key) {
23
+ return this->container[key];
24
+ }
25
+
26
+ std::string StringStringMap::bracket_equal(const std::string key, const std::string value) {
27
+ return this->container[key] = value;
28
+ }
29
+
30
+ static StringStringMap *getStringStringMap(VALUE self) {
31
+ StringStringMap *ptr;
32
+ Data_Get_Struct(self, StringStringMap, ptr);
33
+ return ptr;
34
+ }
35
+
36
+ static void wrap_string_string_map_free(StringStringMap *ptr) {
37
+ ptr->~StringStringMap();
38
+ ruby_xfree(ptr);
39
+ }
40
+
41
+ static VALUE wrap_string_string_map_alloc(VALUE klass) {
42
+ void *p = ruby_xmalloc(sizeof(StringStringMap));
43
+ p = new StringStringMap;
44
+ return Data_Wrap_Struct(klass, NULL, wrap_string_string_map_free, p);
45
+ }
46
+
47
+ static VALUE wrap_string_string_map_init(VALUE self) {
48
+ StringStringMap *p = getStringStringMap(self);
49
+ p = new StringStringMap;
50
+ return Qnil;
51
+ }
52
+
53
+ static VALUE wrap_string_string_map_bracket(VALUE self, VALUE key) {
54
+ const std::string k = {StringValueCStr(key)};
55
+ const std::string value = getStringStringMap(self)->bracket(k);
56
+ VALUE result = rb_str_new(value.c_str(), value.size());
57
+ return result;
58
+ }
59
+
60
+ static VALUE wrap_string_string_map_bracket_equal(VALUE self, VALUE key, VALUE value) {
61
+ const std::string k = {StringValueCStr(key)};
62
+ const std::string v = {StringValueCStr(value)};
63
+ getStringStringMap(self)->bracket_equal(k, v);
64
+ return value;
65
+ }
66
+
67
+ #endif
@@ -1,6 +1,8 @@
1
1
  #ifndef STRING_H_
2
2
  #define STRING_H_
3
3
 
4
+ #include <ruby.h>
5
+ #include <iostream>
4
6
  #include <string>
5
7
 
6
8
  class CppString {
@@ -72,4 +74,107 @@ std::string CppString::slice_des(const int start, const int end) {
72
74
  return this->value;
73
75
  }
74
76
 
77
+ static CppString *getCppString(VALUE self) {
78
+ CppString *ptr;
79
+ Data_Get_Struct(self, CppString, ptr);
80
+ return ptr;
81
+ }
82
+
83
+ static void wrap_string_free(CppString *ptr) {
84
+ ptr->~CppString();
85
+ ruby_xfree(ptr);
86
+ }
87
+
88
+ static VALUE wrap_string_alloc(VALUE klass) {
89
+ void *p = ruby_xmalloc(sizeof(CppString));
90
+ p = new CppString;
91
+ return Data_Wrap_Struct(klass, NULL, wrap_string_free, p);
92
+ }
93
+
94
+ static VALUE wrap_string_init(VALUE self) {
95
+ CppString *p = getCppString(self);
96
+ p = new CppString;
97
+ return Qnil;
98
+ }
99
+
100
+ static VALUE wrap_string_return_value(VALUE self) {
101
+ const std::string value = getCppString(self)->return_value();
102
+ VALUE result = rb_str_new(value.c_str(), value.size());
103
+ return result;
104
+ }
105
+
106
+ static VALUE wrap_string_assignment(VALUE self, VALUE value) {
107
+ const std::string v = {StringValueCStr(value)};
108
+ getCppString(self)->assignment(v);
109
+ return value;
110
+ }
111
+
112
+ static VALUE wrap_string_plus_equal(VALUE self, VALUE value) {
113
+ const std::string v = {StringValueCStr(value)};
114
+ const std::string r = getCppString(self)->plus_equal(v);
115
+ VALUE result = rb_str_new(v.c_str(), v.size());
116
+ return result;
117
+ }
118
+
119
+ static VALUE wrap_string_to_integer(VALUE self) {
120
+ try {
121
+ const int value = getCppString(self)->to_integer();
122
+ VALUE result = INT2NUM(value);
123
+ return result;
124
+ } catch (...) {
125
+ std::cout << "Cannot Convert Integer!" << std::endl;
126
+ }
127
+ }
128
+
129
+ static VALUE wrap_string_to_float(VALUE self) {
130
+ try {
131
+ const double value = getCppString(self)->to_float();
132
+ VALUE result = DBL2NUM(value);
133
+ return result;
134
+ } catch (...) {
135
+ std::cout << "Cannot Convert Float!" << std::endl;
136
+ }
137
+ }
138
+
139
+ static VALUE wrap_string_clear(VALUE self) {
140
+ const std::string value = getCppString(self)->clear();
141
+ VALUE result = rb_str_new(value.c_str(), value.size());
142
+ return result;
143
+ }
144
+
145
+ static VALUE wrap_string_equal(VALUE self, VALUE value) {
146
+ const std::string v = {StringValueCStr(value)};
147
+ bool eval = getCppString(self)->equal(v);
148
+ return eval ? Qtrue : Qfalse;
149
+ }
150
+
151
+ static VALUE wrap_string_initialize_object(VALUE self, VALUE value) {
152
+ const std::string v = {StringValueCStr(value)};
153
+ getCppString(self)->initialize_object(v);
154
+ return self;
155
+ }
156
+
157
+ static VALUE wrap_string_index_access(VALUE self, VALUE index) {
158
+ const int i = NUM2INT(index);
159
+ const std::string value = getCppString(self)->index_access(i);
160
+ VALUE result = rb_str_new(value.c_str(), value.size());
161
+ return result;
162
+ }
163
+
164
+ static VALUE wrap_string_slice(VALUE self, VALUE start, VALUE end) {
165
+ const int s = NUM2INT(start);
166
+ const int e = NUM2INT(end);
167
+ const std::string value = getCppString(self)->slice(s, e);
168
+ VALUE result = rb_str_new(value.c_str(), value.size());
169
+ return result;
170
+ }
171
+
172
+ static VALUE wrap_string_destructive_slice(VALUE self, VALUE start, VALUE end) {
173
+ const int s = NUM2INT(start);
174
+ const int e = NUM2INT(end);
175
+ const std::string value = getCppString(self)->slice_des(s, e);
176
+ VALUE result = rb_str_new(value.c_str(), value.size());
177
+ return result;
178
+ }
179
+
75
180
  #endif
@@ -1,6 +1,4 @@
1
1
  #include <string>
2
- #include <rice/Data_Type.hpp>
3
- #include <rice/Constructor.hpp>
4
2
  #include "vector/vector.hpp"
5
3
  #include "array/array.hpp"
6
4
  #include "map/map.hpp"
@@ -8,249 +6,252 @@
8
6
  #include "float/float.hpp"
9
7
  #include "string/string.hpp"
10
8
 
11
- using namespace Rice;
12
-
13
9
  extern "C" {
14
10
  void Init_tatara() {
15
- Rice::Module rb_mTatara = define_module("Tatara");
16
-
17
- Data_Type<Integer> rbcInteger = define_class_under<Integer>(rb_mTatara, "Integer")
18
- .define_constructor(Constructor<Integer>())
19
- .define_method("value", &Integer::return_value)
20
- .define_method("val", &Integer::return_value)
21
- .define_method("value=", &Integer::assignment)
22
- .define_method("val=", &Integer::assignment)
23
- .define_method("value+", &Integer::plus)
24
- .define_method("val+", &Integer::plus)
25
- .define_method("value+=", &Integer::plus_equal)
26
- .define_method("val+=", &Integer::plus_equal)
27
- .define_method("value-", &Integer::minus)
28
- .define_method("val-", &Integer::minus)
29
- .define_method("value-=", &Integer::minus_equal)
30
- .define_method("val-=", &Integer::minus_equal)
31
- .define_method("value/", &Integer::divided)
32
- .define_method("val/", &Integer::divided)
33
- .define_method("value/=", &Integer::divided_equal)
34
- .define_method("val/=", &Integer::divided_equal)
35
- .define_method("value*", &Integer::multiply)
36
- .define_method("val*", &Integer::multiply)
37
- .define_method("value*=", &Integer::multiply_equal)
38
- .define_method("val*=", &Integer::multiply_equal)
39
- .define_method("value%", &Integer::mod)
40
- .define_method("value%=", &Integer::mod_equal)
41
- .define_method("value**", &Integer::power)
42
- .define_method("val**", &Integer::power)
43
- .define_method("value**=", &Integer::power_equal)
44
- .define_method("val**=", &Integer::power_equal)
45
- .define_method("inc", &Integer::increment_value)
46
- .define_method("increment", &Integer::increment_value)
47
- .define_method("dec", &Integer::decrement_value)
48
- .define_method("decrement", &Integer::decrement_value)
49
- .define_method("to_s", &Integer::to_string)
50
- .define_method("to_f", &Integer::to_float)
51
- .define_method("clear", &Integer::clear)
52
- .define_method("value==", &Integer::equal)
53
- .define_method("val==", &Integer::equal)
54
- .define_method("equal?", &Integer::equal)
55
- .define_method("<<", &Integer::initialize_object);
56
-
57
- Data_Type<Float> rbcFloat = define_class_under<Float>(rb_mTatara, "Float")
58
- .define_constructor(Constructor<Float>())
59
- .define_method("value", &Float::return_value)
60
- .define_method("val", &Float::return_value)
61
- .define_method("value=", &Float::assignment)
62
- .define_method("val=", &Float::assignment)
63
- .define_method("value+", &Float::plus)
64
- .define_method("val+", &Float::plus)
65
- .define_method("value+=", &Float::plus_equal)
66
- .define_method("val+=", &Float::plus_equal)
67
- .define_method("value-", &Float::minus)
68
- .define_method("val-", &Float::minus)
69
- .define_method("value-=", &Float::minus_equal)
70
- .define_method("val-=", &Float::minus_equal)
71
- .define_method("value*", &Float::multiply)
72
- .define_method("val*", &Float::multiply)
73
- .define_method("value*=", &Float::multiply_equal)
74
- .define_method("val*=", &Float::multiply_equal)
75
- .define_method("value/", &Float::divided)
76
- .define_method("val/", &Float::divided)
77
- .define_method("value/=", &Float::divided_equal)
78
- .define_method("val/=", &Float::divided_equal)
79
- .define_method("value**", &Float::power)
80
- .define_method("val**", &Float::power)
81
- .define_method("value**=", &Float::power_equal)
82
- .define_method("val**=", &Float::power_equal)
83
- .define_method("inc", &Float::increment_value)
84
- .define_method("dec", &Float::decrement_value)
85
- .define_method("to_s", &Float::to_string)
86
- .define_method("to_i", &Float::to_integer)
87
- .define_method("clear", &Float::clear)
88
- .define_method("value==", &Float::equal)
89
- .define_method("val==", &Float::equal)
90
- .define_method("equal?", &Float::equal)
91
- .define_method("<<", &Float::initialize_object);
92
-
93
- Data_Type<CppString> rbcString = define_class_under<CppString>(rb_mTatara, "String")
94
- .define_constructor(Constructor<CppString>())
95
- .define_method("value", &CppString::return_value)
96
- .define_method("val", &CppString::return_value)
97
- .define_method("value=", &CppString::assignment)
98
- .define_method("val=", &CppString::assignment)
99
- .define_method("value+=", &CppString::plus_equal)
100
- .define_method("val+=", &CppString::plus_equal)
101
- .define_method("to_i", &CppString::to_integer)
102
- .define_method("to_f", &CppString::to_float)
103
- .define_method("clear", &CppString::clear)
104
- .define_method("value==", &CppString::equal)
105
- .define_method("val==", &CppString::equal)
106
- .define_method("equal?", &CppString::equal)
107
- .define_method("<<", &CppString::initialize_object)
108
- .define_method("[]", &CppString::index_access)
109
- .define_method("slice", &CppString::slice)
110
- .define_method("slice!", &CppString::slice_des);
111
-
112
- Data_Type<Vector<int>> rb_cIntVector = define_class_under<Vector<int>>(rb_mTatara, "IntVector")
113
- .define_constructor(Constructor<Vector<int>>())
114
- .define_method("first", &Vector<int>::first)
115
- .define_method("last", &Vector<int>::last)
116
- .define_method("[]", &Vector<int>::bracket)
117
- .define_method("[]=", &Vector<int>::bracket_equal)
118
- .define_method("emplace_back", &Vector<int>::emplace_back)
119
- .define_method("size", &Vector<int>::size)
120
- .define_method("clear", &Vector<int>::clear)
121
- .define_method("sum", &Vector<int>::sum)
122
- .define_method("<<", &Vector<int>::push_back_object)
123
- .define_method("intersection", &Vector<int>::intersection)
124
- .define_method("sort", &Vector<int>::sort)
125
- .define_method("sort!", &Vector<int>::destructive_sort)
126
- .define_method("reverse", &Vector<int>::reverse)
127
- .define_method("reverse!", &Vector<int>::destructive_reverse);
128
-
129
- Data_Type<Vector<double>> rb_cFloatVector = define_class_under<Vector<double>>(rb_mTatara, "FloatVector")
130
- .define_constructor(Constructor<Vector<double>>())
131
- .define_method("first", &Vector<double>::first)
132
- .define_method("last", &Vector<double>::last)
133
- .define_method("[]", &Vector<double>::bracket)
134
- .define_method("[]=", &Vector<double>::bracket_equal)
135
- .define_method("emplace_back", &Vector<double>::emplace_back)
136
- .define_method("size", &Vector<double>::size)
137
- .define_method("clear", &Vector<double>::clear)
138
- .define_method("sum", &Vector<double>::sum)
139
- .define_method("<<", &Vector<double>::push_back_object)
140
- .define_method("intersection", &Vector<double>::intersection)
141
- .define_method("sort", &Vector<double>::sort)
142
- .define_method("sort!", &Vector<double>::destructive_sort)
143
- .define_method("reverse", &Vector<double>::reverse)
144
- .define_method("reverse!", &Vector<double>::destructive_reverse);
145
-
146
- Data_Type<Vector<std::string>> rb_cStringVector = define_class_under<Vector<std::string>>(rb_mTatara, "StringVector")
147
- .define_constructor(Constructor<Vector<std::string>>())
148
- .define_method("first", &Vector<std::string>::first)
149
- .define_method("last", &Vector<std::string>::last)
150
- .define_method("[]", &Vector<std::string>::bracket)
151
- .define_method("[]=", &Vector<std::string>::bracket_equal)
152
- .define_method("emplace_back", & Vector<std::string>::emplace_back)
153
- .define_method("size", &Vector<std::string>::size)
154
- .define_method("clear", &Vector<std::string>::clear)
155
- .define_method("sum", &Vector<std::string>::sum)
156
- .define_method("<<", &Vector<std::string>::push_back_object)
157
- .define_method("intersection", &Vector<std::string>::intersection)
158
- .define_method("sort", &Vector<std::string>::sort)
159
- .define_method("sort!", &Vector<std::string>::destructive_sort)
160
- .define_method("reverse", &Vector<std::string>::reverse)
161
- .define_method("reverse!", &Vector<std::string>::destructive_reverse);
162
-
163
- Data_Type<CppArray<int>> rb_cIntArray = define_class_under<CppArray<int>>(rb_mTatara, "IntArray")
164
- .define_constructor(Constructor<CppArray<int>>())
165
- .define_method("first", &CppArray<int>::first)
166
- .define_method("last", &CppArray<int>::last)
167
- .define_method("[]", &CppArray<int>::bracket)
168
- .define_method("[]=", &CppArray<int>::bracket_equal)
169
- .define_method("push", &CppArray<int>::emplace_back)
170
- .define_method("size", &CppArray<int>::size)
171
- .define_method("clear", &CppArray<int>::clear)
172
- .define_method("<<", &CppArray<int>::push_back_object)
173
- .define_method("intersection", &CppArray<int>::intersection)
174
- .define_method("sort", &CppArray<int>::sort)
175
- .define_method("sort!", &CppArray<int>::destructive_sort)
176
- .define_method("reverse", &CppArray<int>::reverse)
177
- .define_method("reverse!", &CppArray<int>::destructive_reverse);
178
-
179
- Data_Type<CppArray<double>> rb_cFloatArray = define_class_under<CppArray<double>>(rb_mTatara, "FloatArray")
180
- .define_constructor(Constructor<CppArray<double>>())
181
- .define_method("first", &CppArray<double>::first)
182
- .define_method("last", &CppArray<double>::last)
183
- .define_method("[]", &CppArray<double>::bracket)
184
- .define_method("[]=", &CppArray<double>::bracket_equal)
185
- .define_method("push", &CppArray<double>::emplace_back)
186
- .define_method("size", &CppArray<double>::size)
187
- .define_method("clear", &CppArray<double>::clear)
188
- .define_method("<<", &CppArray<double>::push_back_object)
189
- .define_method("intersection", &CppArray<double>::intersection)
190
- .define_method("sort", &CppArray<double>::sort)
191
- .define_method("sort!", &CppArray<double>::destructive_sort)
192
- .define_method("reverse", &CppArray<double>::reverse)
193
- .define_method("reverse!", &CppArray<double>::destructive_reverse);
194
-
195
- Data_Type<CppArray<std::string>> rb_cStringArray = define_class_under<CppArray<std::string>>(rb_mTatara, "StringArray")
196
- .define_constructor(Constructor<CppArray<std::string>>())
197
- .define_method("first", &CppArray<std::string>::first)
198
- .define_method("last", &CppArray<std::string>::last)
199
- .define_method("[]", &CppArray<std::string>::bracket)
200
- .define_method("[]=", &CppArray<std::string>::bracket_equal)
201
- .define_method("push", &CppArray<std::string>::emplace_back)
202
- .define_method("size", &CppArray<std::string>::size)
203
- .define_method("clear", &CppArray<std::string>::clear)
204
- .define_method("<<", &CppArray<std::string>::push_back_object)
205
- .define_method("intersection", &CppArray<std::string>::intersection)
206
- .define_method("sort", &CppArray<std::string>::sort)
207
- .define_method("sort!", &CppArray<std::string>::destructive_sort)
208
- .define_method("reverse", &CppArray<std::string>::reverse)
209
- .define_method("reverse!", &CppArray<std::string>::destructive_reverse);
210
-
211
- Data_Type<Map<std::string, int>> rb_cStringIntMap = define_class_under<Map<std::string, int>>(rb_mTatara, "StringIntMap")
212
- .define_constructor(Constructor<Map<std::string, int>>())
213
- .define_method("[]", &Map<std::string, int>::bracket)
214
- .define_method("[]=", &Map<std::string, int>::bracket_equal);
215
-
216
- Data_Type<Map<std::string, double>> rb_cStringFloatMap = define_class_under<Map<std::string, double>>(rb_mTatara, "StringFloatMap")
217
- .define_constructor(Constructor<Map<std::string, double>>())
218
- .define_method("[]", &Map<std::string, double>::bracket)
219
- .define_method("[]=", &Map<std::string, double>::bracket_equal);
220
-
221
- Data_Type<Map<std::string, std::string>> rb_cStringStringMap = define_class_under<Map<std::string, std::string>>(rb_mTatara, "StringStringMap")
222
- .define_constructor(Constructor<Map<std::string, std::string>>())
223
- .define_method("[]", &Map<std::string, std::string>::bracket)
224
- .define_method("[]=", &Map<std::string, std::string>::bracket_equal);
225
-
226
- Data_Type<Map<int, int>> rb_cIntIntMap = define_class_under<Map<int, int>>(rb_mTatara, "IntIntMap")
227
- .define_constructor(Constructor<Map<int, int>>())
228
- .define_method("[]", &Map<int, int>::bracket)
229
- .define_method("[]=", &Map<int, int>::bracket_equal);
230
-
231
- Data_Type<Map<int, double>> rb_cIntFloatMap = define_class_under<Map<int, double>>(rb_mTatara, "IntFloatMap")
232
- .define_constructor(Constructor<Map<int, double>>())
233
- .define_method("[]", &Map<int, double>::bracket)
234
- .define_method("[]=", &Map<int, double>::bracket_equal);
235
-
236
- Data_Type<Map<int, std::string>> rb_cIntStringMap = define_class_under<Map<int, std::string>>(rb_mTatara, "IntStringMap")
237
- .define_constructor(Constructor<Map<int, std::string>>())
238
- .define_method("[]", &Map<int, std::string>::bracket)
239
- .define_method("[]=", &Map<int, std::string>::bracket_equal);
240
-
241
- Data_Type<Map<double, int>> rb_cFloatIntMap = define_class_under<Map<double, int>>(rb_mTatara, "FloatIntMap")
242
- .define_constructor(Constructor<Map<double, int>>())
243
- .define_method("[]", &Map<double, int>::bracket)
244
- .define_method("[]=", &Map<double, int>::bracket_equal);
245
-
246
- Data_Type<Map<double, double>> rb_cFloatFloatMap = define_class_under<Map<double, double>>(rb_mTatara, "FloatFloatMap")
247
- .define_constructor(Constructor<Map<double, double>>())
248
- .define_method("[]", &Map<double, double>::bracket)
249
- .define_method("[]=", &Map<double, double>::bracket_equal);
250
-
251
- Data_Type<Map<double, std::string>> rb_cFloatStringMap = define_class_under<Map<double, std::string>>(rb_mTatara, "FloatStringMap")
252
- .define_constructor(Constructor<Map<double, std::string>>())
253
- .define_method("[]", &Map<double, std::string>::bracket)
254
- .define_method("[]=", &Map<double, std::string>::bracket_equal);
11
+ VALUE mTatara = rb_define_module("Tatara");
12
+
13
+ VALUE rb_cInteger = rb_define_class_under(mTatara, "Integer", rb_cObject);
14
+
15
+ rb_define_alloc_func(rb_cInteger, wrap_int_alloc);
16
+ rb_define_private_method(rb_cInteger, "initialize", RUBY_METHOD_FUNC(wrap_int_init), 0);
17
+ rb_define_method(rb_cInteger, "value", RUBY_METHOD_FUNC(wrap_int_return_value), 0);
18
+ rb_define_method(rb_cInteger, "val", RUBY_METHOD_FUNC(wrap_int_return_value), 0);
19
+ rb_define_method(rb_cInteger, "value=", RUBY_METHOD_FUNC(wrap_int_assignment), 1);
20
+ rb_define_method(rb_cInteger, "val=", RUBY_METHOD_FUNC(wrap_int_assignment), 1);
21
+ rb_define_method(rb_cInteger, "value+", RUBY_METHOD_FUNC(wrap_int_plus), 1);
22
+ rb_define_method(rb_cInteger, "val+", RUBY_METHOD_FUNC(wrap_int_plus), 1);
23
+ rb_define_method(rb_cInteger, "value+=", RUBY_METHOD_FUNC(wrap_int_plus_equal), 1);
24
+ rb_define_method(rb_cInteger, "val+=", RUBY_METHOD_FUNC(wrap_int_plus_equal), 1);
25
+ rb_define_method(rb_cInteger, "value-", RUBY_METHOD_FUNC(wrap_int_minus), 1);
26
+ rb_define_method(rb_cInteger, "val-", RUBY_METHOD_FUNC(wrap_int_minus), 1);
27
+ rb_define_method(rb_cInteger, "value-=", RUBY_METHOD_FUNC(wrap_int_minus_equal), 1);
28
+ rb_define_method(rb_cInteger, "val-=", RUBY_METHOD_FUNC(wrap_int_minus_equal), 1);
29
+ rb_define_method(rb_cInteger, "value/", RUBY_METHOD_FUNC(wrap_int_divided), 1);
30
+ rb_define_method(rb_cInteger, "val/", RUBY_METHOD_FUNC(wrap_int_divided), 1);
31
+ rb_define_method(rb_cInteger, "value/=", RUBY_METHOD_FUNC(wrap_int_divided_equal), 1);
32
+ rb_define_method(rb_cInteger, "val/=", RUBY_METHOD_FUNC(wrap_int_divided_equal), 1);
33
+ rb_define_method(rb_cInteger, "value*", RUBY_METHOD_FUNC(wrap_int_multiply), 1);
34
+ rb_define_method(rb_cInteger, "val*", RUBY_METHOD_FUNC(wrap_int_multiply), 1);
35
+ rb_define_method(rb_cInteger, "value*=", RUBY_METHOD_FUNC(wrap_int_multiply_equal), 1);
36
+ rb_define_method(rb_cInteger, "val*=", RUBY_METHOD_FUNC(wrap_int_multiply_equal), 1);
37
+ rb_define_method(rb_cInteger, "value%", RUBY_METHOD_FUNC(wrap_int_mod), 1);
38
+ rb_define_method(rb_cInteger, "val%", RUBY_METHOD_FUNC(wrap_int_mod), 1);
39
+ rb_define_method(rb_cInteger, "value%=", RUBY_METHOD_FUNC(wrap_int_mod_equal), 1);
40
+ rb_define_method(rb_cInteger, "val%=", RUBY_METHOD_FUNC(wrap_int_mod_equal), 1);
41
+ rb_define_method(rb_cInteger, "value**", RUBY_METHOD_FUNC(wrap_int_power), 1);
42
+ rb_define_method(rb_cInteger, "val**", RUBY_METHOD_FUNC(wrap_int_power), 1);
43
+ rb_define_method(rb_cInteger, "value**=", RUBY_METHOD_FUNC(wrap_int_power_equal), 1);
44
+ rb_define_method(rb_cInteger, "val**=", RUBY_METHOD_FUNC(wrap_int_power_equal), 1);
45
+ rb_define_method(rb_cInteger, "inc", RUBY_METHOD_FUNC(wrap_int_increment_value), 0);
46
+ rb_define_method(rb_cInteger, "increment", RUBY_METHOD_FUNC(wrap_int_increment_value), 0);
47
+ rb_define_method(rb_cInteger, "dec", RUBY_METHOD_FUNC(wrap_int_decrement_value), 0);
48
+ rb_define_method(rb_cInteger, "decrement", RUBY_METHOD_FUNC(wrap_int_decrement_value), 0);
49
+ rb_define_method(rb_cInteger, "to_s", RUBY_METHOD_FUNC(wrap_int_to_string), 0);
50
+ rb_define_method(rb_cInteger, "to_f", RUBY_METHOD_FUNC(wrap_int_to_float), 0);
51
+ rb_define_method(rb_cInteger, "clear", RUBY_METHOD_FUNC(wrap_int_clear), 0);
52
+ rb_define_method(rb_cInteger, "value==", RUBY_METHOD_FUNC(wrap_int_equal), 1);
53
+ rb_define_method(rb_cInteger, "val==", RUBY_METHOD_FUNC(wrap_int_equal), 1);
54
+ rb_define_method(rb_cInteger, "equal?", RUBY_METHOD_FUNC(wrap_int_equal), 1);
55
+ rb_define_method(rb_cInteger, "<<", RUBY_METHOD_FUNC(wrap_int_initialize_object), 1);
56
+
57
+ VALUE rb_cFloat = rb_define_class_under(mTatara, "Float", rb_cObject);
58
+
59
+ rb_define_alloc_func(rb_cFloat, wrap_float_alloc);
60
+ rb_define_private_method(rb_cFloat, "initialize", RUBY_METHOD_FUNC(wrap_float_init), 0);
61
+ rb_define_method(rb_cFloat, "value", RUBY_METHOD_FUNC(wrap_float_return_value), 0);
62
+ rb_define_method(rb_cFloat, "val", RUBY_METHOD_FUNC(wrap_float_return_value), 0);
63
+ rb_define_method(rb_cFloat, "value=", RUBY_METHOD_FUNC(wrap_float_assignment), 1);
64
+ rb_define_method(rb_cFloat, "val=", RUBY_METHOD_FUNC(wrap_float_assignment), 1);
65
+ rb_define_method(rb_cFloat, "value+", RUBY_METHOD_FUNC(wrap_float_plus), 1);
66
+ rb_define_method(rb_cFloat, "val+", RUBY_METHOD_FUNC(wrap_float_plus), 1);
67
+ rb_define_method(rb_cFloat, "value+=", RUBY_METHOD_FUNC(wrap_float_plus_equal), 1);
68
+ rb_define_method(rb_cFloat, "val+=", RUBY_METHOD_FUNC(wrap_float_plus_equal), 1);
69
+ rb_define_method(rb_cFloat, "value-", RUBY_METHOD_FUNC(wrap_float_minus), 1);
70
+ rb_define_method(rb_cFloat, "val-", RUBY_METHOD_FUNC(wrap_float_minus), 1);
71
+ rb_define_method(rb_cFloat, "value-=", RUBY_METHOD_FUNC(wrap_float_minus_equal), 1);
72
+ rb_define_method(rb_cFloat, "val-=", RUBY_METHOD_FUNC(wrap_float_minus_equal), 1);
73
+ rb_define_method(rb_cFloat, "value*", RUBY_METHOD_FUNC(wrap_float_multiply), 1);
74
+ rb_define_method(rb_cFloat, "val*", RUBY_METHOD_FUNC(wrap_float_multiply), 1);
75
+ rb_define_method(rb_cFloat, "value*=", RUBY_METHOD_FUNC(wrap_float_multiply_equal), 1);
76
+ rb_define_method(rb_cFloat, "val*=", RUBY_METHOD_FUNC(wrap_float_multiply_equal), 1);
77
+ rb_define_method(rb_cFloat, "value/", RUBY_METHOD_FUNC(wrap_float_divided), 1);
78
+ rb_define_method(rb_cFloat, "val/", RUBY_METHOD_FUNC(wrap_float_divided), 1);
79
+ rb_define_method(rb_cFloat, "value/=", RUBY_METHOD_FUNC(wrap_float_divided_equal), 1);
80
+ rb_define_method(rb_cFloat, "val/=", RUBY_METHOD_FUNC(wrap_float_divided_equal), 1);
81
+ rb_define_method(rb_cFloat, "value**", RUBY_METHOD_FUNC(wrap_float_power), 1);
82
+ rb_define_method(rb_cFloat, "val**", RUBY_METHOD_FUNC(wrap_float_power), 1);
83
+ rb_define_method(rb_cFloat, "value**=", RUBY_METHOD_FUNC(wrap_float_power_equal), 1);
84
+ rb_define_method(rb_cFloat, "val**=", RUBY_METHOD_FUNC(wrap_float_power_equal), 1);
85
+ rb_define_method(rb_cFloat, "inc", RUBY_METHOD_FUNC(wrap_float_increment_value), 0);
86
+ rb_define_method(rb_cFloat, "dec", RUBY_METHOD_FUNC(wrap_float_decrement_value), 0);
87
+ rb_define_method(rb_cFloat, "to_s", RUBY_METHOD_FUNC(wrap_float_to_string), 0);
88
+ rb_define_method(rb_cFloat, "to_i", RUBY_METHOD_FUNC(wrap_float_to_integer), 0);
89
+ rb_define_method(rb_cFloat, "clear", RUBY_METHOD_FUNC(wrap_float_clear), 0);
90
+ rb_define_method(rb_cFloat, "value==", RUBY_METHOD_FUNC(wrap_float_equal), 1);
91
+ rb_define_method(rb_cFloat, "val==", RUBY_METHOD_FUNC(wrap_float_equal), 1);
92
+ rb_define_method(rb_cFloat, "equal?", RUBY_METHOD_FUNC(wrap_float_equal), 1);
93
+ rb_define_method(rb_cFloat, "<<", RUBY_METHOD_FUNC(wrap_float_initialize_object), 1);
94
+
95
+ VALUE rb_cString = rb_define_class_under(mTatara, "String", rb_cObject);
96
+
97
+ rb_define_alloc_func(rb_cString, wrap_string_alloc);
98
+ rb_define_private_method(rb_cString, "initialize", RUBY_METHOD_FUNC(wrap_string_init), 0);
99
+ rb_define_method(rb_cString, "value", RUBY_METHOD_FUNC(wrap_string_return_value), 0);
100
+ rb_define_method(rb_cString, "val", RUBY_METHOD_FUNC(wrap_string_return_value), 0);
101
+ rb_define_method(rb_cString, "value=", RUBY_METHOD_FUNC(wrap_string_assignment), 1);
102
+ rb_define_method(rb_cString, "val=", RUBY_METHOD_FUNC(wrap_string_assignment), 1);
103
+ rb_define_method(rb_cString, "value+=", RUBY_METHOD_FUNC(wrap_string_plus_equal), 1);
104
+ rb_define_method(rb_cString, "val+=", RUBY_METHOD_FUNC(wrap_string_plus_equal), 1);
105
+ rb_define_method(rb_cString, "to_i", RUBY_METHOD_FUNC(wrap_string_to_integer), 0);
106
+ rb_define_method(rb_cString, "to_f", RUBY_METHOD_FUNC(wrap_string_to_float), 0);
107
+ rb_define_method(rb_cString, "clear", RUBY_METHOD_FUNC(wrap_string_clear), 0);
108
+ rb_define_method(rb_cString, "value==", RUBY_METHOD_FUNC(wrap_string_equal), 1);
109
+ rb_define_method(rb_cString, "val==", RUBY_METHOD_FUNC(wrap_string_equal), 1);
110
+ rb_define_method(rb_cString, "equal?", RUBY_METHOD_FUNC(wrap_string_equal), 1);
111
+ rb_define_method(rb_cString, "<<", RUBY_METHOD_FUNC(wrap_string_initialize_object), 1);
112
+ rb_define_method(rb_cString, "[]", RUBY_METHOD_FUNC(wrap_string_index_access), 1);
113
+ rb_define_method(rb_cString, "slice", RUBY_METHOD_FUNC(wrap_string_slice), 2);
114
+ rb_define_method(rb_cString, "slice!", RUBY_METHOD_FUNC(wrap_string_destructive_slice), 2);
115
+
116
+ VALUE rb_cIntVector = rb_define_class_under(mTatara, "IntVector", rb_cObject);
117
+
118
+ rb_define_alloc_func(rb_cIntVector, wrap_int_vector_alloc);
119
+ rb_define_private_method(rb_cIntVector, "initialize", RUBY_METHOD_FUNC(wrap_int_vector_init), 0);
120
+ rb_define_method(rb_cIntVector, "first", RUBY_METHOD_FUNC(wrap_int_vector_first), 0);
121
+ rb_define_method(rb_cIntVector, "last", RUBY_METHOD_FUNC(wrap_int_vector_last), 0);
122
+ rb_define_method(rb_cIntVector, "[]", RUBY_METHOD_FUNC(wrap_int_vector_bracket), 1);
123
+ rb_define_method(rb_cIntVector, "[]=", RUBY_METHOD_FUNC(wrap_int_vector_bracket_equal), 2);
124
+ rb_define_method(rb_cIntVector, "emplace_back", RUBY_METHOD_FUNC(wrap_int_vector_emplace_back), 1);
125
+ rb_define_method(rb_cIntVector, "size", RUBY_METHOD_FUNC(wrap_int_vector_size), 0);
126
+ rb_define_method(rb_cIntVector, "clear", RUBY_METHOD_FUNC(wrap_int_vector_clear), 0);
127
+ rb_define_method(rb_cIntVector, "<<", RUBY_METHOD_FUNC(wrap_int_vector_push_back_object), 1);
128
+
129
+ VALUE rb_cFloatVector = rb_define_class_under(mTatara, "FloatVector", rb_cObject);
130
+
131
+ rb_define_alloc_func(rb_cFloatVector, wrap_float_vector_alloc);
132
+ rb_define_private_method(rb_cFloatVector, "initialize", RUBY_METHOD_FUNC(wrap_float_vector_init), 0);
133
+ rb_define_method(rb_cFloatVector, "first", RUBY_METHOD_FUNC(wrap_float_vector_first), 0);
134
+ rb_define_method(rb_cFloatVector, "last", RUBY_METHOD_FUNC(wrap_float_vector_last), 0);
135
+ rb_define_method(rb_cFloatVector, "[]", RUBY_METHOD_FUNC(wrap_float_vector_bracket), 1);
136
+ rb_define_method(rb_cFloatVector, "[]=", RUBY_METHOD_FUNC(wrap_float_vector_bracket_equal), 2);
137
+ rb_define_method(rb_cFloatVector, "emplace_back", RUBY_METHOD_FUNC(wrap_float_vector_emplace_back), 1);
138
+ rb_define_method(rb_cFloatVector, "size", RUBY_METHOD_FUNC(wrap_float_vector_size), 0);
139
+ rb_define_method(rb_cFloatVector, "clear", RUBY_METHOD_FUNC(wrap_float_vector_clear), 0);
140
+ rb_define_method(rb_cFloatVector, "<<", RUBY_METHOD_FUNC(wrap_float_vector_push_back_object), 1);
141
+
142
+ VALUE rb_cStringVector = rb_define_class_under(mTatara, "StringVector", rb_cObject);
143
+
144
+ rb_define_alloc_func(rb_cStringVector, wrap_string_vector_alloc);
145
+ rb_define_private_method(rb_cStringVector, "initialize", RUBY_METHOD_FUNC(wrap_string_vector_init), 0);
146
+ rb_define_method(rb_cStringVector, "first", RUBY_METHOD_FUNC(wrap_string_vector_first), 0);
147
+ rb_define_method(rb_cStringVector, "last", RUBY_METHOD_FUNC(wrap_string_vector_last), 0);
148
+ rb_define_method(rb_cStringVector, "[]", RUBY_METHOD_FUNC(wrap_string_vector_bracket), 1);
149
+ rb_define_method(rb_cStringVector, "[]=", RUBY_METHOD_FUNC(wrap_string_vector_bracket_equal), 2);
150
+ rb_define_method(rb_cStringVector, "emplace_back", RUBY_METHOD_FUNC(wrap_string_vector_emplace_back), 1);
151
+ rb_define_method(rb_cStringVector, "size", RUBY_METHOD_FUNC(wrap_string_vector_size), 0);
152
+ rb_define_method(rb_cStringVector, "clear", RUBY_METHOD_FUNC(wrap_string_vector_clear), 0);
153
+ rb_define_method(rb_cStringVector, "<<", RUBY_METHOD_FUNC(wrap_string_vector_push_back_object), 1);
154
+
155
+ VALUE rb_cIntArray = rb_define_class_under(mTatara, "IntArray", rb_cObject);
156
+
157
+ rb_define_alloc_func(rb_cIntArray, wrap_int_array_alloc);
158
+ rb_define_private_method(rb_cIntArray, "initialize", RUBY_METHOD_FUNC(wrap_int_array_init), 0);
159
+ rb_define_method(rb_cIntArray, "first", RUBY_METHOD_FUNC(wrap_int_array_first), 0);
160
+ rb_define_method(rb_cIntArray, "last", RUBY_METHOD_FUNC(wrap_int_array_last), 0);
161
+ rb_define_method(rb_cIntArray, "[]", RUBY_METHOD_FUNC(wrap_int_array_bracket), 1);
162
+ rb_define_method(rb_cIntArray, "[]=", RUBY_METHOD_FUNC(wrap_int_array_bracket_equal), 2);
163
+ rb_define_method(rb_cIntArray, "push", RUBY_METHOD_FUNC(wrap_int_array_emplace_back), 1);
164
+ rb_define_method(rb_cIntArray, "size", RUBY_METHOD_FUNC(wrap_int_array_size), 0);
165
+ rb_define_method(rb_cIntArray, "clear", RUBY_METHOD_FUNC(wrap_int_array_clear), 0);
166
+ rb_define_method(rb_cIntArray, "<<", RUBY_METHOD_FUNC(wrap_int_array_push_back_object), 1);
167
+
168
+ VALUE rb_cFloatArray = rb_define_class_under(mTatara, "FloatArray", rb_cObject);
169
+
170
+ rb_define_alloc_func(rb_cFloatArray, wrap_float_array_alloc);
171
+ rb_define_private_method(rb_cFloatArray, "initialize", RUBY_METHOD_FUNC(wrap_float_array_init), 0);
172
+ rb_define_method(rb_cFloatArray, "first", RUBY_METHOD_FUNC(wrap_float_array_first), 0);
173
+ rb_define_method(rb_cFloatArray, "last", RUBY_METHOD_FUNC(wrap_float_array_last), 0);
174
+ rb_define_method(rb_cFloatArray, "[]", RUBY_METHOD_FUNC(wrap_float_array_bracket), 1);
175
+ rb_define_method(rb_cFloatArray, "[]=", RUBY_METHOD_FUNC(wrap_float_array_bracket_equal), 2);
176
+ rb_define_method(rb_cFloatArray, "push", RUBY_METHOD_FUNC(wrap_float_array_emplace_back), 1);
177
+ rb_define_method(rb_cFloatArray, "size", RUBY_METHOD_FUNC(wrap_float_array_size), 0);
178
+ rb_define_method(rb_cFloatArray, "clear", RUBY_METHOD_FUNC(wrap_float_array_clear), 0);
179
+ rb_define_method(rb_cFloatArray, "<<", RUBY_METHOD_FUNC(wrap_float_array_push_back_object), 1);
180
+
181
+ VALUE rb_cStringArray = rb_define_class_under(mTatara, "StringArray", rb_cObject);
182
+
183
+ rb_define_alloc_func(rb_cStringArray, wrap_string_array_alloc);
184
+ rb_define_private_method(rb_cStringArray, "initialize", RUBY_METHOD_FUNC(wrap_string_array_init), 0);
185
+ rb_define_method(rb_cStringArray, "first", RUBY_METHOD_FUNC(wrap_string_array_first), 0);
186
+ rb_define_method(rb_cStringArray, "last", RUBY_METHOD_FUNC(wrap_string_array_last), 0);
187
+ rb_define_method(rb_cStringArray, "[]", RUBY_METHOD_FUNC(wrap_string_array_bracket), 1);
188
+ rb_define_method(rb_cStringArray, "[]=", RUBY_METHOD_FUNC(wrap_string_array_bracket_equal), 2);
189
+ rb_define_method(rb_cStringArray, "push", RUBY_METHOD_FUNC(wrap_string_array_emplace_back), 1);
190
+ rb_define_method(rb_cStringArray, "size", RUBY_METHOD_FUNC(wrap_string_array_size), 0);
191
+ rb_define_method(rb_cStringArray, "clear", RUBY_METHOD_FUNC(wrap_string_array_clear), 0);
192
+ rb_define_method(rb_cStringArray, "<<", RUBY_METHOD_FUNC(wrap_string_array_push_back_object), 1);
193
+
194
+ VALUE rb_cStringIntMap = rb_define_class_under(mTatara, "StringIntMap", rb_cObject);
195
+
196
+ rb_define_alloc_func(rb_cStringIntMap, wrap_string_int_map_alloc);
197
+ rb_define_private_method(rb_cStringIntMap, "initialize", RUBY_METHOD_FUNC(wrap_string_int_map_init), 0);
198
+ rb_define_method(rb_cStringIntMap, "[]", RUBY_METHOD_FUNC(wrap_string_int_map_bracket), 1);
199
+ rb_define_method(rb_cStringIntMap, "[]=", RUBY_METHOD_FUNC(wrap_string_int_map_bracket_equal), 2);
200
+
201
+ VALUE rb_cStringFloatMap = rb_define_class_under(mTatara, "StringFloatMap", rb_cObject);
202
+
203
+ rb_define_alloc_func(rb_cStringFloatMap, wrap_string_float_map_alloc);
204
+ rb_define_private_method(rb_cStringFloatMap, "initialize", RUBY_METHOD_FUNC(wrap_string_float_map_init), 0);
205
+ rb_define_method(rb_cStringFloatMap, "[]", RUBY_METHOD_FUNC(wrap_string_float_map_bracket), 1);
206
+ rb_define_method(rb_cStringFloatMap, "[]=", RUBY_METHOD_FUNC(wrap_string_float_map_bracket_equal), 2);
207
+
208
+ VALUE rb_cStringStringMap = rb_define_class_under(mTatara, "StringStringMap", rb_cObject);
209
+
210
+ rb_define_alloc_func(rb_cStringStringMap, wrap_string_string_map_alloc);
211
+ rb_define_private_method(rb_cStringStringMap, "initialize", RUBY_METHOD_FUNC(wrap_string_string_map_init), 0);
212
+ rb_define_method(rb_cStringStringMap, "[]", RUBY_METHOD_FUNC(wrap_string_string_map_bracket), 1);
213
+ rb_define_method(rb_cStringStringMap, "[]=", RUBY_METHOD_FUNC(wrap_string_string_map_bracket_equal), 2);
214
+
215
+ VALUE rb_cIntIntMap = rb_define_class_under(mTatara, "IntIntMap", rb_cObject);
216
+
217
+ rb_define_alloc_func(rb_cIntIntMap, wrap_int_int_map_alloc);
218
+ rb_define_private_method(rb_cIntIntMap, "initialize", RUBY_METHOD_FUNC(wrap_int_int_map_init), 0);
219
+ rb_define_method(rb_cIntIntMap, "[]", RUBY_METHOD_FUNC(wrap_int_int_map_bracket), 1);
220
+ rb_define_method(rb_cIntIntMap, "[]=", RUBY_METHOD_FUNC(wrap_int_int_map_bracket_equal), 2);
221
+
222
+ VALUE rb_cIntFloatMap = rb_define_class_under(mTatara, "IntFloatMap", rb_cObject);
223
+
224
+ rb_define_alloc_func(rb_cIntFloatMap, wrap_int_float_map_alloc);
225
+ rb_define_private_method(rb_cIntFloatMap, "initialize", RUBY_METHOD_FUNC(wrap_int_float_map_init), 0);
226
+ rb_define_method(rb_cIntFloatMap, "[]", RUBY_METHOD_FUNC(wrap_int_float_map_bracket), 1);
227
+ rb_define_method(rb_cIntFloatMap, "[]=", RUBY_METHOD_FUNC(wrap_int_float_map_bracket_equal), 2);
228
+
229
+ VALUE rb_cIntStringMap = rb_define_class_under(mTatara, "IntStringMap", rb_cObject);
230
+
231
+ rb_define_alloc_func(rb_cIntStringMap, wrap_int_string_map_alloc);
232
+ rb_define_private_method(rb_cIntStringMap, "initialize", RUBY_METHOD_FUNC(wrap_int_string_map_init), 0);
233
+ rb_define_method(rb_cIntStringMap, "[]", RUBY_METHOD_FUNC(wrap_int_string_map_bracket), 1);
234
+ rb_define_method(rb_cIntStringMap, "[]=", RUBY_METHOD_FUNC(wrap_int_string_map_bracket_equal), 2);
235
+
236
+ VALUE rb_cFloatIntMap = rb_define_class_under(mTatara, "FloatIntMap", rb_cObject);
237
+
238
+ rb_define_alloc_func(rb_cFloatIntMap, wrap_float_int_map_alloc);
239
+ rb_define_private_method(rb_cFloatIntMap, "initialize", RUBY_METHOD_FUNC(wrap_float_int_map_init), 0);
240
+ rb_define_method(rb_cFloatIntMap, "[]", RUBY_METHOD_FUNC(wrap_float_int_map_bracket), 1);
241
+ rb_define_method(rb_cFloatIntMap, "[]=", RUBY_METHOD_FUNC(wrap_float_int_map_bracket_equal), 2);
242
+
243
+ VALUE rb_cFloatFloatMap = rb_define_class_under(mTatara, "FloatFloatMap", rb_cObject);
244
+
245
+ rb_define_alloc_func(rb_cFloatFloatMap, wrap_float_float_map_alloc);
246
+ rb_define_private_method(rb_cFloatFloatMap, "initialize", RUBY_METHOD_FUNC(wrap_float_float_map_init), 0);
247
+ rb_define_method(rb_cFloatFloatMap, "[]", RUBY_METHOD_FUNC(wrap_float_float_map_bracket), 1);
248
+ rb_define_method(rb_cFloatFloatMap, "[]=", RUBY_METHOD_FUNC(wrap_float_float_map_bracket_equal), 2);
249
+
250
+ VALUE rb_cFloatStringMap = rb_define_class_under(mTatara, "FloatStringMap", rb_cObject);
251
+
252
+ rb_define_alloc_func(rb_cFloatStringMap, wrap_float_string_map_alloc);
253
+ rb_define_private_method(rb_cFloatStringMap, "initialize", RUBY_METHOD_FUNC(wrap_float_string_map_init), 0);
254
+ rb_define_method(rb_cFloatStringMap, "[]", RUBY_METHOD_FUNC(wrap_float_string_map_bracket), 1);
255
+ rb_define_method(rb_cFloatStringMap, "[]=", RUBY_METHOD_FUNC(wrap_float_string_map_bracket_equal), 2);
255
256
  }
256
257
  }