clipsruby 0.0.29 → 0.0.31
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 +50 -4
- data/ext/clipsruby/clipsruby.c +143 -1
- 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: e60b635195b3e8fb7375f1f93d4fa5c8459c6eb5c3ed22e9e189029382e74da8
|
4
|
+
data.tar.gz: a641f8b2fbbdeca662101ab05ad0dbd6b8fe4688c2ad6ba73f04a2de93badacc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7a266cd73117d6497c4c93d141311ceaaaff17550ba753af0eaa98c8051cac3b0ea44d36c4d796da5982354ba417b38a937a49e68992add8e290cbbb22811ab
|
7
|
+
data.tar.gz: 82822e678d0342232792fc5ffb8d451e54d2e9e8cce877bdf5d8fa231c045a2477621c82d9b6d17967502d8135b6a5d1049a3539b6f8b84b82669bc4b493c312
|
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
|
|
@@ -532,14 +542,40 @@ symbol, string, or Defmodule object in order to only get Deftemplates
|
|
532
542
|
in that Defmodule. If you do not, it will return all Deftemplate names in all modules.
|
533
543
|
|
534
544
|
```ruby
|
535
|
-
CLIPS::Environment.get_deftemplate_list
|
545
|
+
CLIPS::Environment.get_deftemplate_list(env)
|
536
546
|
env.get_deftemplate_list
|
537
|
-
CLIPS::Environment.get_deftemplate_list(:MAIN)
|
547
|
+
CLIPS::Environment.get_deftemplate_list(env, :MAIN)
|
538
548
|
env.get_deftemplate_list(:MAIN)
|
539
|
-
CLIPS::Environment.get_deftemplate_list(defmodule)
|
549
|
+
CLIPS::Environment.get_deftemplate_list(env, 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(env)
|
562
|
+
env.get_defrule_list
|
563
|
+
CLIPS::Environment.get_defrule_list(env, :MAIN)
|
564
|
+
env.get_defrule_list(:MAIN)
|
565
|
+
CLIPS::Environment.get_defrule_list(env, defmodule)
|
566
|
+
env.get_defrule_list(defmodule)
|
567
|
+
```
|
568
|
+
|
569
|
+
### `CLIPS::Environment.get_defmodule_list`
|
570
|
+
### `CLIPS::Environment#get_defmodule_list`
|
571
|
+
|
572
|
+
Return an array of Defmodule names as symbols in the environment.
|
573
|
+
|
574
|
+
```ruby
|
575
|
+
CLIPS::Environment.get_defmodule_list(env)
|
576
|
+
env.get_defmodule_list
|
577
|
+
```
|
578
|
+
|
543
579
|
### `CLIPS::Environment.find_deftemplate`
|
544
580
|
### `CLIPS::Environment#find_deftemplate`
|
545
581
|
|
@@ -741,13 +777,23 @@ deftemplate.slot_defaultp('bar')
|
|
741
777
|
### `CLIPS::Environment::Defmodule.get_deftemplate_list`
|
742
778
|
### `CLIPS::Environment::Defmodule#get_deftemplate_list`
|
743
779
|
|
744
|
-
Return an array of Deftemplate names as
|
780
|
+
Return an array of Deftemplate names as symbols in the Defmodule
|
745
781
|
|
746
782
|
```ruby
|
747
783
|
CLIPS::Environment::Defmodule.get_deftemplate_list(defmodule)
|
748
784
|
defmodule.get_deftemplate_list
|
749
785
|
```
|
750
786
|
|
787
|
+
### `CLIPS::Environment::Defmodule.get_defrule_list`
|
788
|
+
### `CLIPS::Environment::Defmodule#get_defrule_list`
|
789
|
+
|
790
|
+
Return an array of Defrule names as symbols in the Defmodule
|
791
|
+
|
792
|
+
```ruby
|
793
|
+
CLIPS::Environment::Defmodule.get_defrule_list(defmodule)
|
794
|
+
defmodule.get_defrule_list
|
795
|
+
```
|
796
|
+
|
751
797
|
### `CLIPS::Environment.find_deffacts`
|
752
798
|
### `CLIPS::Environment#find_deffacts`
|
753
799
|
|
data/ext/clipsruby/clipsruby.c
CHANGED
@@ -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,50 @@ 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
|
+
|
2145
|
+
static VALUE clips_environment_get_defmodule_list(VALUE self)
|
2146
|
+
{
|
2147
|
+
Environment *env;
|
2148
|
+
CLIPSValue value;
|
2149
|
+
VALUE out;
|
2150
|
+
|
2151
|
+
TypedData_Get_Struct(self, Environment, &Environment_type, env);
|
2152
|
+
|
2153
|
+
GetDefmoduleList(env, &value);
|
2154
|
+
|
2155
|
+
CLIPSValue_to_VALUE(&value, &out, &self);
|
2156
|
+
|
2157
|
+
return out;
|
2158
|
+
}
|
2159
|
+
|
2160
|
+
static VALUE clips_environment_static_get_defmodule_list(VALUE self, VALUE rbEnvironment)
|
2161
|
+
{
|
2162
|
+
return clips_environment_get_defmodule_list(rbEnvironment);
|
2163
|
+
}
|
2164
|
+
|
2053
2165
|
static VALUE clips_environment_defrule_name(VALUE self)
|
2054
2166
|
{
|
2055
2167
|
Defrule *defrule;
|
@@ -2067,10 +2179,18 @@ static VALUE clips_environment_defrule_static_name(VALUE self, VALUE rbDefrule)
|
|
2067
2179
|
static VALUE clips_environment_defrule_pp_form(VALUE self)
|
2068
2180
|
{
|
2069
2181
|
Defrule *defrule;
|
2182
|
+
const char *pp_form;
|
2070
2183
|
|
2071
2184
|
TypedData_Get_Struct(self, Defrule, &Defrule_type, defrule);
|
2072
2185
|
|
2073
|
-
|
2186
|
+
pp_form = DefrulePPForm(defrule);
|
2187
|
+
|
2188
|
+
if (pp_form == NULL) {
|
2189
|
+
rb_warn("defrule did not have pp_form. This can happen if the defrule was loaded from a binary file.");
|
2190
|
+
return Qnil;
|
2191
|
+
} else {
|
2192
|
+
return rb_str_new2(pp_form);
|
2193
|
+
}
|
2074
2194
|
}
|
2075
2195
|
|
2076
2196
|
static VALUE clips_environment_defrule_static_pp_form(VALUE self, VALUE rbDefrule)
|
@@ -2314,6 +2434,20 @@ static VALUE clips_environment_defrule_static_remove_break(VALUE self, VALUE rbD
|
|
2314
2434
|
return clips_environment_defrule_remove_break(rbDefrule);
|
2315
2435
|
}
|
2316
2436
|
|
2437
|
+
static VALUE clips_environment_defrule_salience(VALUE self)
|
2438
|
+
{
|
2439
|
+
Defrule *defrule;
|
2440
|
+
|
2441
|
+
TypedData_Get_Struct(self, Defrule, &Defrule_type, defrule);
|
2442
|
+
|
2443
|
+
return INT2NUM(defrule->salience);
|
2444
|
+
}
|
2445
|
+
|
2446
|
+
static VALUE clips_environment_defrule_static_salience(VALUE self, VALUE rbDefrule)
|
2447
|
+
{
|
2448
|
+
return clips_environment_defrule_salience(rbDefrule);
|
2449
|
+
}
|
2450
|
+
|
2317
2451
|
static VALUE clips_environment_watch(VALUE self, VALUE item)
|
2318
2452
|
{
|
2319
2453
|
Environment *env;
|
@@ -3013,6 +3147,10 @@ void Init_clipsruby(void)
|
|
3013
3147
|
rb_define_method(rbEnvironment, "get_fact_list", clips_environment_get_fact_list, -1);
|
3014
3148
|
rb_define_singleton_method(rbEnvironment, "get_deftemplate_list", clips_environment_static_get_deftemplate_list, -1);
|
3015
3149
|
rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
|
3150
|
+
rb_define_singleton_method(rbEnvironment, "get_defrule_list", clips_environment_static_get_defrule_list, -1);
|
3151
|
+
rb_define_method(rbEnvironment, "get_defrule_list", clips_environment_get_defrule_list, -1);
|
3152
|
+
rb_define_singleton_method(rbEnvironment, "get_defmodule_list", clips_environment_static_get_defmodule_list, 1);
|
3153
|
+
rb_define_method(rbEnvironment, "get_defmodule_list", clips_environment_get_defmodule_list, 0);
|
3016
3154
|
rb_define_singleton_method(rbEnvironment, "find_deffacts", clips_environment_static_find_deffacts, 2);
|
3017
3155
|
rb_define_method(rbEnvironment, "find_deffacts", clips_environment_find_deffacts, 1);
|
3018
3156
|
rb_define_singleton_method(rbEnvironment, "watch", clips_environment_static_watch, 2);
|
@@ -3136,6 +3274,8 @@ void Init_clipsruby(void)
|
|
3136
3274
|
rb_define_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_get_fact_list, 0);
|
3137
3275
|
rb_define_singleton_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_static_get_deftemplate_list, 1);
|
3138
3276
|
rb_define_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_get_deftemplate_list, 0);
|
3277
|
+
rb_define_singleton_method(rbDefmodule, "get_defrule_list", clips_environment_defmodule_static_get_defrule_list, 1);
|
3278
|
+
rb_define_method(rbDefmodule, "get_defrule_list", clips_environment_defmodule_get_defrule_list, 0);
|
3139
3279
|
|
3140
3280
|
VALUE rbFact = rb_define_class_under(rbEnvironment, "Fact", rb_cObject);
|
3141
3281
|
rb_define_alloc_func(rbFact, fact_alloc);
|
@@ -3174,6 +3314,8 @@ void Init_clipsruby(void)
|
|
3174
3314
|
rb_define_method(rbDefrule, "set_break", clips_environment_defrule_set_break, 0);
|
3175
3315
|
rb_define_singleton_method(rbDefrule, "remove_break", clips_environment_defrule_static_remove_break, 1);
|
3176
3316
|
rb_define_method(rbDefrule, "remove_break", clips_environment_defrule_remove_break, 0);
|
3317
|
+
rb_define_singleton_method(rbDefrule, "salience", clips_environment_defrule_static_salience, 1);
|
3318
|
+
rb_define_method(rbDefrule, "salience", clips_environment_defrule_salience, 0);
|
3177
3319
|
|
3178
3320
|
VALUE rbInstance = rb_define_class_under(rbEnvironment, "Instance", rb_cObject);
|
3179
3321
|
}
|
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.31
|
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-24 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
|