clipsruby 0.0.37 → 0.0.39
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/README.md +30 -0
- data/ext/clipsruby/clipsruby.c +133 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80e4a680ddbc8bf4562a2b6995c645c0b5dd436ad36a1ee3445ba3fec7f13971
|
4
|
+
data.tar.gz: 297c0e0c46cb3355acddde65530c2f424d0994691a25aa84fd030fd041631d59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c46acccb9d8b0edc1841f56ad046f8a36c06bcae3baf155b08ef3dff1b46acdf61ef82bcfc73ca5059796bfb87e767571f25f00fbc5a89bf359c992c38b3d32b
|
7
|
+
data.tar.gz: 76c92b24f599195d9878907a09d6ef765aea158784fcb1847692e608220463de97932baa96bcf9c6c5bdd484eed4d14ed9fffc9c0a8370d634531528d445b95d
|
data/README.md
CHANGED
@@ -494,6 +494,16 @@ CLIPS::Environment::Defclass.defmodule_name(defclass)
|
|
494
494
|
defclass.defmodule_name
|
495
495
|
```
|
496
496
|
|
497
|
+
### `CLIPS::Environment::Defclass.defmodule`
|
498
|
+
### `CLIPS::Environment::Defclass#defmodule`
|
499
|
+
|
500
|
+
Returns the defmodule in which the defclass is defined
|
501
|
+
|
502
|
+
```ruby
|
503
|
+
CLIPS::Environment::Defclass.defmodule(defclass)
|
504
|
+
defclass.defmodule
|
505
|
+
```
|
506
|
+
|
497
507
|
### `CLIPS::Environment::Defclass.get_instance_list`
|
498
508
|
### `CLIPS::Environment::Defclass#get_instance_list`
|
499
509
|
|
@@ -582,6 +592,16 @@ CLIPS::Environment::Defrule.defmodule_name(defrule)
|
|
582
592
|
defrule.defmodule_name
|
583
593
|
```
|
584
594
|
|
595
|
+
### `CLIPS::Environment::Defrule.defmodule`
|
596
|
+
### `CLIPS::Environment::Defrule#defmodule`
|
597
|
+
|
598
|
+
Returns the defmodule in which the defrule is defined
|
599
|
+
|
600
|
+
```ruby
|
601
|
+
CLIPS::Environment::Defrule.defmodule(defrule)
|
602
|
+
defrule.defmodule
|
603
|
+
```
|
604
|
+
|
585
605
|
### `CLIPS::Environment::Defrule.is_deletable`
|
586
606
|
### `CLIPS::Environment::Defrule#is_deletable`
|
587
607
|
|
@@ -846,6 +866,16 @@ CLIPS::Environment::Deftemplate.defmodule_name(deftemplate)
|
|
846
866
|
deftemplate.defmodule_name
|
847
867
|
```
|
848
868
|
|
869
|
+
### `CLIPS::Environment::Deftemplate.defmodule`
|
870
|
+
### `CLIPS::Environment::Deftemplate#defmodule`
|
871
|
+
|
872
|
+
Returns the defmodule in which the deftemplate is defined
|
873
|
+
|
874
|
+
```ruby
|
875
|
+
CLIPS::Environment::Deftemplate.defmodule(deftemplate)
|
876
|
+
deftemplate.defmodule
|
877
|
+
```
|
878
|
+
|
849
879
|
### `CLIPS::Environment::Deftemplate.slot_names`
|
850
880
|
### `CLIPS::Environment::Deftemplate#slot_names`
|
851
881
|
|
data/ext/clipsruby/clipsruby.c
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
#include "clips.h"
|
2
2
|
#include "ruby.h"
|
3
3
|
|
4
|
+
void environment_free(void *data)
|
5
|
+
{
|
6
|
+
DestroyEnvironment((Environment*) data);
|
7
|
+
}
|
8
|
+
|
9
|
+
size_t environment_size(const void *data)
|
10
|
+
{
|
11
|
+
return MemUsed((Environment*) data);
|
12
|
+
}
|
13
|
+
|
14
|
+
static const rb_data_type_t Environment_type = {
|
15
|
+
.function = {
|
16
|
+
.dfree = environment_free,
|
17
|
+
.dsize = environment_size
|
18
|
+
},
|
19
|
+
.flags = RUBY_TYPED_FREE_IMMEDIATELY
|
20
|
+
};
|
21
|
+
|
4
22
|
size_t deffacts_size(const void *data)
|
5
23
|
{
|
6
24
|
return sizeof(Deffacts);
|
@@ -133,6 +151,36 @@ static VALUE clips_environment_deftemplate_static_defmodule_name(VALUE self, VAL
|
|
133
151
|
return clips_environment_deftemplate_defmodule_name(rbDeftemplate);
|
134
152
|
}
|
135
153
|
|
154
|
+
static VALUE clips_environment_deftemplate_defmodule(VALUE self)
|
155
|
+
{
|
156
|
+
Deftemplate *template;
|
157
|
+
const char *defmoduleName;
|
158
|
+
Defmodule *defmodule = NULL;
|
159
|
+
Environment *env;
|
160
|
+
|
161
|
+
VALUE rbEnvironment = rb_iv_get(self, "@environment");
|
162
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
163
|
+
|
164
|
+
TypedData_Get_Struct(self, Deftemplate, &Deftemplate_type, template);
|
165
|
+
|
166
|
+
defmoduleName = DeftemplateModule(template);
|
167
|
+
|
168
|
+
if (defmoduleName != NULL) {
|
169
|
+
defmodule = FindDefmodule(env, defmoduleName);
|
170
|
+
}
|
171
|
+
|
172
|
+
if (defmodule != NULL) {
|
173
|
+
return TypedData_Wrap_Struct(rb_const_get(CLASS_OF(rbEnvironment), rb_intern("Defmodule")), &Defmodule_type, defmodule);
|
174
|
+
} else {
|
175
|
+
return Qnil;
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
static VALUE clips_environment_deftemplate_static_defmodule(VALUE self, VALUE rbDeftemplate)
|
180
|
+
{
|
181
|
+
return clips_environment_deftemplate_defmodule(rbDeftemplate);
|
182
|
+
}
|
183
|
+
|
136
184
|
static VALUE clips_environment_defrule_defmodule_name(VALUE self)
|
137
185
|
{
|
138
186
|
Defrule *rule;
|
@@ -147,24 +195,36 @@ static VALUE clips_environment_defrule_static_defmodule_name(VALUE self, VALUE r
|
|
147
195
|
return clips_environment_defrule_defmodule_name(rbDefrule);
|
148
196
|
}
|
149
197
|
|
150
|
-
|
198
|
+
static VALUE clips_environment_defrule_defmodule(VALUE self)
|
151
199
|
{
|
152
|
-
|
200
|
+
Defrule *rule;
|
201
|
+
const char *defmoduleName;
|
202
|
+
Defmodule *defmodule = NULL;
|
203
|
+
Environment *env;
|
204
|
+
|
205
|
+
VALUE rbEnvironment = rb_iv_get(self, "@environment");
|
206
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
207
|
+
|
208
|
+
TypedData_Get_Struct(self, Defrule, &Defrule_type, rule);
|
209
|
+
|
210
|
+
defmoduleName = DefruleModule(rule);
|
211
|
+
|
212
|
+
if (defmoduleName != NULL) {
|
213
|
+
defmodule = FindDefmodule(env, defmoduleName);
|
214
|
+
}
|
215
|
+
|
216
|
+
if (defmodule != NULL) {
|
217
|
+
return TypedData_Wrap_Struct(rb_const_get(CLASS_OF(rbEnvironment), rb_intern("Defmodule")), &Defmodule_type, defmodule);
|
218
|
+
} else {
|
219
|
+
return Qnil;
|
220
|
+
}
|
153
221
|
}
|
154
222
|
|
155
|
-
|
223
|
+
static VALUE clips_environment_defrule_static_defmodule(VALUE self, VALUE rbDefrule)
|
156
224
|
{
|
157
|
-
return
|
225
|
+
return clips_environment_defrule_defmodule(rbDefrule);
|
158
226
|
}
|
159
227
|
|
160
|
-
static const rb_data_type_t Environment_type = {
|
161
|
-
.function = {
|
162
|
-
.dfree = environment_free,
|
163
|
-
.dsize = environment_size
|
164
|
-
},
|
165
|
-
.flags = RUBY_TYPED_FREE_IMMEDIATELY
|
166
|
-
};
|
167
|
-
|
168
228
|
static VALUE clips_environment_facts(VALUE self)
|
169
229
|
{
|
170
230
|
Environment *env;
|
@@ -279,6 +339,36 @@ static VALUE clips_environment_defclass_static_defmodule_name(VALUE self, VALUE
|
|
279
339
|
return clips_environment_defclass_defmodule_name(rbDefclass);
|
280
340
|
}
|
281
341
|
|
342
|
+
static VALUE clips_environment_defclass_defmodule(VALUE self)
|
343
|
+
{
|
344
|
+
Defclass *class;
|
345
|
+
const char *defmoduleName;
|
346
|
+
Defmodule *defmodule = NULL;
|
347
|
+
Environment *env;
|
348
|
+
|
349
|
+
VALUE rbEnvironment = rb_iv_get(self, "@environment");
|
350
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
351
|
+
|
352
|
+
TypedData_Get_Struct(self, Defclass, &Defclass_type, class);
|
353
|
+
|
354
|
+
defmoduleName = DefclassModule(class);
|
355
|
+
|
356
|
+
if (defmoduleName != NULL) {
|
357
|
+
defmodule = FindDefmodule(env, defmoduleName);
|
358
|
+
}
|
359
|
+
|
360
|
+
if (defmodule != NULL) {
|
361
|
+
return TypedData_Wrap_Struct(rb_const_get(CLASS_OF(rbEnvironment), rb_intern("Defmodule")), &Defmodule_type, defmodule);
|
362
|
+
} else {
|
363
|
+
return Qnil;
|
364
|
+
}
|
365
|
+
}
|
366
|
+
|
367
|
+
static VALUE clips_environment_defclass_static_defmodule(VALUE self, VALUE rbDefclass)
|
368
|
+
{
|
369
|
+
return clips_environment_defclass_defmodule(rbDefclass);
|
370
|
+
}
|
371
|
+
|
282
372
|
static VALUE clips_environment_defclass_pp_form(VALUE self)
|
283
373
|
{
|
284
374
|
Defclass *defclass;
|
@@ -1952,6 +2042,7 @@ static VALUE clips_environment_fact_static_index(VALUE self, VALUE rbFact)
|
|
1952
2042
|
|
1953
2043
|
static VALUE clips_environment_find_defrule(VALUE self, VALUE defrule_name)
|
1954
2044
|
{
|
2045
|
+
VALUE rbDefrule;
|
1955
2046
|
Environment *env;
|
1956
2047
|
Defrule *rule;
|
1957
2048
|
|
@@ -1972,7 +2063,9 @@ static VALUE clips_environment_find_defrule(VALUE self, VALUE defrule_name)
|
|
1972
2063
|
if (rule == NULL) {
|
1973
2064
|
return Qnil;
|
1974
2065
|
} else {
|
1975
|
-
|
2066
|
+
rbDefrule = TypedData_Wrap_Struct(rb_const_get(CLASS_OF(self), rb_intern("Defrule")), &Defrule_type, rule);
|
2067
|
+
rb_iv_set(rbDefrule, "@environment", self);
|
2068
|
+
return rbDefrule;
|
1976
2069
|
}
|
1977
2070
|
}
|
1978
2071
|
|
@@ -2029,10 +2122,16 @@ static VALUE clips_environment_deffacts_static_name(VALUE self, VALUE rbDeffacts
|
|
2029
2122
|
static VALUE clips_environment_deffacts_pp_form(VALUE self)
|
2030
2123
|
{
|
2031
2124
|
Deffacts *deffacts;
|
2125
|
+
const char *pp_form;
|
2032
2126
|
|
2033
2127
|
TypedData_Get_Struct(self, Deffacts, &Deffacts_type, deffacts);
|
2034
2128
|
|
2035
|
-
|
2129
|
+
pp_form = DeffactsPPForm(deffacts);
|
2130
|
+
if (pp_form == NULL) {
|
2131
|
+
return Qnil;
|
2132
|
+
} else {
|
2133
|
+
return rb_str_new2(pp_form);
|
2134
|
+
}
|
2036
2135
|
}
|
2037
2136
|
|
2038
2137
|
static VALUE clips_environment_deffacts_static_pp_form(VALUE self, VALUE rbDeffacts)
|
@@ -2417,10 +2516,16 @@ static VALUE clips_environment_deftemplate_static_name(VALUE self, VALUE rbDefte
|
|
2417
2516
|
static VALUE clips_environment_deftemplate_pp_form(VALUE self)
|
2418
2517
|
{
|
2419
2518
|
Deftemplate *deftemplate;
|
2519
|
+
const char *pp_form;
|
2420
2520
|
|
2421
2521
|
TypedData_Get_Struct(self, Deftemplate, &Deftemplate_type, deftemplate);
|
2422
2522
|
|
2423
|
-
|
2523
|
+
pp_form = DeftemplatePPForm(deftemplate);
|
2524
|
+
if (pp_form == NULL) {
|
2525
|
+
return Qnil;
|
2526
|
+
} else {
|
2527
|
+
return rb_str_new2(pp_form);
|
2528
|
+
}
|
2424
2529
|
}
|
2425
2530
|
|
2426
2531
|
static VALUE clips_environment_deftemplate_static_pp_form(VALUE self, VALUE rbDeftemplate)
|
@@ -2967,10 +3072,16 @@ static VALUE clips_environment_defmodule_static_name(VALUE self, VALUE rbDefmodu
|
|
2967
3072
|
static VALUE clips_environment_defmodule_pp_form(VALUE self)
|
2968
3073
|
{
|
2969
3074
|
Defmodule *defmodule;
|
3075
|
+
const char *pp_form;
|
2970
3076
|
|
2971
3077
|
TypedData_Get_Struct(self, Defmodule, &Defmodule_type, defmodule);
|
2972
3078
|
|
2973
|
-
|
3079
|
+
pp_form = DefmodulePPForm(defmodule);
|
3080
|
+
if (pp_form == NULL) {
|
3081
|
+
return Qnil;
|
3082
|
+
} else {
|
3083
|
+
return rb_str_new2(pp_form);
|
3084
|
+
}
|
2974
3085
|
}
|
2975
3086
|
|
2976
3087
|
static VALUE clips_environment_defmodule_static_pp_form(VALUE self, VALUE rbDefmodule)
|
@@ -4197,6 +4308,8 @@ void Init_clipsruby(void)
|
|
4197
4308
|
rb_define_method(rbDeftemplate, "pp_form", clips_environment_deftemplate_pp_form, 0);
|
4198
4309
|
rb_define_singleton_method(rbDeftemplate, "assert_hash", clips_environment_deftemplate_static_assert_hash, 2);
|
4199
4310
|
rb_define_method(rbDeftemplate, "assert_hash", clips_environment_deftemplate_assert_hash, 1);
|
4311
|
+
rb_define_singleton_method(rbDeftemplate, "defmodule", clips_environment_deftemplate_static_defmodule, 1);
|
4312
|
+
rb_define_method(rbDeftemplate, "defmodule", clips_environment_deftemplate_defmodule, 0);
|
4200
4313
|
rb_define_singleton_method(rbDeftemplate, "defmodule_name", clips_environment_deftemplate_static_defmodule_name, 1);
|
4201
4314
|
rb_define_method(rbDeftemplate, "defmodule_name", clips_environment_deftemplate_defmodule_name, 0);
|
4202
4315
|
rb_define_singleton_method(rbDeftemplate, "slot_names", clips_environment_deftemplate_static_slot_names, 1);
|
@@ -4284,6 +4397,8 @@ void Init_clipsruby(void)
|
|
4284
4397
|
rb_define_method(rbDefrule, "salience", clips_environment_defrule_salience, 0);
|
4285
4398
|
rb_define_singleton_method(rbDefrule, "defmodule_name", clips_environment_defrule_static_defmodule_name, 1);
|
4286
4399
|
rb_define_method(rbDefrule, "defmodule_name", clips_environment_defrule_defmodule_name, 0);
|
4400
|
+
rb_define_singleton_method(rbDefrule, "defmodule", clips_environment_defrule_static_defmodule, 1);
|
4401
|
+
rb_define_method(rbDefrule, "defmodule", clips_environment_defrule_defmodule, 0);
|
4287
4402
|
|
4288
4403
|
VALUE rbDefclass = rb_define_class_under(rbEnvironment, "Defclass", rb_cObject);
|
4289
4404
|
rb_define_alloc_func(rbDefclass, defclass_alloc);
|
@@ -4291,6 +4406,8 @@ void Init_clipsruby(void)
|
|
4291
4406
|
rb_define_method(rbDefclass, "name", clips_environment_defclass_name, 0);
|
4292
4407
|
rb_define_singleton_method(rbDefclass, "defmodule_name", clips_environment_defclass_static_defmodule_name, 1);
|
4293
4408
|
rb_define_method(rbDefclass, "defmodule_name", clips_environment_defclass_defmodule_name, 0);
|
4409
|
+
rb_define_singleton_method(rbDefclass, "defmodule", clips_environment_defclass_static_defmodule, 1);
|
4410
|
+
rb_define_method(rbDefclass, "defmodule", clips_environment_defclass_defmodule, 0);
|
4294
4411
|
rb_define_singleton_method(rbDefclass, "pp_form", clips_environment_defclass_static_pp_form, 1);
|
4295
4412
|
rb_define_method(rbDefclass, "pp_form", clips_environment_defclass_pp_form, 0);
|
4296
4413
|
rb_define_singleton_method(rbDefclass, "get_instance_list", clips_environment_defclass_static_get_instance_list, -1);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clipsruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.39
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Johnston
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Calling the CLIPS programming language from within Ruby
|
14
14
|
email: mrryanjohnston@gmail.com
|