clipsruby 0.0.22 → 0.0.23

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 -0
  3. data/ext/clipsruby/clipsruby.c +95 -0
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f7a174c8ca0889553334a3a6ad54580624d7d92695e3483aa44a130627b3fcb
4
- data.tar.gz: a31141c4ce2490c74218316c89d08342dab315d5c35016c8dd488c2a344f8ae7
3
+ metadata.gz: 994b076d823d294b992d1621ec327e72cd415602c744d3214b16e15b6624dcbd
4
+ data.tar.gz: 864a892fb3405400362b6ceeea13d24f3c22bf4508f4013b14c6f3a6dd102e4f
5
5
  SHA512:
6
- metadata.gz: 863a626437f0c4583e0f35618b4fd29c461b579833970e08999202dc35c2ac306a61b5eb3d029551187c7791d7b7fb22cb3d400d4106dea3c30eb1f1eccd7e73
7
- data.tar.gz: aa4858ed68e383ff113accafb0f4652d4453448e93e6ecfa5c55a5903263925ae4ed114401158cb8d08b291a85eaf82891df0020a0b8f74cd9fbabdb228f4cec
6
+ metadata.gz: 0a2bbd8b165667a1a2b07b19b8099ec0dfae9ccbf4b669d469421f5db66c53840a00a0855f07479b272e030b0fb06430f28382340af1e3efe60af13858542ca4
7
+ data.tar.gz: 918c4ffd67a5623d761805e4f60920c4ac250e321cb33fca2f61ad26ff5ac28b4cc92acaaeaa1478e8110c3697d719a9c8e69da5da96fcda88d5b2a4d078bef0
data/README.md CHANGED
@@ -514,6 +514,22 @@ CLIPS::Environment::Defmodule.get_fact_list(defmodule)
514
514
  defmodule.get_fact_list
515
515
  ```
516
516
 
517
+ ### `CLIPS::Environment.get_deftemplate_list`
518
+ ### `CLIPS::Environment#get_deftemplate_list`
519
+
520
+ Return an array of Deftemplate names as symbols in the environment. Pass an argument of a
521
+ symbol, string, or Defmodule object in order to only get Deftemplates
522
+ in that Defmodule. If you do not, it will return all Deftemplate names in all modules.
523
+
524
+ ```ruby
525
+ CLIPS::Environment.get_deftemplate_list
526
+ env.get_deftemplate_list
527
+ CLIPS::Environment.get_deftemplate_list(:MAIN)
528
+ env.get_deftemplate_list(:MAIN)
529
+ CLIPS::Environment.get_deftemplate_list(defmodule)
530
+ env.get_deftemplate_list(defmodule)
531
+ ```
532
+
517
533
  ### `CLIPS::Environment.find_deftemplate`
518
534
  ### `CLIPS::Environment#find_deftemplate`
519
535
 
@@ -555,6 +571,16 @@ CLIPS::Environment::Deftemplate.assert_hash(deftemplate, foo: :bar)
555
571
  deftemplate.assert_hash(foo: :bar)
556
572
  ```
557
573
 
574
+ ### `CLIPS::Environment::Defmodule.get_deftemplate_list`
575
+ ### `CLIPS::Environment::Defmodule#get_deftemplate_list`
576
+
577
+ Return an array of Deftemplate names as symboles in the Defmodule
578
+
579
+ ```ruby
580
+ CLIPS::Environment::Defmodule.get_deftemplate_list(defmodule)
581
+ defmodule.get_deftemplate_list
582
+ ```
583
+
558
584
  ### `CLIPS::Environment.find_deffacts`
559
585
  ### `CLIPS::Environment#find_deffacts`
560
586
 
