personify 1.1.0 → 1.1.1

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.
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"))