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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -0
  3. data/ext/clipsruby/clipsruby.c +132 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eebbbd0b179f769e1bc079a0cedda8a3ba5198a83347bfb37abc48d6edfe8d41
4
- data.tar.gz: 9adb9650801d7a7bbd290aac1f3c6666dfe6e2527b2fc022dc6285dfad6756f1
3
+ metadata.gz: 5d62cc0e5ccc41bfc4e88590c7a3873859271163fa5dd73b416c0cf2d61b7ed1
4
+ data.tar.gz: d3cd61d58609c516b8c952dbc32393d54251f09bdc3a8a5f15f531cdf2d707ee
5
5
  SHA512:
6
- metadata.gz: 840d6111ab2c3b27d764a2bf2dea8b88b447f4730345e1e54ef22f0e3aa64edb21ee362e9c57088cbffc29d561106e28fbfd25acee381ef1d819d3297ae6a279
7
- data.tar.gz: 4cd8587d33b239d66093cebdf12efda954adc37c620c1112a35295771f7ea3ccc74415e2a7303d7581fe0494c577f9200512f7a59d898c4e8077105b7157d099
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
 
@@ -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);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clipsruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.33
4
+ version: 0.0.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Johnston