@@ -1664,7 +1664,74 @@ static VALUE clips_environment_static_get_fact_list(int argc, VALUE *argv, VALUE
1664
1664
  CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
1665
1665
 
1666
1666
  return out;
1667
+ }
1668
+
1669
+ static VALUE clips_environment_get_deftemplate_list(int argc, VALUE *argv, VALUE rbEnvironment) {
1670
+ VALUE defmodule_or_defmodule_name;
1671
+ Environment *env;
1672
+ Defmodule *module;
1673
+ CLIPSValue value;
1674
+ VALUE out;
1675
+
1676
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
1677
+
1678
+ rb_scan_args(argc, argv, "01", &defmodule_or_defmodule_name);
1679
+ switch (TYPE(defmodule_or_defmodule_name)) {
1680
+ case T_NIL:
1681
+ module = NULL;
1682
+ break;
1683
+ case T_STRING:
1684
+ case T_SYMBOL:
1685
+ TypedData_Get_Struct(
1686
+ clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
1687
+ Defmodule, &Defmodule_type, module);
1688
+ break;
1689
+ case T_DATA:
1690
+ TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
1691
+ break;
1692
+ default:
1693
+ rb_warn("defmodule name must be a symbol or string");
1694
+ return Qnil;
1695
+ }
1696
+ GetDeftemplateList(env, &value, module);
1697
+
1698
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
1667
1699
 
1700
+ return out;
1701
+ }
1702
+
1703
+ static VALUE clips_environment_static_get_deftemplate_list(int argc, VALUE *argv, VALUE klass) {
1704
+ VALUE rbEnvironment, defmodule_or_defmodule_name;
1705
+ Environment *env;
1706
+ Defmodule *module;
1707
+ CLIPSValue value;
1708
+ VALUE out;
1709
+
1710
+ rb_scan_args(argc, argv, "11", &rbEnvironment, &defmodule_or_defmodule_name);
1711
+
1712
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
1713
+ switch (TYPE(defmodule_or_defmodule_name)) {
1714
+ case T_NIL:
1715
+ module = NULL;
1716
+ break;
1717
+ case T_STRING:
1718
+ case T_SYMBOL:
1719
+ TypedData_Get_Struct(
1720
+ clips_environment_find_defmodule(rbEnvironment, defmodule_or_defmodule_name),
1721
+ Defmodule, &Defmodule_type, module);
1722
+ break;
1723
+ case T_DATA:
1724
+ TypedData_Get_Struct(defmodule_or_defmodule_name, Defmodule, &Defmodule_type, module);
1725
+ break;
1726
+ default:
1727
+ rb_warn("defmodule name must be a symbol or string");
1728
+ return Qnil;
1729
+ }
1730
+ GetDeftemplateList(env, &value, module);
1731
+
1732
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
1733
+
1734
+ return out;
1668
1735
  }
1669
1736
 
1670
1737
  static VALUE clips_environment_defmodule_name(VALUE self)
@@ -1739,6 +1806,30 @@ static VALUE clips_environment_defmodule_static_get_fact_list(VALUE self, VALUE
1739
1806
  return clips_environment_defmodule_get_fact_list(rbDefmodule);
1740
1807
  }
1741
1808
 
1809
+ static VALUE clips_environment_defmodule_get_deftemplate_list(VALUE self)
1810
+ {
1811
+ Defmodule *module;
1812
+ Environment *env;
1813
+ CLIPSValue value;
1814
+ VALUE out;
1815
+
1816
+ VALUE rbEnvironment = rb_iv_get(self, "@environment");
1817
+
1818
+ TypedData_Get_Struct(self, Defmodule, &Defmodule_type, module);
1819
+ TypedData_Get_Struct(rbEnvironment, Environment, &Environment_type, env);
1820
+
1821
+ GetDeftemplateList(env, &value, module);
1822
+
1823
+ CLIPSValue_to_VALUE(&value, &out, &rbEnvironment);
1824
+
1825
+ return out;
1826
+ }
1827
+
1828
+ static VALUE clips_environment_defmodule_static_get_deftemplate_list(VALUE self, VALUE rbDefmodule)
1829
+ {
1830
+ return clips_environment_defmodule_get_deftemplate_list(rbDefmodule);
1831
+ }
1832
+
1742
1833
  static VALUE clips_environment_defrule_name(VALUE self)
1743
1834
  {
1744
1835
  Defrule *defrule;
@@ -1896,6 +1987,8 @@ void Init_clipsruby(void)
1896
1987
  rb_define_method(rbEnvironment, "set_current_module", clips_environment_set_current_module, 1);
1897
1988
  rb_define_singleton_method(rbEnvironment, "get_fact_list", clips_environment_static_get_fact_list, -1);
1898
1989
  rb_define_method(rbEnvironment, "get_fact_list", clips_environment_get_fact_list, -1);
1990
+ rb_define_singleton_method(rbEnvironment, "get_deftemplate_list", clips_environment_static_get_deftemplate_list, -1);
1991
+ rb_define_method(rbEnvironment, "get_deftemplate_list", clips_environment_get_deftemplate_list, -1);
1899
1992
  rb_define_singleton_method(rbEnvironment, "find_deffacts", clips_environment_static_find_deffacts, 2);
1900
1993
  rb_define_method(rbEnvironment, "find_deffacts", clips_environment_find_deffacts, 1);
1901
1994
 
@@ -1925,6 +2018,8 @@ void Init_clipsruby(void)
1925
2018
  rb_define_method(rbDefmodule, "set_current", clips_environment_defmodule_set_current, 0);
1926
2019
  rb_define_singleton_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_static_get_fact_list, 1);
1927
2020
  rb_define_method(rbDefmodule, "get_fact_list", clips_environment_defmodule_get_fact_list, 0);
2021
+ rb_define_singleton_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_static_get_deftemplate_list, 1);
2022
+ rb_define_method(rbDefmodule, "get_deftemplate_list", clips_environment_defmodule_get_deftemplate_list, 0);
1928
2023
 
1929
2024
  VALUE rbFact = rb_define_class_under(rbEnvironment, "Fact", rb_cObject);
1930
2025
  rb_define_alloc_func(rbFact, fact_alloc);
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.22
4
+ version: 0.0.23
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-13 00:00:00.000000000 Z
11
+ date: 2024-09-14 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