jrb 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,6 +5,7 @@ module JRB
5
5
  self.default_mime_type = "text/html"
6
6
 
7
7
  def prepare
8
+ @buffer_variable = "@output_buffer" # Rails compatibility with capture()
8
9
  @new_buffer = options.delete(:escape_html) == false ? "''" : "ActiveSupport::SafeBuffer.new"
9
10
  end
10
11
 
@@ -12,10 +13,10 @@ module JRB
12
13
  <<-RUBY
13
14
  #{super}
14
15
  __output_buffer = #{@new_buffer}
15
- __old_output_buffer, @__output_buffer = @__output_buffer, __output_buffer
16
+ __old_output_buffer, #{@buffer_variable} = #{@buffer_variable}, __output_buffer
16
17
  instance_eval do
17
18
  def <<(data)
18
- @__output_buffer << data
19
+ #{@buffer_variable} << data
19
20
  end
20
21
  alias write <<
21
22
  end
@@ -26,7 +27,7 @@ module JRB
26
27
  def precompiled_postamble(locals)
27
28
  <<-RUBY
28
29
  ensure
29
- @__output_buffer = __old_output_buffer
30
+ #{@buffer_variable} = __old_output_buffer
30
31
  end
31
32
  __output_buffer << __result unless __result == __output_buffer
32
33
  __output_buffer
@@ -1,3 +1,3 @@
1
1
  module JRB
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -13,4 +13,9 @@ class ActionViewTest < ActionController::TestCase
13
13
  get :index, :name => "<script>unsafe</script>"
14
14
  assert_equal "<html><head></head><body>Hello &lt;script&gt;unsafe&lt;/script&gt;!</body></html>", response.body
15
15
  end
16
+
17
+ test "capturing content" do
18
+ get :capture, :name => "John"
19
+ assert_equal "<html><head></head><body>Hello John!</body></html>", response.body
20
+ end
16
21
  end
@@ -1,4 +1,2 @@
1
1
  class TestController < ActionController::Base
2
- def index
3
- end
4
2
  end
@@ -0,0 +1,5 @@
1
+ name = capture do
2
+ write params[:name]
3
+ end
4
+
5
+ write "Hello #{name}!"
@@ -1,3 +1,3 @@
1
1
  Dummy::Application.routes.draw do
2
- get "/" => "test#index"
2
+ get "/:action" => "test"
3
3
  end
@@ -2,7 +2,7 @@
2
2
  require File.expand_path("test_helper", File.dirname(__FILE__))
3
3
  require "tempfile"
4
4
 
5
- class TiltTemplateTest < ActiveSupport::TestCase
5
+ class TemplateTest < ActiveSupport::TestCase
6
6
  test "registered for .rb files" do
7
7
  assert Tilt.mappings["rb"].include?(JRB::Template)
8
8
  end
@@ -42,7 +42,7 @@ class TiltTemplateTest < ActiveSupport::TestCase
42
42
  scope.instance_variable_set :@name, '<script>Joe</script>'
43
43
  assert_equal "Hey <script>Joe</script>!", template.render(scope)
44
44
  end
45
-
45
+
46
46
  test "value equals output buffer" do
47
47
  template = JRB::Template.new { '__output_buffer << "Hey #{name}!"; __output_buffer' }
48
48
  assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
@@ -53,6 +53,37 @@ class TiltTemplateTest < ActiveSupport::TestCase
53
53
  assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
54
54
  assert_equal "Hey Jane!", template.render(Object.new, :name => 'Jane')
55
55
  end
56
+
57
+ test "defining a method" do
58
+ template = JRB::Template.new {
59
+ <<-RUBY
60
+ def greet(target)
61
+ write "Hey \#{target}!"
62
+ end
63
+ greet(name)
64
+ RUBY
65
+ }
66
+ assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
67
+ end
68
+
69
+ test "defining a class" do
70
+ template = JRB::Template.new {
71
+ <<-RUBY
72
+ class Greeter
73
+ def initialize(target)
74
+ @target = target
75
+ end
76
+
77
+ def greet
78
+ "Hey \#{@target}!"
79
+ end
80
+ end
81
+ write Greeter.new(name).greet
82
+ RUBY
83
+ }
84
+ assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
85
+ end
86
+
56
87
  test "passing a block for yield" do
57
88
  template = JRB::Template.new { '"Hey #{yield}!"' }
58
89
  assert_equal "Hey Joe!", template.render { 'Joe' }
@@ -89,7 +120,7 @@ class TiltTemplateTest < ActiveSupport::TestCase
89
120
  end
90
121
  end
91
122
 
92
- class CompiledTiltTemplateTest < ActiveSupport::TestCase
123
+ class CompiledTemplateTest < ActiveSupport::TestCase
93
124
  class Scope
94
125
  end
95
126
 
@@ -119,7 +150,7 @@ class CompiledTiltTemplateTest < ActiveSupport::TestCase
119
150
  scope.instance_variable_set :@name, 'Jane'
120
151
  assert_equal "Hey Jane!", template.render(scope)
121
152
  end
122
-
153
+
123
154
  test "automatic output escaping" do
124
155
  template = JRB::Template.new { '"Hey #{@name}!"' }
125
156
  scope = Scope.new
@@ -133,7 +164,7 @@ class CompiledTiltTemplateTest < ActiveSupport::TestCase
133
164
  scope.instance_variable_set :@name, '<script>Joe</script>'
134
165
  assert_equal "Hey <script>Joe</script>!", template.render(scope)
135
166
  end
136
-
167
+
137
168
  test "value equals output buffer" do
138
169
  template = JRB::Template.new { '__output_buffer << "Hey #{name}!"; __output_buffer' }
139
170
  assert_equal "Hey Joe!", template.render(Scope.new, :name => 'Joe')
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jrb
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rolf Timmermans
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-24 00:00:00 Z
13
+ date: 2011-05-25 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: tilt
@@ -59,14 +59,15 @@ files:
59
59
  - test/dummy/app/controllers/test_controller.rb
60
60
  - test/dummy/app/views/layouts/_header.html.rb
61
61
  - test/dummy/app/views/layouts/test.html.rb
62
+ - test/dummy/app/views/test/capture.html.rb
62
63
  - test/dummy/app/views/test/index.html.rb
63
64
  - test/dummy/config.ru
64
65
  - test/dummy/config/application.rb
65
66
  - test/dummy/config/boot.rb
66
67
  - test/dummy/config/environment.rb
67
68
  - test/dummy/config/routes.rb
69
+ - test/template_test.rb
68
70
  - test/test_helper.rb
69
- - test/tilt_test.rb
70
71
  homepage: https://github.com/voormedia/jrb
71
72
  licenses: []
72
73
 
@@ -99,11 +100,12 @@ test_files:
99
100
  - test/dummy/app/controllers/test_controller.rb
100
101
  - test/dummy/app/views/layouts/_header.html.rb
101
102
  - test/dummy/app/views/layouts/test.html.rb
103
+ - test/dummy/app/views/test/capture.html.rb
102
104
  - test/dummy/app/views/test/index.html.rb
103
105
  - test/dummy/config.ru
104
106
  - test/dummy/config/application.rb
105
107
  - test/dummy/config/boot.rb
106
108
  - test/dummy/config/environment.rb
107
109
  - test/dummy/config/routes.rb
110
+ - test/template_test.rb
108
111
  - test/test_helper.rb
109
- - test/tilt_test.rb