clipsruby 0.0.29 → 0.0.30

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 +37 -1
  3. data/ext/clipsruby/clipsruby.c +112 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 305eb61d4442d705a0e3cf576056151266170cd5a3c8e67d2c2d01efe65ed540
4
- data.tar.gz: 2de8f8f91cfc7c529239f1fbbd8f7701bfc08ff24e7576a162ab4d4bd3111f18
3
+ metadata.gz: 4dca72773ba370d57fd7c96a94820ce857f550ca792c78958885919234c0e03b
4
+ data.tar.gz: 055b1e80563bfeb02135a9cad90fee07dac3dd85c13ba90f9771c7af388b4457
5
5
  SHA512:
6
- metadata.gz: 271deb181e3aea58a76b104ac876e6130be561e56261175bcb9ef0ddb334a7ebbeda13a3e2d964c0291fe4b47d2f3f806c83d09dae90efe50bd57aca718bc41e
7
- data.tar.gz: 64a925ca77540df3b8b77ce15004369f478431909fcb6a7ffc4fd4f9f516e67362ddd5b4a0012832cf3e64ba54051fca16b870a37784ce01cf3cdcf66e4a4653
6
+ metadata.gz: 3f8e69b183b21759ebd410cc064901c99fb6de71f8a13e656dc133238be095e8b2d9c9bb4cb78db79efeb25cd3e68d386bac3df07a96045793f73259360fb2f1
7
+ data.tar.gz: 66930baf77b505500e1879db1c8cb83d5104c048b37a13e328331063fd4e55573f2d8ac917837b76cdea547b37a5798e4de0f704ef3a0524c91c8928c33f76ea
data/README.md CHANGED
@@ -474,6 +474,16 @@ CLIPS::Environment::Defrule.remove_break(defrule)
474
474
  defrule.remove_break
475
475
  ```
476
476
 
477
+ ### `CLIPS::Environment::Defrule.salience`
478
+ ### `CLIPS::Environment::Defrule#salience`
479
+
480
+ Returns the salience of a defrule
481
+
482
+ ```ruby
483
+ CLIPS::Environment::Defrule.salience(defrule)
484
+ defrule.salience
485
+ ```
486
+
477
487
  ### `CLIPS::Environment.find_defmodule`
478
488
  ### `CLIPS::Environment#find_defmodule`
479
489
 
@@ -540,6 +550,22 @@ CLIPS::Environment.get_deftemplate_list(defmodule)
540
550
  env.get_deftemplate_list(defmodule)
541
551
  ```
542
552
 
553
+ ### `CLIPS::Environment.get_defrule_list`
554
+ ### `CLIPS::Environment#get_defrule_list`
555
+
556
+ Return an array of Defrule names as symbols in the environment. Pass an argument of a
557
+ symbol, string, or Defmodule object in order to only get Defrules
558
+ in that Defmodule. If you do not, it will return all Defrule names in all modules.
559
+
560
+ ```ruby
561
+ CLIPS::Environment.get_defrule_list
562
+ env.get_defrule_list
563
+ CLIPS::Environment.get_defrule_list(:MAIN)
564
+ env.get_defrule_list(:MAIN)
565
+ CLIPS::Environment.get_defrule_list(defmodule)
566
+ env.get_defrule_list(defmodule)
567
+ ```
568
+
543
569
  ### `CLIPS::Environment.find_deftemplate`
544
570
  ### `CLIPS::Environment#find_deftemplate`
545
571
 
@@ -741,13 +767,23 @@ deftemplate.slot_defaultp('bar')
741
767
  ### `CLIPS::Environment::Defmodule.get_deftemplate_list`
742
768
  ### `CLIPS::Environment::Defmodule#get_deftemplate_list`
743
769
 
744
- Return an array of Deftemplate names as symboles in the Defmodule
770
+ Return an array of Deftemplate names as symbols in the Defmodule
745
771
 
746
772
  ```ruby
747
773
  CLIPS::Environment::Defmodule.get_deftemplate_list(defmodule)
748
774
  defmodule.get_deftemplate_list
749
775
  ```
750
776
 
