feelin 4.3.0 → 7.0.1

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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -1
  3. data/CHANGELOG.md +14 -1
  4. data/README.md +29 -0
  5. data/feelin.gemspec +8 -2
  6. data/lib/feelin/js/dist/feelin.js +13630 -0
  7. data/lib/feelin/js/entry.js +1 -0
  8. data/lib/feelin/js/package-lock.json +526 -31
  9. data/lib/feelin/js/package.json +8 -1
  10. data/lib/feelin/version.rb +1 -1
  11. data/lib/feelin.rb +36 -35
  12. data/spec/feelin/feelin_spec.rb +14 -0
  13. metadata +12 -106
  14. data/lib/feelin/js/node_modules/.package-lock.json +0 -67
  15. data/lib/feelin/js/node_modules/@lezer/common/LICENSE +0 -21
  16. data/lib/feelin/js/node_modules/@lezer/common/README.md +0 -14
  17. data/lib/feelin/js/node_modules/@lezer/common/dist/index.cjs +0 -2181
  18. data/lib/feelin/js/node_modules/@lezer/common/dist/index.d.cts +0 -1137
  19. data/lib/feelin/js/node_modules/@lezer/common/dist/index.d.ts +0 -1137
  20. data/lib/feelin/js/node_modules/@lezer/common/dist/index.js +0 -2168
  21. data/lib/feelin/js/node_modules/@lezer/common/package.json +0 -32
  22. data/lib/feelin/js/node_modules/@lezer/highlight/LICENSE +0 -21
  23. data/lib/feelin/js/node_modules/@lezer/highlight/README.md +0 -14
  24. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.cjs +0 -915
  25. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.d.cts +0 -621
  26. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.d.ts +0 -623
  27. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.js +0 -904
  28. data/lib/feelin/js/node_modules/@lezer/highlight/package.json +0 -31
  29. data/lib/feelin/js/node_modules/@lezer/lr/LICENSE +0 -21
  30. data/lib/feelin/js/node_modules/@lezer/lr/README.md +0 -25
  31. data/lib/feelin/js/node_modules/@lezer/lr/dist/constants.d.ts +0 -45
  32. data/lib/feelin/js/node_modules/@lezer/lr/dist/constants.js +0 -5
  33. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.cjs +0 -1890
  34. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.d.cts +0 -303
  35. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.d.ts +0 -303
  36. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.js +0 -1883
  37. data/lib/feelin/js/node_modules/@lezer/lr/package.json +0 -32
  38. data/lib/feelin/js/node_modules/feelin/LICENSE +0 -21
  39. data/lib/feelin/js/node_modules/feelin/README.md +0 -65
  40. data/lib/feelin/js/node_modules/feelin/dist/builtins.d.ts +0 -355
  41. data/lib/feelin/js/node_modules/feelin/dist/index.cjs +0 -2072
  42. data/lib/feelin/js/node_modules/feelin/dist/index.cjs.map +0 -1
  43. data/lib/feelin/js/node_modules/feelin/dist/index.d.ts +0 -3
  44. data/lib/feelin/js/node_modules/feelin/dist/index.esm.js +0 -2063
  45. data/lib/feelin/js/node_modules/feelin/dist/index.esm.js.map +0 -1
  46. data/lib/feelin/js/node_modules/feelin/dist/interpreter.d.ts +0 -26
  47. data/lib/feelin/js/node_modules/feelin/dist/parser.d.ts +0 -4
  48. data/lib/feelin/js/node_modules/feelin/dist/temporal.d.ts +0 -6
  49. data/lib/feelin/js/node_modules/feelin/dist/types.d.ts +0 -35
  50. data/lib/feelin/js/node_modules/feelin/dist/utils.d.ts +0 -12
  51. data/lib/feelin/js/node_modules/feelin/package.json +0 -63
  52. data/lib/feelin/js/node_modules/lezer-feel/LICENSE +0 -21
  53. data/lib/feelin/js/node_modules/lezer-feel/README.md +0 -94
  54. data/lib/feelin/js/node_modules/lezer-feel/dist/index.cjs +0 -1328
  55. data/lib/feelin/js/node_modules/lezer-feel/dist/index.cjs.map +0 -1
  56. data/lib/feelin/js/node_modules/lezer-feel/dist/index.d.ts +0 -32
  57. data/lib/feelin/js/node_modules/lezer-feel/dist/index.js +0 -1323
  58. data/lib/feelin/js/node_modules/lezer-feel/dist/index.js.map +0 -1
  59. data/lib/feelin/js/node_modules/lezer-feel/package.json +0 -61
  60. data/lib/feelin/js/node_modules/luxon/LICENSE.md +0 -7
  61. data/lib/feelin/js/node_modules/luxon/README.md +0 -55
  62. data/lib/feelin/js/node_modules/luxon/build/amd/luxon.js +0 -8623
  63. data/lib/feelin/js/node_modules/luxon/build/amd/luxon.js.map +0 -1
  64. data/lib/feelin/js/node_modules/luxon/build/cjs-browser/luxon.js +0 -8621
  65. data/lib/feelin/js/node_modules/luxon/build/cjs-browser/luxon.js.map +0 -1
  66. data/lib/feelin/js/node_modules/luxon/build/es6/luxon.js +0 -8011
  67. data/lib/feelin/js/node_modules/luxon/build/es6/luxon.js.map +0 -1
  68. data/lib/feelin/js/node_modules/luxon/build/global/luxon.js +0 -8626
  69. data/lib/feelin/js/node_modules/luxon/build/global/luxon.js.map +0 -1
  70. data/lib/feelin/js/node_modules/luxon/build/global/luxon.min.js +0 -1
  71. data/lib/feelin/js/node_modules/luxon/build/global/luxon.min.js.map +0 -1
  72. data/lib/feelin/js/node_modules/luxon/build/node/luxon.js +0 -7679
  73. data/lib/feelin/js/node_modules/luxon/build/node/luxon.js.map +0 -1
  74. data/lib/feelin/js/node_modules/luxon/package.json +0 -87
  75. data/lib/feelin/js/node_modules/luxon/src/datetime.js +0 -2566
  76. data/lib/feelin/js/node_modules/luxon/src/duration.js +0 -990
  77. data/lib/feelin/js/node_modules/luxon/src/errors.js +0 -61
  78. data/lib/feelin/js/node_modules/luxon/src/impl/conversions.js +0 -206
  79. data/lib/feelin/js/node_modules/luxon/src/impl/diff.js +0 -95
  80. data/lib/feelin/js/node_modules/luxon/src/impl/digits.js +0 -90
  81. data/lib/feelin/js/node_modules/luxon/src/impl/english.js +0 -233
  82. data/lib/feelin/js/node_modules/luxon/src/impl/formats.js +0 -176
  83. data/lib/feelin/js/node_modules/luxon/src/impl/formatter.js +0 -409
  84. data/lib/feelin/js/node_modules/luxon/src/impl/invalid.js +0 -14
  85. data/lib/feelin/js/node_modules/luxon/src/impl/locale.js +0 -554
  86. data/lib/feelin/js/node_modules/luxon/src/impl/regexParser.js +0 -335
  87. data/lib/feelin/js/node_modules/luxon/src/impl/tokenParser.js +0 -505
  88. data/lib/feelin/js/node_modules/luxon/src/impl/util.js +0 -316
  89. data/lib/feelin/js/node_modules/luxon/src/impl/zoneUtil.js +0 -34
  90. data/lib/feelin/js/node_modules/luxon/src/info.js +0 -205
  91. data/lib/feelin/js/node_modules/luxon/src/interval.js +0 -665
  92. data/lib/feelin/js/node_modules/luxon/src/luxon.js +0 -26
  93. data/lib/feelin/js/node_modules/luxon/src/package.json +0 -4
  94. data/lib/feelin/js/node_modules/luxon/src/settings.js +0 -180
  95. data/lib/feelin/js/node_modules/luxon/src/zone.js +0 -97
  96. data/lib/feelin/js/node_modules/luxon/src/zones/IANAZone.js +0 -231
  97. data/lib/feelin/js/node_modules/luxon/src/zones/fixedOffsetZone.js +0 -150
  98. data/lib/feelin/js/node_modules/luxon/src/zones/invalidZone.js +0 -53
  99. data/lib/feelin/js/node_modules/luxon/src/zones/systemZone.js +0 -61
  100. data/lib/feelin/js/node_modules/min-dash/LICENSE +0 -21
  101. data/lib/feelin/js/node_modules/min-dash/README.md +0 -38
  102. data/lib/feelin/js/node_modules/min-dash/dist/array.d.ts +0 -12
  103. data/lib/feelin/js/node_modules/min-dash/dist/collection.d.ts +0 -174
  104. data/lib/feelin/js/node_modules/min-dash/dist/fn.d.ts +0 -37
  105. data/lib/feelin/js/node_modules/min-dash/dist/index.cjs +0 -910
  106. data/lib/feelin/js/node_modules/min-dash/dist/index.d.ts +0 -5
  107. data/lib/feelin/js/node_modules/min-dash/dist/index.esm.js +0 -872
  108. data/lib/feelin/js/node_modules/min-dash/dist/lang.d.ts +0 -29
  109. data/lib/feelin/js/node_modules/min-dash/dist/min-dash.js +0 -916
  110. data/lib/feelin/js/node_modules/min-dash/dist/min-dash.min.js +0 -1
  111. data/lib/feelin/js/node_modules/min-dash/dist/object.d.ts +0 -112
  112. data/lib/feelin/js/node_modules/min-dash/package.json +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad59e202ca65ef00191b6d7596b0ebfe7ba286dde0043954591f896f5f85745f
