clipsruby 0.0.30 → 0.0.32

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 +26 -6
  3. data/ext/clipsruby/clipsruby.c +46 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4dca72773ba370d57fd7c96a94820ce857f550ca792c78958885919234c0e03b
4
- data.tar.gz: 055b1e80563bfeb02135a9cad90fee07dac3dd85c13ba90f9771c7af388b4457
3
+ metadata.gz: d63c4466f611752b18eac8e195f3614784dd64b80ac007457fb550bc88847ee5
4
+ data.tar.gz: 353a3eb4fe11406b0b2b704a669b1933b0a3ec4c6c10c4b288cd0bf7b5a1fe58
5
5
  SHA512:
6
- metadata.gz: 3f8e69b183b21759ebd410cc064901c99fb6de71f8a13e656dc133238be095e8b2d9c9bb4cb78db79efeb25cd3e68d386bac3df07a96045793f73259360fb2f1
7
- data.tar.gz: 66930baf77b505500e1879db1c8cb83d5104c048b37a13e328331063fd4e55573f2d8ac917837b76cdea547b37a5798e4de0f704ef3a0524c91c8928c33f76ea
6
+ metadata.gz: 88e76e4afa90cf21db3718ed033a2463c8f38f5f9c17d3e643b901d4f9d83b36ec0c8d904d311db96cdaf6935b9694982508eebb5326c1eb43977c80660b40d5
7
+ data.tar.gz: 48665d09ede14f7707abaf1ad38c8202c12ee0fe655402d257399379e074e367b2bd18b3e3bec704bc5cfdfb280286890f325360384eb5e1d2a93d5ae3c57b0e
data/README.md CHANGED
@@ -424,6 +424,16 @@ CLIPS::Environment::Defrule.name(defrule)
424
424
  defrule.name
425
425
  ```
426
426
 
427
+ ### `CLIPS::Environment::Defrule.defmodule_name`
428
+ ### `CLIPS::Environment::Defrule#defmodule_name`
429
+
430
+ Returns the name of the defmodule in which the defrule is defined
431
+
432
+ ```ruby
433
+ CLIPS::Environment::Defrule.defmodule_name(defrule)
434
+ defrule.defmodule_name
435
+ ```
436
+
427
437
  ### `CLIPS::Environment::Defrule.is_deletable`
428
438
  ### `CLIPS::Environment::Defrule#is_deletable`
429
439
 
@@ -542,11 +552,11 @@ symbol, string, or Defmodule object in order to only get Deftemplates
542
552
  in that Defmodule. If you do not, it will return all Deftemplate names in all modules.
543
553
 
544
554
  ```ruby
545
- CLIPS::Environment.get_deftemplate_list
555
+ CLIPS::Environment.get_deftemplate_list(env)
546
556
  env.get_deftemplate_list
547
- CLIPS::Environment.get_deftemplate_list(:MAIN)
557
+ CLIPS::Environment.get_deftemplate_list(env, :MAIN)
548
558
  env.get_deftemplate_list(:MAIN)
549
- CLIPS::Environment.get_deftemplate_list(defmodule)
559
+ CLIPS::Environment.get_deftemplate_list(env, defmodule)
550
560
  env.get_deftemplate_list(defmodule)
551
561
  ```
552
562
 
@@ -558,14 +568,24 @@ symbol, string, or Defmodule object in order to only get Defrules
558
568
  in that Defmodule. If you do not, it will return all Defrule names in all modules.
559
569
 
560
570
  ```ruby
561
- CLIPS::Environment.get_defrule_list
571
+ CLIPS::Environment.get_defrule_list(env)
562
572
  env.get_defrule_list
563
- CLIPS::Environment.get_defrule_list(:MAIN)
573
+ CLIPS::Environment.get_defrule_list(env, :MAIN)
564
574
  env.get_defrule_list(:MAIN)
565
- CLIPS::Environment.get_defrule_list(defmodule)
575
+ CLIPS::Environment.get_defrule_list(env, defmodule)
566
576
  env.get_defrule_list(defmodule)
567
577
  ```
568
578
 
579
+ ### `CLIPS::Environment.get_defmodule_list`
580
+ ### `CLIPS::Environment#get_defmodule_list`
581
+
582
+ Return an array of Defmodule names as symbols in the environment.
583
+
584
+ ```ruby
585
+ CLIPS::Environment.get_defmodule_list(env)
586
+ env.get_defmodule_list
587
+ ```
588
+
569
589
  ### `CLIPS::Environment.find_deftemplate`
570
590
  ### `CLIPS::Environment#find_deftemplate`
571
591
 
@@ -110,6 +110,19 @@ static VALUE clips_environment_deftemplate_static_defmodule_name(VALUE self, VAL
110
110
  return clips_environment_deftemplate_defmodule_name(rbDeftemplate);
111
111
  }
