tilt-jbuilder 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd42ee650b56bdaebc64c4fa25efd63fc968c0ad
4
- data.tar.gz: c1d9f66a80b8d47b21a845c5ce5bd05439b5db7b
3
+ metadata.gz: 8b283dedad1f47c0b518b44f20cf770ec0fc1b35
4
+ data.tar.gz: b2cb848c88cb66bada087b062734ec331b70fd32
5
5
  SHA512:
6
- metadata.gz: 9e25a9698fffa03fca56f9f88d1f7e3dc47ba403e3ae0874d8c638cc54663c30e6d6e027b9b4f6d8c27ff201d2c2c10ea1876cee93adb9b27a7dfd9c8b06f18a
7
- data.tar.gz: 80d1f6218ca260e24d6bfffc508fc1d05319db983de2777600f22cfa0e1c8bf197d9b0018d71615a96218e67eb0b8a17b54d251f6c39e9ed9871515acc6917cf
6
+ metadata.gz: 0a732b210b1a5251282b5a52916f9aea1aba0e3b8da43cc563c3839d2bca468add1ea90985ae08a3c0c116b2a14ad3f5e984714d7ed52f6ef19c25838f5c1d50
7
+ data.tar.gz: 36358ed4e79ec48d5cfd19277a51e068258f192c8a063a29afc49a39286bc85ca9e41853df812f558044a36ac3d4a6bf1064c1c865d24c6bb0906f6bd18f3b5e
data/.travis.yml CHANGED
@@ -3,9 +3,11 @@ rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
5
  - 2.1.0
6
+ - 2.1.1
6
7
  - ruby-head
7
8
  - jruby-19mode
8
9
  - jruby-head
9
10
  matrix:
10
11
  allow_failures:
11
- - rvm: ruby-head
12
+ - rvm: ruby-head
13
+ - rvm: jruby-head
data/Gemfile CHANGED
@@ -12,6 +12,7 @@ group :test do
12
12
  gem 'rspec'
13
13
  gem 'simplecov'
14
14
  gem 'sinatra'
15
+ gem 'sinatra-contrib'
15
16
  end
16
17
 
17
18
  # Specify your gem's dependencies in tilt-jbuilder.gemspec
@@ -4,13 +4,13 @@ require "sinatra/base"
4
4
  module Sinatra
5
5
  module Templates
6
6
  def jbuilder(template, options={}, locals={})
7
+ options[:default_content_type] = :json
7
8
  render :jbuilder, template, options, locals
8
9
  end
9
10
 
10
11
  def render_with_view_path_support(engine, data, options = {}, locals = {}, &block)
11
12
  # Same as `views` extraction in the original method.
12
- options[:view_path] = options[:views] || settings.views || "./views" \
13
- if engine.to_s.downcase == "jbuilder"
13
+ options[:view_path] = options[:views] || settings.views || "./views" if engine.to_s.downcase == "jbuilder"
14
14
  render_without_view_path_support(engine, data, options, locals, &block)
15
15
  end
16
16
  alias_method :render_without_view_path_support, :render
data/lib/tilt/jbuilder.rb CHANGED
@@ -43,26 +43,15 @@ module Tilt
43
43
 
44
44
  def evaluate(scope, locals, &block)
45
45
  scope ||= Object.new
46
- context = scope.instance_eval { binding }
47
- set_locals(locals, scope, context)
48
- klass = ::Tilt::Jbuilder
49
- eval %{
50
- if defined? json
51
- if @_tilt_data.kind_of? Proc
52
- return @_tilt_data.call(klass.new(scope))
53
- else
54
- eval @_tilt_data, binding
55
- end
46
+ ::Tilt::Jbuilder.encode(scope) do |json|
47
+ context = scope.instance_eval { binding }
48
+ set_locals(locals, scope, context)
49
+ if data.kind_of?(Proc)
50
+ return data.call(::Tilt::Jbuilder.new(scope))
56
51
  else
57
- klass.encode(scope) do |json|
58
- if @_tilt_data.kind_of? Proc
59
- return @_tilt_data.call(klass.new(scope))
60
- else
61
- eval @_tilt_data, binding
62
- end
63
- end
52
+ eval(data, context)
64
53
  end
65
- }, context
54
+ end
66
55
  end
67
56
 
68
57
  private
@@ -1,51 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Sinatra Integration" do
4
- it "renders inline jbuilder strings" do
5
- jbuilder_app { jbuilder "json.author 'Anthony'" }
6
- body.should == "{\"author\":\"Anthony\"}"
7
- end
8
-
9
- it "renders .jbuilder files in views path" do
10
- jbuilder_app { jbuilder :hello }
11
- body.should == "{\"author\":\"Anthony\"}"
12
- end
13
-
14
- it "renders instance variables" do
15
- jbuilder_app { @last_name = "Smith"; jbuilder "json.last_name @last_name" }
16
- body.should == "{\"last_name\":\"Smith\"}"
17
- end
18
-
19
- it "renders helper methods" do
20
- jbuilder_app { jbuilder "json.is_admin admin?" }
21
- body.should == "{\"is_admin\":false}"
22
- end
23
-
24
- it "renders partials with local variables" do
25
- jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"" }
26
- body.should == "{\"last_name\":\"Smith\"}"
27
- end
28
-
29
- it "renders partials with instance variables" do
30
- jbuilder_app { @last_name = "Smith"; jbuilder "json.partial! :partial_with_instance_variable" }
31
- body.should == "{\"last_name\":\"Smith\"}"
32
- end
33
-
34
- it "renders partials with helper methods" do
35
- jbuilder_app { jbuilder "json.partial! :partial_with_helper_method" }
36
- body.should == "{\"is_admin\":false}"
37
- end
38
-
39
- it "renders partials with local variables and non-Sinatra-application scope" do
40
- jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"", :scope => Object.new }
41
- body.should == "{\"last_name\":\"Smith\"}"
42
- end
43
-
44
- it "renders partials multiple times" do
45
- lambda do
46
- 2.times do
47
- jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"" }
48
- end
49
- end.should_not raise_error
50
- end
4
+ sinatra_integration_tests
51
5
  end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Sinatra::JSON Integration' do
