clipsruby 0.0.30 → 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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -6
  3. data/ext/clipsruby/clipsruby.c +31 -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: e60b635195b3e8fb7375f1f93d4fa5c8459c6eb5c3ed22e9e189029382e74da8
4
+ data.tar.gz: a641f8b2fbbdeca662101ab05ad0dbd6b8fe4688c2ad6ba73f04a2de93badacc
5
5
  SHA512:
6
- metadata.gz: 3f8e69b183b21759ebd410cc064901c99fb6de71f8a13e656dc133238be095e8b2d9c9bb4cb78db79efeb25cd3e68d386bac3df07a96045793f73259360fb2f1
7
- data.tar.gz: 66930baf77b505500e1879db1c8cb83d5104c048b37a13e328331063fd4e55573f2d8ac917837b76cdea547b37a5798e4de0f704ef3a0524c91c8928c33f76ea
6
+ metadata.gz: e7a266cd73117d6497c4c93d141311ceaaaff17550ba753af0eaa98c8051cac3b0ea44d36c4d796da5982354ba417b38a937a49e68992add8e290cbbb22811ab
7
+ data.tar.gz: 82822e678d0342232792fc5ffb8d451e54d2e9e8cce877bdf5d8fa231c045a2477621c82d9b6d17967502d8135b6a5d1049a3539b6f8b84b82669bc4b493c312
data/README.md CHANGED
@@ -542,11 +542,11 @@ symbol, string, or Defmodule object in order to only get Deftemplates
542
542
  in that Defmodule. If you do not, it will return all Deftemplate names in all modules.
543
543
 
544
544
  ```ruby
545
- CLIPS::Environment.get_deftemplate_list
545
+ CLIPS::Environment.get_deftemplate_list(env)
546
546
  env.get_deftemplate_list
547
- CLIPS::Environment.get_deftemplate_list(:MAIN)
547
+ CLIPS::Environment.get_deftemplate_list(env, :MAIN)
548
548
  env.get_deftemplate_list(:MAIN)
549
- CLIPS::Environment.get_deftemplate_list(defmodule)
549
+ CLIPS::Environment.get_deftemplate_list(env, defmodule)
550
550
  env.get_deftemplate_list(defmodule)
551
551
  ```
552
552
 
@@ -558,14 +558,24 @@ symbol, string, or Defmodule object in order to only get Defrules
558
558
  in that Defmodule. If you do not, it will return all Defrule names in all modules.
559
559
 
560
560
  ```ruby
561
- CLIPS::Environment.get_defrule_list
561
+ CLIPS::Environment.get_defrule_list(env)
562
562
  env.get_defrule_list
563
- CLIPS::Environment.get_defrule_list(:MAIN)
563
+ CLIPS::Environment.get_defrule_list(env, :MAIN)
564
564
  env.get_defrule_list(:MAIN)
565
- CLIPS::Environment.get_defrule_list(defmodule)
565
+ CLIPS::Environment.get_defrule_list(env, defmodule)
566
566
  env.get_defrule_list(defmodule)
567
567
  ```
568
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
+
569
579
  ### `CLIPS::Environment.find_deftemplate`
570
580
  ### `CLIPS::Environment#find_deftemplate`
571
581
 
@@ -2142,6 +2142,26 @@ static VALUE clips_environment_defmodule_static_get_defrule_list(VALUE self, VAL
2142
2142
  return clips_environment_defmodule_get_defrule_list(rbDefmodule);
2143
2143
  }
2144
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
+
2145
2165
  static VALUE clips_environment_defrule_name(VALUE self)
2146
2166
  {
2147
2167
  Defrule *defrule;
@@ -2159,10 +2179,18 @@ static VALUE clips_environment_defrule_static_name(VALUE self, VALUE rbDefrule)
2159
2179
  static VALUE clips_environment_defrule_pp_form(VALUE self)
2160
2180
  {
2161
2181
  Defrule *defrule;
2182
+ const char *pp_form;
2162
2183
 
2163
2184
  TypedData_Get_Struct(self, Defrule, &Defrule_type, defrule);
2164
2185
 
2165
- return rb_str_new2(DefrulePPForm(defrule));
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
+ }
2166
2194
  }
2167
2195
 
2168
2196
  static VALUE clips_environment_defrule_static_pp_form(VALUE self, VALUE rbDefrule)
@@ -3121,6 +3149,8 @@ void Init_clipsruby(void)
3121
3149
  rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
3122
3150
  rb_define_singleton_method(rbEnvironment, "get_defrule_list", clips_environment_static_get_defrule_list, -1);
3123
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);
3124
3154
  rb_define_singleton_method(rbEnvironment, "find_deffacts", clips_environment_static_find_deffacts, 2);
3125
3155
  rb_define_method(rbEnvironment, "find_deffacts", clips_environment_find_deffacts, 1);
3126
3156
  rb_define_singleton_method(rbEnvironment, "watch", clips_environment_static_watch, 2);
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.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-23 00:00:00.000000000 Z
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