777
+ ### `CLIPS::Environment::Defmodule.get_defrule_list`
778
+ ### `CLIPS::Environment::Defmodule#get_defrule_list`
779
+
780
+ Return an array of Defrule names as symbols in the Defmodule
781
+
782
+ ```ruby
783
+ CLIPS::Environment::Defmodule.get_defrule_list(defmodule)
784
+ defmodule.get_defrule_list
785
+ ```
786
+
751
787
  ### `CLIPS::Environment.find_deffacts`
752
788
  ### `CLIPS::Environment#find_deffacts`
753
789
 
@@ -1954,6 +1954,74 @@ static VALUE clips_environment_static_get_deftemplate_list(int argc, VALUE *argv
1954
1954
  return out;
1955
1955
  }
1956
1956
 
1957
+ static VALUE clips_environment_get_defrule_list(int argc, VALUE *argv, VALUE rbEnvironment) {
1958
+ VALUE defmodule_or_defmodule_name;
1959
+ Environment *env;
1960
+ Defmodule *module;
1961
+ CLIPSValue value;
1962
+ VALUE out;
1963
+
1964
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
1965
+
1966
+ rb_scan_args(argc, argv, "01", &defmodule_or_defmodule_name);
1967
+ switch (TYPE(defmodule_or_defmodule_name)) {
1968
+ case T_NIL:
1969
+ module = NULL;
1970
+ break;
1971
+ case T_STRING:
1972
+ case T_SYMBOL:
1973
+ TypedData_Get_Struct(
1974
+ clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
1975
+ Defmodule, &Defmodule_type, module);
1976
+ break;
1977
+ case T_DATA:
1978
+ TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
1979
+ break;
1980
+ default:
1981
+ rb_warn("defmodule name must be a symbol or string");
1982
+ return Qnil;
1983
+ }
1984
+ GetDefruleList(env, &value, module);
1985
+
1986
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
1987
+
1988
+ return out;
1989
+ }
1990
+
1991
+ static VALUE clips_environment_static_get_defrule_list(int argc, VALUE *argv, VALUE klass) {
1992
+ VALUE rbEnvironment, defmodule_or_defmodule_name;
1993
+ Environment *env;
1994
+ Defmodule *module;
1995
+ CLIPSValue value;
1996
+ VALUE out;
1997
+
1998
+ rb_scan_args(argc, argv, "11", &rbEnvironment, &defmodule_or_defmodule_name);
1999
+
2000
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
2001
+ switch (TYPE(defmodule_or_defmodule_name)) {
2002
+ case T_NIL:
2003
+ module = NULL;
2004
+ break;
2005
+ case T_STRING:
2006
+ case T_SYMBOL:
2007
+ TypedData_Get_Struct(
2008
+ clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
2009
+ Defmodule, &Defmodule_type, module);
2010
+ break;
2011
+ case T_DATA:
2012
+ TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
2013
+ break;
2014
+ default:
2015
+ rb_warn("defmodule name must be a symbol or string");
2016
+ return Qnil;
2017
+ }
2018
+ GetDefruleList(env, &value, module);
2019
+
2020
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
2021
+
2022
+ return out;
2023
+ }
2024
+
1957
2025
  static VALUE clips_environment_defmodule_name(VALUE self)