4
+ require 'sinatra/json'
5
+
6
+ sinatra_integration_tests
7
+ end
@@ -0,0 +1,49 @@
1
+ def sinatra_integration_tests
2
+ it "renders inline jbuilder strings" do
3
+ jbuilder_app { jbuilder "json.author 'Anthony'" }
4
+ body.should == "{\"author\":\"Anthony\"}"
5
+ end
6
+
7
+ it "renders .jbuilder files in views path" do
8
+ jbuilder_app { jbuilder :hello }
9
+ body.should == "{\"author\":\"Anthony\"}"
10
+ end
11
+
12
+ it "renders instance variables" do
13
+ jbuilder_app { @last_name = "Smith"; jbuilder "json.last_name @last_name" }
14
+ body.should == "{\"last_name\":\"Smith\"}"
15
+ end
16
+
17
+ it "renders helper methods" do
18
+ jbuilder_app { jbuilder "json.is_admin admin?" }
19
+ body.should == "{\"is_admin\":false}"
20
+ end
21
+
22
+ it "renders partials with local variables" do
23
+ jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"" }
24
+ body.should == "{\"last_name\":\"Smith\"}"
25
+ end
26
+
27
+ it "renders partials with instance variables" do
28
+ jbuilder_app { @last_name = "Smith"; jbuilder "json.partial! :partial_with_instance_variable" }
29
+ body.should == "{\"last_name\":\"Smith\"}"
30
+ end
31
+
32
+ it "renders partials with helper methods" do
33
+ jbuilder_app { jbuilder "json.partial! :partial_with_helper_method" }
34
+ body.should == "{\"is_admin\":false}"
35
+ end
36
+
37
+ it "renders partials with local variables and non-Sinatra-application scope" do
38
+ jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"", :scope => Object.new }
39
+ body.should == "{\"last_name\":\"Smith\"}"
40
+ end
41
+
42
+ it "renders partials multiple times" do
43
+ lambda do
44
+ 2.times do
45
+ jbuilder_app { jbuilder "json.partial! :partial_with_local_variable, last_name: \"Smith\"" }
46
+ end
47
+ end.should_not raise_error
48
+ end
49
+ end
@@ -28,8 +28,11 @@ describe Tilt::JbuilderTemplate do
28
28
  end
29
29
 
30
30
  it "should evaluate block style templates" do
31
- template = Tilt::JbuilderTemplate.new do |t|
32
- lambda { |json| json.author "Anthony"; json.target! }
31
+ template = Tilt::JbuilderTemplate.new do |json|
32
+ lambda do |json|
33
+ json.author 'Anthony'
34
+ json.target!
35
+ end
33
36
  end
34
37
  "{\"author\":\"Anthony\"}".should == template.render
35
38
  end
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.summary = %q{Adds support for rendering Jbuilder templates in Tilt.}
7
7
  gem.homepage = "https://github.com/anthonator/tilt-jbuilder"
8
8
 
9
- gem.add_dependency 'tilt', '<= 1.4.1'
9
+ gem.add_dependency 'tilt', '<= 1.5.0'
10
10
  gem.add_dependency 'jbuilder'
11
11
 
12
12
  gem.add_development_dependency 'bundler'
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.name = "tilt-jbuilder"
18
18
  gem.require_paths = ["lib"]
19
- gem.version = '0.5.3'
19
+ gem.version = '0.6.0'
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tilt-jbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2014-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tilt
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "<="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.4.1
19
+ version: 1.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "<="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.4.1
26
+ version: 1.5.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jbuilder
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -69,8 +69,10 @@ files:
69
69
  - lib/tilt/jbuilder.rb
70
70
  - spec/_partial.json.jbuilder
71
71
  - spec/sinatra_integration_spec.rb
72
+ - spec/sinatra_json_integration_spec.rb
72
73
  - spec/spec_helper.rb
73
74
  - spec/support/sinatra_integration_test_methods.rb
75
+ - spec/support/sinatra_integration_tests.rb
74
76
  - spec/support/views/_partial_with_helper_method.jbuilder
75
77
  - spec/support/views/_partial_with_instance_variable.jbuilder
76
78
  - spec/support/views/_partial_with_local_variable.jbuilder
@@ -96,15 +98,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
98
  version: '0'
97
99
  requirements: []
98
100
  rubyforge_project:
99
- rubygems_version: 2.2.0
101
+ rubygems_version: 2.2.2
100
102
  signing_key:
101
103
  specification_version: 4
102
104
  summary: Adds support for rendering Jbuilder templates in Tilt.
103
105
  test_files:
104
106
  - spec/_partial.json.jbuilder
105
107
  - spec/sinatra_integration_spec.rb
108
+ - spec/sinatra_json_integration_spec.rb
106
109
  - spec/spec_helper.rb
107
110
  - spec/support/sinatra_integration_test_methods.rb
111
+ - spec/support/sinatra_integration_tests.rb
108
112
  - spec/support/views/_partial_with_helper_method.jbuilder
109
113
  - spec/support/views/_partial_with_instance_variable.jbuilder
110
114
  - spec/support/views/_partial_with_local_variable.jbuilder