expressive 0.0.35 → 0.0.36
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 +8 -8
- data/Gemfile.lock +1 -1
- data/lib/expressive/version.rb +1 -1
- data/lib/expressive.rb +1 -1
- data/lib/scope.rb +4 -1
- data/spec/expressive_spec.rb +26 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTZiZTNjOTMzNmUwOTA5ODg1NmE0MGViMmIxZTA4YWQ1NTQyOTE0Mw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDVhNDA4NzJhNzBhODM1NDg2NzU2ZjYyODkxYjQxMTc3YzlhODMxYw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWY0NTM0NmNhZGYyNzRlMDQ2M2FmZTAzOWNhMWI0YTljZTY4YjYzNTQwNWFj
|
10
|
+
MmE2ZjgyNTI1OTc3NzA1OGRlYjA1ODI2NWQyYThiNDc1OTQzZDMzNmMzZjlj
|
11
|
+
MTQxMzlkMTdkOTcyM2ZiZWUxY2IxZmY4ZjkyNGE5ZGZjMjdmMGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjVmZTE5YTRkMjljY2ZlYzBlN2QzZDYzYmFhZjQ4NmM5ZDliZWE2NTA1ZTk0
|
14
|
+
ZmVmMmExNGVmMDFkNjYxMGJmOGFkYTA4MzNhOGMyZjlmMTZkNWE0YmFmMmFm
|
15
|
+
ZDZmY2ExMDI3ODQzNWJlZDEwNDgzNzEyMjU5YzcyZWVmMGQ3NjA=
|
data/Gemfile.lock
CHANGED
data/lib/expressive/version.rb
CHANGED
data/lib/expressive.rb
CHANGED
@@ -35,7 +35,7 @@ module Expressive
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def self.all_symbols
|
38
|
-
%w(+ - * / = set sum $sub post >= > < <= and or if date datetime get put lookup $lookup $head $tail $reverse round $round $days_ago $hours_ago $minutes_ago $append $id $hash $concat $split $sms $hval $index $random $join $not $include)
|
38
|
+
%w(+ - * / = set sum $sub post >= > < <= and or if date datetime get put lookup $lookup $head $tail $reverse round $round $days_ago $hours_ago $minutes_ago $append $id $hash $concat $split $sms $hval $index $random $join $not $include $string $float $integer)
|
39
39
|
end
|
40
40
|
|
41
41
|
module Boolean
|
data/lib/scope.rb
CHANGED
@@ -191,6 +191,9 @@ module Expressive
|
|
191
191
|
define('$tail'){|*args| args.flatten[1..-1] }
|
192
192
|
define('$reverse'){|*args| args.flatten.reverse }
|
193
193
|
define('$not'){|*args| not args.first }
|
194
|
+
define('$string'){|*args| args.first.to_s}
|
195
|
+
define('$float'){|*args| args.first.to_f}
|
196
|
+
define('$integer'){|*args| args.first.to_i}
|
194
197
|
|
195
198
|
define('$round'){|*args| perform_round(args) }
|
196
199
|
define('round'){|*args| perform_round(args) }
|
@@ -244,7 +247,7 @@ module Expressive
|
|
244
247
|
end
|
245
248
|
|
246
249
|
def perform_split(scope, cells)
|
247
|
-
return cells[0].
|
250
|
+
return cells[0].eval(scope).split(cells[1].eval(scope))
|
248
251
|
end
|
249
252
|
|
250
253
|
#(post "http://example.com" "*" (headers "AUTH-TOKEN=13415") )
|
data/spec/expressive_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe "Expressive" do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "all_symbols" do
|
9
|
-
it { Expressive.all_symbols.should =~ %w(+ - * / = set sum $sub get put post >= > < <= and or if date datetime lookup round $round $days_ago $hours_ago $minutes_ago $append $id $head $lookup $reverse $tail $hash $concat $split $sms $hval $index $random $join $not $include) }
|
9
|
+
it { Expressive.all_symbols.should =~ %w(+ - * / = set sum $sub get put post >= > < <= and or if date datetime lookup round $round $days_ago $hours_ago $minutes_ago $append $id $head $lookup $reverse $tail $hash $concat $split $sms $hval $index $random $join $not $include $string $float $integer) }
|
10
10
|
end
|
11
11
|
|
12
12
|
describe "understands booleans" do
|
@@ -33,8 +33,21 @@ describe "Expressive" do
|
|
33
33
|
Expressive.run('($concat "hello " scope_value)', @scope).should eql "hello world"
|
34
34
|
}
|
35
35
|
it {Expressive.run('($split "a,b,c,d,e" ",")').should eql ['a', 'b', 'c', 'd', 'e'] }
|
36
|
+
it {
|
37
|
+
@scope["scope_value"] = "a,b,c,d,e"
|
38
|
+
Expressive.run('($split scope_value ",")', @scope).should eql ['a', 'b', 'c', 'd', 'e']
|
39
|
+
}
|
40
|
+
|
36
41
|
end
|
42
|
+
end
|
37
43
|
|
44
|
+
describe "understands literals" do
|
45
|
+
it {
|
46
|
+
@scope["test_value"] = 1
|
47
|
+
@scope["test_1_value"] = 3
|
48
|
+
Expressive.run('test_value', @scope).should eql 1
|
49
|
+
Expressive.run('test_1_value', @scope).should eql 3
|
50
|
+
}
|
38
51
|
end
|
39
52
|
|
40
53
|
describe "hash manipulation" do
|
@@ -263,7 +276,7 @@ EOH
|
|
263
276
|
|
264
277
|
it "handles compound ors" do
|
265
278
|
expressive = "(if (or (= answer_2 \"Unemployed\") (or (= answer_2 \"Self-employed\") (or (= answer_2 \"Retired\") (= answer_2 \"Student\")))) 2 \"\")"
|
266
|
-
|
279
|
+
|
267
280
|
@scope["answer_2"] = "asdf"
|
268
281
|
result = Expressive.run(expressive, @scope)
|
269
282
|
result.should == ""
|
@@ -539,6 +552,16 @@ EOH
|
|
539
552
|
it { Expressive.run("($minutes_ago 12)").should eql (@now - 12 * 60) }
|
540
553
|
end
|
541
554
|
|
555
|
+
describe "string" do
|
556
|
+
it {Expressive.run("($string 7)").should eql "7" }
|
557
|
+
end
|
558
|
+
describe "integer" do
|
559
|
+
it {Expressive.run("($integer 7)").should eql 7 }
|
560
|
+
end
|
561
|
+
describe "float" do
|
562
|
+
it {Expressive.run("($float 7)").should eql 7.0 }
|
563
|
+
end
|
564
|
+
|
542
565
|
describe "concat" do
|
543
566
|
it "string and number values" do
|
544
567
|
Expressive.run('($concat "ref-" 3)').should eql "ref-3"
|
@@ -752,7 +775,7 @@ EOH
|
|
752
775
|
end
|
753
776
|
end
|
754
777
|
end
|
755
|
-
|
778
|
+
|
756
779
|
describe "parse error handling" do
|
757
780
|
it "should raise parse exceptions" do
|
758
781
|
expect{ Expressive.run(nil) }.to raise_error Expressive::ParseError, "Error parsing nil expression: undefined method `length' for nil:NilClass"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: expressive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ijonas Kisselbach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby_gntp
|