1958
2026
  {
1959
2027
  Defmodule *defmodule;
@@ -2050,6 +2118,30 @@ static VALUE clips_environment_defmodule_static_get_deftemplate_list(VALUE self,
2050
2118
  return clips_environment_defmodule_get_deftemplate_list(rbDefmodule);
2051
2119
  }
2052
2120
 
2121
+ static VALUE clips_environment_defmodule_get_defrule_list(VALUE self)
2122
+ {
2123
+ Defmodule *module;
2124
+ Environment *env;
2125
+ CLIPSValue value;
2126
+ VALUE out;
2127
+
2128
+ VALUE rbEnvironment = rb_iv_get(self, "@environment");
2129
+
2130
+ TypedData_Get_Struct(self, Defmodule, &Defmodule_type, module);
2131
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
2132
+
2133
+ GetDefruleList(env, &value, module);
2134
+
2135
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
2136
+
2137
+ return out;
2138
+ }
2139
+
2140
+ static VALUE clips_environment_defmodule_static_get_defrule_list(VALUE self, VALUE rbDefmodule)
2141
+ {
2142
+ return clips_environment_defmodule_get_defrule_list(rbDefmodule);
2143
+ }
2144
+
2053
2145
  static VALUE clips_environment_defrule_name(VALUE self)
2054
2146
  {
2055
2147
  Defrule *defrule;
@@ -2314,6 +2406,20 @@ static VALUE clips_environment_defrule_static_remove_break(VALUE self, VALUE rbD
2314
2406
  return clips_environment_defrule_remove_break(rbDefrule);
2315
2407
  }
2316
2408
 
2409
+ static VALUE clips_environment_defrule_salience(VALUE self)
2410
+ {
2411
+ Defrule *defrule;
2412
+
2413
+ TypedData_Get_Struct(self, Defrule, &Defrule_type, defrule);
2414
+
2415
+ return INT2NUM(defrule->salience);
2416
+ }
2417
+
2418
+ static VALUE clips_environment_defrule_static_salience(VALUE self, VALUE rbDefrule)
2419
+ {
2420
+ return clips_environment_defrule_salience(rbDefrule);
2421
+ }
2422
+
2317
2423
  static VALUE clips_environment_watch(VALUE self, VALUE item)
2318
2424
  {
2319
2425
  Environment *env;
@@ -3013,6 +3119,8 @@ void Init_clipsruby(void)
3013
3119
  rb_define_method(rbEnvironment, "get_fact_list", clips_environment_get_fact_list, -1);
3014
3120
  rb_define_singleton_method(rbEnvironment, "get_deftemplate_list", clips_environment_static_get_deftemplate_list, -1);
3015
3121
  rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
3122
+ rb_define_singleton_method(rbEnvironment, "get_defrule_list", clips_environment_static_get_defrule_list, -1);
3123
+ rb_define_method(rbEnvironment, "get_defrule_list", clips_environment_get_defrule_list, -1);
3016
3124
  rb_define_singleton_method(rbEnvironment, "find_deffacts", clips_environment_static_find_deffacts, 2);
3017
3125
  rb_define_method(rbEnvironment, "find_deffacts", clips_environment_find_deffacts, 1);
3018
3126
  rb_define_singleton_method(rbEnvironment, "watch", clips_environment_static_watch, 2);
@@ -3136,6 +3244,8 @@ void Init_clipsruby(void)
3136
3244
  rb_define_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_get_fact_list, 0);
3137
3245
  rb_define_singleton_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_static_get_deftemplate_list, 1);
3138
3246
  rb_define_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_get_deftemplate_list, 0);
3247
+ rb_define_singleton_method(rbDefmodule, "get_defrule_list", clips_environment_defmodule_static_get_defrule_list, 1);
3248
+ rb_define_method(rbDefmodule, "get_defrule_list", clips_environment_defmodule_get_defrule_list, 0);
3139
3249
 
3140
3250
  VALUE rbFact = rb_define_class_under(rbEnvironment, "Fact", rb_cObject);
3141
3251
  rb_define_alloc_func(rbFact, fact_alloc);
@@ -3174,6 +3284,8 @@ void Init_clipsruby(void)
3174
3284
  rb_define_method(rbDefrule, "set_break", clips_environment_defrule_set_break, 0);
3175
3285
  rb_define_singleton_method(rbDefrule, "remove_break", clips_environment_defrule_static_remove_break, 1);
3176
3286
  rb_define_method(rbDefrule, "remove_break", clips_environment_defrule_remove_break, 0);
3287
+ rb_define_singleton_method(rbDefrule, "salience", clips_environment_defrule_static_salience, 1);
3288
+ rb_define_method(rbDefrule, "salience", clips_environment_defrule_salience, 0);
3177
3289
 
3178
3290
  VALUE rbInstance = rb_define_class_under(rbEnvironment, "Instance", rb_cObject);
3179
3291
  }
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.29
4
+ version: 0.0.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Johnston