112
112
 
113
+ static VALUE clips_environment_defrule_defmodule_name(VALUE self)
114
+ {
115
+ Defrule *rule;
116
+
117
+ TypedData_Get_Struct(self, Defrule, &Defrule_type, rule);
118
+
119
+ return ID2SYM(rb_intern(DefruleModule(rule)));
120
+ }
121
+
122
+ static VALUE clips_environment_defrule_static_defmodule_name(VALUE self, VALUE rbDefrule)
123
+ {
124
+ return clips_environment_defrule_defmodule_name(rbDefrule);
125
+ }
113
126
 
114
127
  void environment_free(void *data)
115
128
  {
@@ -2142,6 +2155,26 @@ static VALUE clips_environment_defmodule_static_get_defrule_list(VALUE self, VAL
2142
2155
  return clips_environment_defmodule_get_defrule_list(rbDefmodule);
2143
2156
  }
2144
2157
 
2158
+ static VALUE clips_environment_get_defmodule_list(VALUE self)
2159
+ {
2160
+ Environment *env;
2161
+ CLIPSValue value;
2162
+ VALUE out;
2163
+
2164
+ TypedData_Get_Struct(self, Environment, &Environment_type, env);
2165
+
2166
+ GetDefmoduleList(env, &value);
2167
+
2168
+ CLIPSValue_to_VALUE(&value, &out, &self);
2169
+
2170
+ return out;
2171
+ }
2172
+
2173
+ static VALUE clips_environment_static_get_defmodule_list(VALUE self, VALUE rbEnvironment)
2174
+ {
2175
+ return clips_environment_get_defmodule_list(rbEnvironment);
2176
+ }
2177
+
2145
2178
  static VALUE clips_environment_defrule_name(VALUE self)
2146
2179
  {
2147
2180
  Defrule *defrule;
@@ -2159,10 +2192,18 @@ static VALUE clips_environment_defrule_static_name(VALUE self, VALUE rbDefrule)
2159
2192
  static VALUE clips_environment_defrule_pp_form(VALUE self)
2160
2193
  {
2161
2194
  Defrule *defrule;
2195
+ const char *pp_form;
2162
2196
 
2163
2197
  TypedData_Get_Struct(self, Defrule, &Defrule_type, defrule);
2164
2198
 
2165
- return rb_str_new2(DefrulePPForm(defrule));
2199
+ pp_form = DefrulePPForm(defrule);
2200
+
2201
+ if (pp_form == NULL) {
2202
+ rb_warn("defrule did not have pp_form. This can happen if the defrule was loaded from a binary file.");
2203
+ return Qnil;
2204
+ } else {
2205
+ return rb_str_new2(pp_form);
2206
+ }
2166
2207
  }
2167
2208
 
2168
2209
  static VALUE clips_environment_defrule_static_pp_form(VALUE self, VALUE rbDefrule)
@@ -3121,6 +3162,8 @@ void Init_clipsruby(void)
3121
3162
  rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
3122
3163
  rb_define_singleton_method(rbEnvironment, "get_defrule_list", clips_environment_static_get_defrule_list, -1);
3123
3164
  rb_define_method(rbEnvironment, "get_defrule_list", clips_environment_get_defrule_list, -1);
3165
+ rb_define_singleton_method(rbEnvironment, "get_defmodule_list", clips_environment_static_get_defmodule_list, 1);
3166
+ rb_define_method(rbEnvironment, "get_defmodule_list", clips_environment_get_defmodule_list, 0);
3124
3167
  rb_define_singleton_method(rbEnvironment, "find_deffacts", clips_environment_static_find_deffacts, 2);
3125
3168
  rb_define_method(rbEnvironment, "find_deffacts", clips_environment_find_deffacts, 1);
3126
3169
  rb_define_singleton_method(rbEnvironment, "watch", clips_environment_static_watch, 2);
@@ -3286,6 +3329,8 @@ void Init_clipsruby(void)
3286
3329
  rb_define_method(rbDefrule, "remove_break", clips_environment_defrule_remove_break, 0);
3287
3330
  rb_define_singleton_method(rbDefrule, "salience", clips_environment_defrule_static_salience, 1);
3288
3331
  rb_define_method(rbDefrule, "salience", clips_environment_defrule_salience, 0);
3332
+ rb_define_singleton_method(rbDefrule, "defmodule_name", clips_environment_defrule_static_defmodule_name, 1);
3333
+ rb_define_method(rbDefrule, "defmodule_name", clips_environment_defrule_defmodule_name, 0);
3289
3334
 
3290
3335
  VALUE rbInstance = rb_define_class_under(rbEnvironment, "Instance", rb_cObject);
3291
3336
  }
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.30
4
+ version: 0.0.32
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-23 00:00:00.000000000 Z
11
+ date: 2024-09-25 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