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 CHANGED
@@ -1 +1 @@
1
- 1.1.0
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 "&&" : fe && ne
78
- when "||" : fe || ne
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
- fn.call(*self.function_parameters(env))
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
- require File.dirname(__FILE__) + '/personify/parser/personify_node_classes'
3
- require File.dirname(__FILE__) + '/personify/parser/personify'
4
- require File.dirname(__FILE__) + '/personify/template'
5
- require File.dirname(__FILE__) + '/personify/context'
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
- require File.dirname(__FILE__) + '/test_helper'
2
- require 'treetop'
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
- # require File.dirname(__FILE__) + "/../personify"
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
- require File.dirname(__FILE__) + '/test_helper'
2
- require 'treetop'
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
- # require File.dirname(__FILE__) + "/../personify"
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
- assert_equal "l3v", parse("[L1.L2]").eval({"l1" => {"l2" => {"l3" => "v"}}})
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 "p1p2", parse("[FUNC(\"p1\",\"p2\")]").eval("func" => Proc.new{|v1| v1 })
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
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
+ require 'treetop'
2
3
  require 'shoulda'
3
- require File.dirname(__FILE__) + "/../lib/personify"
4
+ require File.join(File.expand_path(File.dirname(__FILE__)), "../lib/personify")
4
5
 
5
6
  require 'test/unit'
6
7
 
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: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 0
10
- version: 1.1.0
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
@@ -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"))