clipsruby 0.0.33 → 0.0.34
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 +36 -0
- data/ext/clipsruby/clipsruby.c +132 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d62cc0e5ccc41bfc4e88590c7a3873859271163fa5dd73b416c0cf2d61b7ed1
|
4
|
+
data.tar.gz: d3cd61d58609c516b8c952dbc32393d54251f09bdc3a8a5f15f531cdf2d707ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6473260b0da57bb78894841385c6cc1b4ecddb4448dc80edf7c0542e654b8dca6884efdc37b9be976d6b0bed22fadd24da5313ef8ba59b5cd71639a18cd2f42
|
7
|
+
data.tar.gz: 90af7d185f0ca31b1d543e0550cf4520d021525225e3bba8087d5f449591ffe40fa6a34380293b689876ec9d84dc9b3d8860c18b50b525610b3ca890ff727c5a
|
data/README.md
CHANGED
@@ -634,6 +634,22 @@ CLIPS::Environment::Defmodule.get_fact_list(defmodule)
|
|
634
634
|
defmodule.get_fact_list
|
635
635
|
```
|
636
636
|
|
637
|
+
### `CLIPS::Environment.get_defclass_list`
|
638
|
+
### `CLIPS::Environment#get_defclass_list`
|
639
|
+
|
640
|
+
Return an array of Defclass names as symbols in the environment. Pass an argument of a
|
641
|
+
symbol, string, or Defmodule object in order to only get Defclasss
|
642
|
+
in that Defmodule. If you do not, it will return all Defclass names in all modules.
|
643
|
+
|
644
|
+
```ruby
|
645
|
+
CLIPS::Environment.get_defclass_list(env)
|
646
|
+
env.get_defclass_list
|
647
|
+
CLIPS::Environment.get_defclass_list(env, :MAIN)
|
648
|
+
env.get_defclass_list(:MAIN)
|
649
|
+
CLIPS::Environment.get_defclass_list(env, defmodule)
|
650
|
+
env.get_defclass_list(defmodule)
|
651
|
+
```
|
652
|
+
|
637
653
|
### `CLIPS::Environment.get_deftemplate_list`
|
638
654
|
### `CLIPS::Environment#get_deftemplate_list`
|
639
655
|
|
@@ -686,6 +702,16 @@ CLIPS::Environment.find_deftemplate(:a)
|
|
686
702
|
env.find_deftemplate("foo")
|
687
703
|
```
|
688
704
|
|
705
|
+
### `CLIPS::Environment.find_defclass`
|
706
|
+
### `CLIPS::Environment#find_defclass`
|
707
|
+
|
708
|
+
Finds a defclass by name and returns a CLIPS::Environment::Defclass object
|
709
|
+
|
710
|
+
```ruby
|
711
|
+
CLIPS::Environment.find_defclass(:a)
|
712
|
+
env.find_defclass("foo")
|
713
|
+
```
|
714
|
+
|
689
715
|
### `CLIPS::Environment::Deftemplate.name`
|
690
716
|
### `CLIPS::Environment::Deftemplate#name`
|
691
717
|
|
@@ -874,6 +900,16 @@ CLIPS::Environment::Deftemplate.slot_defaultp(deftemplate, :foo)
|
|
874
900
|
deftemplate.slot_defaultp('bar')
|
875
901
|
```
|
876
902
|
|
903
|
+
### `CLIPS::Environment::Defmodule.get_defclass_list`
|
904
|
+
### `CLIPS::Environment::Defmodule#get_defclass_list`
|
905
|
+
|
906
|
+
Return an array of Defclass names as symbols in the Defmodule
|
907
|
+
|
908
|
+
```ruby
|
909
|
+
CLIPS::Environment::Defmodule.get_defclass_list(defmodule)
|
910
|
+
defmodule.get_defclass_list
|
911
|
+
```
|
912
|
+
|
877
913
|
### `CLIPS::Environment::Defmodule.get_deftemplate_list`
|
878
914
|
### `CLIPS::Environment::Defmodule#get_deftemplate_list`
|
879
915
|
|
data/ext/clipsruby/clipsruby.c
CHANGED
@@ -1959,6 +1959,40 @@ static VALUE clips_environment_static_find_deftemplate(VALUE self, VALUE rbEnvir
|
|
1959
1959
|
return clips_environment_find_deftemplate(rbEnvironment, deftemplate_name);
|
1960
1960
|
}
|
1961
1961
|
|
1962
|
+
static VALUE clips_environment_find_defclass(VALUE self, VALUE defclass_name)
|
1963
|
+
{
|
1964
|
+
Environment *env;
|
1965
|
+
Defclass *class;
|
1966
|
+
|
1967
|
+
TypedData_Get_Struct(self, Environment, &Environment_type, env);
|
1968
|
+
|
1969
|
+
switch (TYPE(defclass_name)) {
|
1970
|
+
case T_STRING:
|
1971
|
+
class = FindDefclass(env, StringValueCStr(defclass_name));
|
1972
|
+
break;
|
1973
|
+
case T_SYMBOL:
|
1974
|
+
class = FindDefclass(env, rb_id2name(SYM2ID(defclass_name)));
|
1975
|
+
break;
|
1976
|
+
default:
|
1977
|
+
rb_warn("defclass name must be a symbol or string");
|
1978
|
+
return Qnil;
|
1979
|
+
}
|
1980
|
+
|
1981
|
+
if (class == NULL) {
|
1982
|
+
return Qnil;
|
1983
|
+
} else {
|
1984
|
+
VALUE rbDefclass;
|
1985
|
+
rbDefclass = TypedData_Wrap_Struct(rb_const_get(CLASS_OF(self), rb_intern("Defclass")), &Defclass_type, class);
|
1986
|
+
rb_iv_set(rbDefclass, "@environment", self);
|
1987
|
+
return rbDefclass;
|
1988
|
+
}
|
1989
|
+
}
|
1990
|
+
|
1991
|
+
static VALUE clips_environment_static_find_defclass(VALUE self, VALUE rbEnvironment, VALUE defclass_name)
|
1992
|
+
{
|
1993
|
+
return clips_environment_find_defclass(rbEnvironment, defclass_name);
|
1994
|
+
}
|
1995
|
+
|
1962
1996
|
static VALUE clips_environment_deftemplate_name(VALUE self)
|
1963
1997
|
{
|
1964
1998
|
Deftemplate *deftemplate;
|
@@ -2193,6 +2227,74 @@ static VALUE clips_environment_static_get_deftemplate_list(int argc, VALUE *argv
|
|
2193
2227
|
return out;
|
2194
2228
|
}
|
2195
2229
|
|
2230
|
+
static VALUE clips_environment_get_defclass_list(int argc, VALUE *argv, VALUE rbEnvironment) {
|
2231
|
+
VALUE defmodule_or_defmodule_name;
|
2232
|
+
Environment *env;
|
2233
|
+
Defmodule *module;
|
2234
|
+
CLIPSValue value;
|
2235
|
+
VALUE out;
|
2236
|
+
|
2237
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
2238
|
+
|
2239
|
+
rb_scan_args(argc, argv, "01", &defmodule_or_defmodule_name);
|
2240
|
+
switch (TYPE(defmodule_or_defmodule_name)) {
|
2241
|
+
case T_NIL:
|
2242
|
+
module = NULL;
|
2243
|
+
break;
|
2244
|
+
case T_STRING:
|
2245
|
+
case T_SYMBOL:
|
2246
|
+
TypedData_Get_Struct(
|
2247
|
+
clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
|
2248
|
+
Defmodule, &Defmodule_type, module);
|
2249
|
+
break;
|
2250
|
+
case T_DATA:
|
2251
|
+
TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
|
2252
|
+
break;
|
2253
|
+
default:
|
2254
|
+
rb_warn("defmodule name must be a symbol or string");
|
2255
|
+
return Qnil;
|
2256
|
+
}
|
2257
|
+
GetDefclassList(env, &value, module);
|
2258
|
+
|
2259
|
+
CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
|
2260
|
+
|
2261
|
+
return out;
|
2262
|
+
}
|
2263
|
+
|
2264
|
+
static VALUE clips_environment_static_get_defclass_list(int argc, VALUE *argv, VALUE klass) {
|
2265
|
+
VALUE rbEnvironment, defmodule_or_defmodule_name;
|
2266
|
+
Environment *env;
|
2267
|
+
Defmodule *module;
|
2268
|
+
CLIPSValue value;
|
2269
|
+
VALUE out;
|
2270
|
+
|
2271
|
+
rb_scan_args(argc, argv, "11", &rbEnvironment, &defmodule_or_defmodule_name);
|
2272
|
+
|
2273
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
2274
|
+
switch (TYPE(defmodule_or_defmodule_name)) {
|
2275
|
+
case T_NIL:
|
2276
|
+
module = NULL;
|
2277
|
+
break;
|
2278
|
+
case T_STRING:
|
2279
|
+
case T_SYMBOL:
|
2280
|
+
TypedData_Get_Struct(
|
2281
|
+
clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
|
2282
|
+
Defmodule, &Defmodule_type, module);
|
2283
|
+
break;
|
2284
|
+
case T_DATA:
|
2285
|
+
TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
|
2286
|
+
break;
|
2287
|
+
default:
|
2288
|
+
rb_warn("defmodule name must be a symbol or string");
|
2289
|
+
return Qnil;
|
2290
|
+
}
|
2291
|
+
GetDefclassList(env, &value, module);
|
2292
|
+
|
2293
|
+
CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
|
2294
|
+
|
2295
|
+
return out;
|
2296
|
+
}
|
2297
|
+
|
2196
2298
|
static VALUE clips_environment_get_defrule_list(int argc, VALUE *argv, VALUE rbEnvironment) {
|
2197
2299
|
VALUE defmodule_or_defmodule_name;
|
2198
2300
|
Environment *env;
|
@@ -2333,6 +2435,30 @@ static VALUE clips_environment_defmodule_static_get_fact_list(VALUE self, VALUE
|
|
2333
2435
|
return clips_environment_defmodule_get_fact_list(rbDefmodule);
|
2334
2436
|
}
|
2335
2437
|
|
2438
|
+
static VALUE clips_environment_defmodule_get_defclass_list(VALUE self)
|
2439
|
+
{
|
2440
|
+
Defmodule *module;
|
2441
|
+
Environment *env;
|
2442
|
+
CLIPSValue value;
|
2443
|
+
VALUE out;
|
2444
|
+
|
2445
|
+
VALUE rbEnvironment = rb_iv_get(self, "@environment");
|
2446
|
+
|
2447
|
+
TypedData_Get_Struct(self, Defmodule, &Defmodule_type, module);
|
2448
|
+
TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
|
2449
|
+
|
2450
|
+
GetDefclassList(env, &value, module);
|
2451
|
+
|
2452
|
+
CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
|
2453
|
+
|
2454
|
+
return out;
|
2455
|
+
}
|
2456
|
+
|
2457
|
+
static VALUE clips_environment_defmodule_static_get_defclass_list(VALUE self, VALUE rbDefmodule)
|
2458
|
+
{
|
2459
|
+
return clips_environment_defmodule_get_defclass_list(rbDefmodule);
|
2460
|
+
}
|
2461
|
+
|
2336
2462
|
static VALUE clips_environment_defmodule_get_deftemplate_list(VALUE self)
|
2337
2463
|
{
|
2338
2464
|
Defmodule *module;
|
@@ -3378,6 +3504,8 @@ void Init_clipsruby(void)
|
|
3378
3504
|
rb_define_method(rbEnvironment, "find_defmodule", clips_environment_find_defmodule, 1);
|
3379
3505
|
rb_define_singleton_method(rbEnvironment, "find_deftemplate", clips_environment_static_find_deftemplate, 2);
|
3380
3506
|
rb_define_method(rbEnvironment, "find_deftemplate", clips_environment_find_deftemplate, 1);
|
3507
|
+
rb_define_singleton_method(rbEnvironment, "find_defclass", clips_environment_static_find_defclass, 2);
|
3508
|
+
rb_define_method(rbEnvironment, "find_defclass", clips_environment_find_defclass, 1);
|
3381
3509
|
rb_define_singleton_method(rbEnvironment, "get_current_module", clips_environment_static_get_current_module, 1);
|
3382
3510
|
rb_define_method(rbEnvironment, "get_current_module", clips_environment_get_current_module, 0);
|
3383
3511
|
rb_define_singleton_method(rbEnvironment, "set_current_module", clips_environment_static_set_current_module, 2);
|
@@ -3386,6 +3514,8 @@ void Init_clipsruby(void)
|
|
3386
3514
|
rb_define_method(rbEnvironment, "get_fact_list", clips_environment_get_fact_list, -1);
|
3387
3515
|
rb_define_singleton_method(rbEnvironment, "get_deftemplate_list", clips_environment_static_get_deftemplate_list, -1);
|
3388
3516
|
rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
|
3517
|
+
rb_define_singleton_method(rbEnvironment, "get_defclass_list", clips_environment_static_get_defclass_list, -1);
|
3518
|
+
rb_define_method(rbEnvironment, "get_defclass_list", clips_environment_get_defclass_list, -1);
|
3389
3519
|
rb_define_singleton_method(rbEnvironment, "get_defrule_list", clips_environment_static_get_defrule_list, -1);
|
3390
3520
|
rb_define_method(rbEnvironment, "get_defrule_list", clips_environment_get_defrule_list, -1);
|
3391
3521
|
rb_define_singleton_method(rbEnvironment, "get_defmodule_list", clips_environment_static_get_defmodule_list, 1);
|
@@ -3511,6 +3641,8 @@ void Init_clipsruby(void)
|
|
3511
3641
|
rb_define_method(rbDefmodule, "pp_form", clips_environment_defmodule_pp_form, 0);
|
3512
3642
|
rb_define_singleton_method(rbDefmodule, "set_current", clips_environment_defmodule_static_set_current, 1);
|
3513
3643
|
rb_define_method(rbDefmodule, "set_current", clips_environment_defmodule_set_current, 0);
|
3644
|
+
rb_define_singleton_method(rbDefmodule, "get_defclass_list", clips_environment_defmodule_static_get_defclass_list, 1);
|
3645
|
+
rb_define_method(rbDefmodule, "get_defclass_list", clips_environment_defmodule_get_defclass_list, 0);
|
3514
3646
|
rb_define_singleton_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_static_get_fact_list, 1);
|
3515
3647
|
rb_define_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_get_fact_list, 0);
|
3516
3648
|
rb_define_singleton_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_static_get_deftemplate_list, 1);
|