4
- data.tar.gz: 6a651050d317f92e14a53985c94e10d0a7d1cf2feade2e943058a22dc7a8f326
3
+ metadata.gz: d14d729a1a7a6dfac83eae232db700fe7ee2772e6c6a73b0697d26451b9acb1f
4
+ data.tar.gz: f1ce26b4fe80144b014c50ee6c23d2cf8b1b018044d0143a3838933ef3c164f4
5
5
  SHA512:
6
- metadata.gz: 64ef9c93d95695b8a24f317f5d92eddd5967162ba327ea75c8dcf22fb36145c801b8c1ec1656f3eb912cc3f55a81567473b6e324268de877946209296d4234a1
7
- data.tar.gz: c1db9aa24638b468ace34da70a0c986308728b0cfb727b4d715b622415df76c29585c22bd541ef792e499746e65b692263df96192f93d714ac2b757f515625c0
6
+ metadata.gz: 3a1ddc86be9fadbb2043bb23b881b198c81962635276324ad4950c605078f128d3bc5e96f7cca4031633aca42f5084a042e7b20f696e86878117daf3e6d707e2
7
+ data.tar.gz: de182a5cdeb48279e195090b9f93c651fef336b8db7dd6b176e721e32edbd9ea6fd53d31037d789227ec0bf09ed541acf0e60e7a5931801edd25e14676c6b775
data/.gitignore CHANGED
@@ -3,4 +3,8 @@ log/*.log
3
3
  .byebug_history
4
4
  *.gem
5
5
  Gemfile.lock
6
- .idea
6
+ .idea
7
+
8
+ # JS dependencies — only needed to (re)build lib/feelin/js/dist/feelin.js,
9
+ # which is committed. Run `npm install` in lib/feelin/js to restore.
10
+ node_modules/
data/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.1.0] - 2025-03-26
8
+ ## [7.0.1] - 2026-06-22
9
+
10
+ ### Changed
11
+
12
+ * Updated the bundled `feelin` JavaScript library to 7.0.1.
13
+ * Rebuilt the JavaScript bundle with [esbuild](https://esbuild.github.io/). `feelin` is now distributed as an ES module, so it is pre-bundled into a single IIFE file (`lib/feelin/js/dist/feelin.js`) instead of being assembled from CommonJS at load time.
14
+ * `evaluate` / `unary_test` unwrap feelin 7's `EvaluationResult { value, warnings }` envelope, so callers keep receiving the bare value.
15
+
16
+ ### Fixed
17
+
18
+ * `serialize_context` built invalid JavaScript (a leading comma, `{,…}`) for an empty context once a custom function was registered.
19
+ * `serialize_context` built invalid JavaScript for custom function names containing spaces (e.g. `string join`); function names are now emitted as quoted keys forwarding to the attached global.
20
+
21
+ ## [4.3.1] - 2025-03-26
9
22
 
10
23
  * Initial release
data/README.md CHANGED
@@ -38,6 +38,35 @@ FEELIN.add_function('rates', proc { [10, 20] })
38
38
  FEELIN.evaluate('every rate in rates() satisfies rate < 10') # false
39
39
  ```
40
40
 
41
+ ## Development
42
+
43
+ The gem embeds the [feelin](https://github.com/nikku/feelin) JavaScript library, pre-bundled into a single file that is loaded into the V8 context at runtime. The JavaScript sources live in `lib/feelin/js`.
44
+
45
+ ### Updating the JavaScript dependencies
46
+
47
+ ```bash
48
+ cd lib/feelin/js
49
+ npm install # install the pinned versions
50
+ npm install feelin@<version> # bump feelin to a specific version
51
+ ```
52
+
53
+ ### Building the bundle
54
+
55
+ `feelin` is distributed as an ES module, so it is bundled ahead of time with [esbuild](https://esbuild.github.io/) into `lib/feelin/js/dist/feelin.js` — an IIFE that exposes the feelin API on the global `feel`. The entry point is `lib/feelin/js/entry.js`.
56
+
57
+ ```bash
58
+ cd lib/feelin/js
59
+ npm run build
60
+ ```
61
+
62
+ Commit the regenerated `dist/feelin.js` together with the updated `package.json` / `package-lock.json`.
63
+
64
+ ### Running the tests
65
+
66
+ ```bash
67
+ bundle exec rspec
68
+ ```
69
+
41
70
  ## Versioning policy
42
71
 
43
72
  Because this library is a wrapper - it is released with the same major/minor version numbers as the underlying feelin library
data/feelin.gemspec CHANGED
@@ -7,16 +7,22 @@ Gem::Specification.new do |spec|
7
7
  spec.version = FEELIN::VERSION
8
8
  spec.authors = ["Dmitry Arkhipov"]
9
9
  spec.email = ["d.arkhipov@ekzo.dev"]
10
- spec.homepage = "https://github.com/ekzo-dev/feelin"
10
+ spec.homepage = "https://github.com/ekzo-dev/ruby-feelin"
11
11
  spec.summary = "feelin Ruby wrapper"
12
12
  spec.description = "This gem uses embed V8 JavaScript engine and feelin JavaScript library to parse and evaluate DMN FEEL expressions"
13
13
  spec.license = "MIT"
14
14
 
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
17
+ spec.metadata['changelog_uri'] = 'https://github.com/ekzo-dev/ruby-feelin/CHANGELOG.md'
18
+
15
19
  spec.files = `git ls-files -z`.split("\x0")
16
20
  spec.require_paths = ["lib"]
17
21
 
18
- spec.add_dependency "mini_racer", "~> 0.18"
22
+ spec.add_dependency "mini_racer", "~> 0.21"
19
23
 
20
24
  spec.add_development_dependency "rspec", "3.12.0"
21
25
  spec.add_development_dependency "byebug", "11.1.3"
26
+
27
+ spec.required_ruby_version = ">= 3.1"
22
28
  end