parsecs 0.8.0 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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: