parsecs 0.8.0 → 0.9.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 794032417267277d5b12e9ef7d76b3bbcbc4e2590fa1230c1d4600388a74aa55
4
- data.tar.gz: 7005495e663ef1656090b582bba5738cc2ccf8075bc182c672a5b87db6a034bd
3
+ metadata.gz: 66e5451ec9d950983f9e0900e1913e2619e7d88f2fee21eec4972c9311b7d74f
4
+ data.tar.gz: 161e65bff7e6d2b281e18ad0fa3ba4815f34ee81484329cbd2724f2eaeffaf9a
5
5
  SHA512:
6
- metadata.gz: 01edc288484e0c48e71afa19d9bca1a93e329f39c9af0d1efcba725e3783c9ba7c3d09bccd347f014f185460154b456d99dce2df7ec8caadbd89ec5e8a5e0b9d
7
- data.tar.gz: db1b0a6a59331065e8d279d9be948164cc103ba8c29331f94143f109c6b72e018bc92ebd74cc492cf047a5aa51cce0c434b7600f8c062379cd061c6a62427a55
6
+ metadata.gz: cab3eb621af78fa5a565adc603096f35850aa112778a5d55261f57bdd2042633c09821411e7e0083c9b2e2641382e7e0a030cf459a31552ae29ca3dc267444ec
7
+ data.tar.gz: 25d5f3bc6ffb401ef09320d75ebaaa989527c7720064adc9d4839ac75e17f63feb946a3530a24d8d8f9dd67104cc6115d7ea009d58933c7171ab27b8d7f1c832
@@ -38,7 +38,7 @@ libs.each do |lib|
38
38
  end
39
39
 
40
40
  GIT_REPOSITORY = 'https://github.com/niltonvasques/equations-parser.git'.freeze
41
- COMMIT = 'eca316d8ad99d4f2e68539a1efd7524288817006'.freeze
41
+ COMMIT = 'd35b30205dd08f80ceb01df003a376c95a715bb6'.freeze
42
42
 
43
43
  Dir.chdir(BASEDIR) do
44
44
  system('git init')
data/lib/parsec.rb CHANGED
@@ -6,7 +6,7 @@ module Parsec
6
6
  class Parsec
7
7
  using StringToBooleanRefinements
8
8
 
9
- VERSION = '0.8.0'.freeze
9
+ VERSION = '0.9.3'.freeze
10
10
 
11
11
  # evaluates the equation and returns only the result
12
12
  def self.eval_equation(equation)
data/test/test_parsec.rb CHANGED
@@ -60,6 +60,12 @@ class TestParsec < Minitest::Test
60
60
  assert_equal(5, parser.eval_equation('number("5")'))
61
61
  assert_equal('Hello', parser.eval_equation('left("Hello World", 5)'))
62
62
  assert_equal('World', parser.eval_equation('right("Hello World", 5)'))
63
+ assert_equal('<a href="http://foo.bar">Title</a>', parser.eval_equation('link("Title", "http://foo.bar")'))
64
+ assert_equal('<a href="#">Title</a>', parser.eval_equation('link("Title", "#")'))
65
+ assert_equal('<a href="/test">Test title</a>', parser.eval_equation('link("Test title", "/test")'))
66
+ assert_raises(SyntaxError) { parser.eval_equation_with_type('link()') }
67
+ assert_raises(SyntaxError) { parser.eval_equation_with_type('link(1, 2, 3)') }
68
+ assert_raises(SyntaxError) { parser.eval_equation_with_type('link(1, "2")') }
63
69
  end
64
70
 
65
71
  def test_complex_string_manipulation
@@ -189,6 +195,24 @@ class TestParsec < Minitest::Test
189
195
  assert_equal('1-1234-1234-1234-1234', parsec.eval_equation('mask("0-0000-0000-0000-0000", 11234123412341234)'))
190
196
  end
191
197
 
198
+ def test_string_cast
199
+ parsec = Parsec::Parsec
200
+ assert_equal('4', parsec.eval_equation('string(4)'))
201
+ assert_equal('4.5', parsec.eval_equation('string(4.5)'))
202
+ assert_equal('true', parsec.eval_equation('string(true)'))
203
+ assert_equal('false', parsec.eval_equation('string(false)'))
204
+ assert_equal('4', parsec.eval_equation('string("4")'))
205
+ end
206
+
207
+ def test_number_cast
208
+ parsec = Parsec::Parsec
209
+ assert_equal(4, parsec.eval_equation('number(4)'))
210
+ assert_equal(4.5, parsec.eval_equation('number(4.5)'))
211
+ assert_equal(1, parsec.eval_equation('number(true)'))
212
+ assert_equal(0, parsec.eval_equation('number(false)'))
213
+ assert_equal(4, parsec.eval_equation('number("4")'))
214
+ end
215
+
192
216
  def test_default_value
193
217
  parsec = Parsec::Parsec
194
218
 
@@ -202,8 +226,17 @@ class TestParsec < Minitest::Test
202
226
  assert_equal(false, parsec.eval_equation('default_value(false, true)'))
203
227
  assert_equal(true, parsec.eval_equation('default_value(NULL, true)'))
204
228
 
229
+ # Mixing number types
230
+ assert_equal(1, parsec.eval_equation('default_value(1, 4.5)'))
231
+ assert_equal(1, parsec.eval_equation('default_value(1, 10)'))
232
+ assert_equal(1, parsec.eval_equation('default_value(1, 10.0)'))
233
+ assert_equal(1, parsec.eval_equation('default_value(1.0, 10)'))
234
+ assert_equal(1, parsec.eval_equation('default_value(1.0, 10.0)'))
235
+ assert_equal(1.5, parsec.eval_equation('default_value(1.5, 10)'))
236
+ assert_equal(1.5, parsec.eval_equation('default_value(1.5, 10.0)'))
237
+ assert_equal(1.5, parsec.eval_equation('default_value(1.5, 10.5)'))
238
+
205
239
  # Error Scenarios
206
- assert_raises(SyntaxError) { parsec.eval_equation('default_value(1, 4.5)') }
207
240
  assert_raises(SyntaxError) { parsec.eval_equation('default_value(4.5, "string")') }
208
241
  assert_raises(SyntaxError) { parsec.eval_equation('default_value("string", true)') }
209
242
  assert_raises(SyntaxError) { parsec.eval_equation('default_value(true, 1)') }
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parsecs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nilton Vasques
8
8
  - Victor Cordeiro
9
9
  - Beatriz Fagundes
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-06-29 00:00:00.000000000 Z
13
+ date: 2021-04-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: minitest
@@ -62,7 +62,7 @@ homepage: https://github.com/niltonvasques/parsec
62
62
  licenses:
63
63
  - MIT
64
64
  metadata: {}
65
- post_install_message:
65
+ post_install_message:
66
66
  rdoc_options: []
67
67
  require_paths:
68
68
  - lib
@@ -81,9 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - swig
83
83
  - cmake
84
- rubyforge_project:
85
- rubygems_version: 2.7.9
86
- signing_key:
84
+ rubygems_version: 3.0.9
85
+ signing_key:
87
86
  specification_version: 4
88
87
  summary: A gem to evaluate equations using muparserx C++ library
89
88
  test_files: