personify 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/personify/parser/personify_node_classes.rb +7 -3
- data/lib/personify.rb +13 -4
- data/test/context_test.rb +5 -3
- data/test/parser_test.rb +8 -5
- data/test/test_helper.rb +2 -1
- metadata +3 -4
- data/script/generate_parser.rb +0 -6
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
@@ -74,8 +74,8 @@ module PersonifyLanguage
|
|
74
74
|
ne = next_expression.eval(env)
|
75
75
|
|
76
76
|
case operator.text_value
|
77
|
-
when "&&"
|
78
|
-
when "||"
|
77
|
+
when "&&" then fe && ne
|
78
|
+
when "||" then fe || ne
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
@@ -89,7 +89,11 @@ module PersonifyLanguage
|
|
89
89
|
end
|
90
90
|
|
91
91
|
if fn && fn.respond_to?(:call)
|
92
|
-
|
92
|
+
params = self.function_parameters(env)
|
93
|
+
if fn.arity >= 0
|
94
|
+
params = params[0,fn.arity]
|
95
|
+
end
|
96
|
+
fn.call(*params)
|
93
97
|
else
|
94
98
|
fn
|
95
99
|
end
|
data/lib/personify.rb
CHANGED
@@ -1,8 +1,17 @@
|
|
1
1
|
require 'treetop'
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
|
3
|
+
unless Kernel.respond_to?(:require_relative)
|
4
|
+
module Kernel
|
5
|
+
def require_relative(path)
|
6
|
+
require File.join(File.dirname(caller[0]), path.to_str)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
require_relative 'personify/parser/personify_node_classes'
|
12
|
+
require_relative 'personify/parser/personify'
|
13
|
+
require_relative 'personify/template'
|
14
|
+
require_relative 'personify/context'
|
6
15
|
|
7
16
|
module Personify
|
8
17
|
end
|
data/test/context_test.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# coding: utf-8
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
|
3
3
|
Treetop.load File.dirname(__FILE__) + "/../lib/personify/parser/personify"
|
4
|
-
|
4
|
+
|
5
|
+
# Use this if you want to test the generated parser
|
6
|
+
# require_relative "../personify"
|
5
7
|
|
6
8
|
class ContextTest < Test::Unit::TestCase
|
7
9
|
include ParserTestHelper
|
data/test/parser_test.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# coding: utf-8
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
|
3
3
|
Treetop.load File.dirname(__FILE__) + "/../lib/personify/parser/personify"
|
4
|
-
|
4
|
+
|
5
|
+
# Use this if you want to test the generated parser
|
6
|
+
# require_relative "../personify"
|
5
7
|
|
6
8
|
class ParserTest < Test::Unit::TestCase
|
7
9
|
include ParserTestHelper
|
@@ -130,7 +132,8 @@ class ParserTest < Test::Unit::TestCase
|
|
130
132
|
end
|
131
133
|
should "eval substitution with non endpoint key" do
|
132
134
|
# Will just call to_s
|
133
|
-
|
135
|
+
p = {"l3" => "v"}
|
136
|
+
assert_equal p.to_s, parse("[L1.L2]").eval({"l1" => {"l2" => p}})
|
134
137
|
end
|
135
138
|
end
|
136
139
|
|
@@ -151,7 +154,7 @@ class ParserTest < Test::Unit::TestCase
|
|
151
154
|
assert_equal "v1+v2v3", parse("[FUNC(\"v1\",\"v2\",\"v3\")]").eval("func" => Proc.new{|v1,*v2| v1 + "+" + v2.join })
|
152
155
|
end
|
153
156
|
should "eval with too much parameters" do
|
154
|
-
assert_equal "
|
157
|
+
assert_equal "p1", parse("[FUNC(\"p1\",\"p2\")]").eval("func" => Proc.new{|v1| v1 })
|
155
158
|
end
|
156
159
|
should "eval with no parameters" do
|
157
160
|
assert_equal "val", parse("[FUNC()]").eval("func" => Proc.new{ "val" })
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: personify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Flurin Egger
|
@@ -71,7 +71,6 @@ files:
|
|
71
71
|
- lib/personify/parser/personify.treetop
|
72
72
|
- lib/personify/parser/personify_node_classes.rb
|
73
73
|
- lib/personify/template.rb
|
74
|
-
- script/generate_parser.rb
|
75
74
|
- test/context_test.rb
|
76
75
|
- test/fixtures/multiple_tags.txt
|
77
76
|
- test/parse_runner.rb
|
data/script/generate_parser.rb
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../vendor/treetop/lib/treetop"
|
2
|
-
|
3
|
-
target_dir = File.dirname(__FILE__) + "/../lib/parser/"
|
4
|
-
|
5
|
-
compiler = Treetop::Compiler::GrammarCompiler.new
|
6
|
-
compiler.compile(File.join(target_dir,"personify.treetop"), File.join(target_dir,"personify.rb"))
|