Skip to content

Commit 4e74e4a

Browse files
committed
fix #content_for, update rspec 3, and support rails 4.2
1 parent 199f7b0 commit 4e74e4a

14 files changed

+70
-37
lines changed

Gemfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ source 'https://rubygems.org'
33
# Specify your gem's dependencies in liquid-rails.gemspec
44
gemspec
55

6-
gem 'rails', '~> 4.0.10'
7-
gem 'rspec-rails', '~> 2.14.2'
6+
gem 'rails', '~> 4.0.13'
7+
gem 'rspec-rails', '~> 3.1.0'
8+
gem 'guard-rspec', '~> 4.5.0'
89
gem 'capybara', '~> 2.4.1'
910
gem 'pry-rails'
1011
gem 'coveralls'
11-
gem 'simplecov'
12-
gem 'guard-rspec'
12+
gem 'simplecov'

Rakefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ end
99
task default: 'spec:all'
1010

1111
namespace :spec do
12-
%w(rails_41 rails_40 rails_32).each do |gemfile|
12+
%w(rails_42 rails_41 rails_40 rails_32).each do |gemfile|
1313
desc "Run Tests against #{gemfile}"
1414
task gemfile do
1515
sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
@@ -19,7 +19,7 @@ namespace :spec do
1919

2020
desc "Run Tests against rails versions"
2121
task :all do
22-
%w(rails_41 rails_40 rails_32).each do |gemfile|
22+
%w(rails_42 rails_41 rails_40 rails_32).each do |gemfile|
2323
sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
2424
sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle exec rake spec"
2525
end

gemfiles/rails_32.gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
source 'https://rubygems.org'
22

3-
gem 'rails', '~> 3.2.19'
4-
gem 'rspec-rails', '~> 2.14.2'
3+
gem 'rails', '~> 3.2.21'
4+
gem 'rspec-rails', '~> 3.1.0'
5+
gem 'guard-rspec', '~> 4.5.0'
56
gem 'capybara', '~> 2.4.1'
67
gem 'pry-rails'
78
gem 'coveralls'
89
gem 'simplecov'
9-
gem 'guard-rspec'
1010

1111
gemspec path: '../'

gemfiles/rails_40.gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
source 'https://rubygems.org'
22

3-
gem 'rails', '~> 4.0.10'
4-
gem 'rspec-rails', '~> 2.14.2'
3+
gem 'rails', '~> 4.0.13'
4+
gem 'rspec-rails', '~> 3.1.0'
5+
gem 'guard-rspec', '~> 4.5.0'
56
gem 'capybara', '~> 2.4.1'
67
gem 'pry-rails'
78
gem 'coveralls'
89
gem 'simplecov'
9-
gem 'guard-rspec'
1010

1111
gemspec path: '../'

gemfiles/rails_41.gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
source 'https://rubygems.org'
22

3-
gem 'rails', '~> 4.1.6'
4-
gem 'rspec-rails', '~> 2.14.2'
3+
gem 'rails', '~> 4.1.9'
4+
gem 'rspec-rails', '~> 3.1.0'
5+
gem 'guard-rspec', '~> 4.5.0'
56
gem 'capybara', '~> 2.4.1'
67
gem 'pry-rails'
78
gem 'coveralls'
89
gem 'simplecov'
9-
gem 'guard-rspec'
1010

1111
gemspec path: '../'

gemfiles/rails_42.gemfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
source 'https://rubygems.org'
2+
3+
gem 'rails', '~> 4.2.0'
4+
gem 'rspec-rails', '~> 3.1.0'
5+
gem 'guard-rspec', '~> 4.5.0'
6+
gem 'capybara', '~> 2.4.1'
7+
gem 'pry-rails'
8+
gem 'coveralls'
9+
gem 'simplecov'
10+
11+
gemspec path: '../'

lib/liquid-rails/rspec/view_controller_context.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module ViewControllerContext
77
def setup_view_and_controller
88
@view = ActionView::Base.new
99
@controller = ApplicationController.new
10-
@request = ActionController::TestRequest.new
10+
@request = ActionController::TestRequest.new('PATH_INFO' => '/')
1111
@response = ActionController::TestResponse.new
1212
@response.request = @request
1313
@controller.request = @request

lib/liquid-rails/tags/content_for_tag.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,27 @@ def initialize(tag_name, markup, context)
2222
super
2323

2424
if markup =~ Syntax
25-
@identifier = $1.to_s
2625
@flush = $3
26+
@identifier = $1.gsub('\'', '')
2727
else
2828
raise SyntaxError.new("Syntax Error - Valid syntax: {% content_for [name] %}")
2929
end
3030
end
3131

3232
def render(context)
3333
@context = context
34+
content = super.html_safe
3435

35-
options = @flush == 'true' ? { flush: true } : {}
36-
@context.registers[:view].content_for(@identifier, super.html_safe, options)
36+
if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR == 2
37+
if @flush == 'true'
38+
@context.registers[:view].view_flow.set(@identifier, content) if content
39+
else
40+
@context.registers[:view].view_flow.append(@identifier, content) if content
41+
end
42+
else
43+
options = @flush == 'true' ? { flush: true } : {}
44+
@context.registers[:view].content_for(@identifier, content, options)
45+
end
3746
''
3847
end
3948
end
@@ -49,7 +58,7 @@ def initialize(tag_name, markup, context)
4958
super
5059

5160
if markup =~ Syntax
52-
@identifier = $1
61+
@identifier = $1.gsub('\'', '')
5362
else
5463
raise SyntaxError.new("Syntax Error - Valid syntax: {% yield [name] %}")
5564
end

liquid-rails.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
2121
spec.require_paths = ['lib']
2222

2323
spec.add_dependency 'rails', '>= 3.2'
24-
spec.add_dependency 'liquid', '~> 3.0.0'
24+
spec.add_dependency 'liquid', '>= 3.0.0'
2525
spec.add_dependency 'kaminari', '~> 0.16.1'
2626
end

spec/lib/liquid-rails/tags/content_for_tag_spec.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
module Liquid
44
module Rails
55
describe ContentForTag, type: :tag do
6-
it 'content_for and yield' do
6+
it 'content_for and yield with non-quoted key' do
7+
Liquid::Template.parse(%|{% content_for not_authorized0 %}alert('You are not authorized to do that!');{% endcontent_for %}|).render(context)
8+
9+
expect_template_result(%|{% yield not_authorized0 %}|, "alert('You are not authorized to do that!');")
10+
end
11+
12+
it 'content_for and yield with quoted key' do
713
Liquid::Template.parse(%|{% content_for 'not_authorized1' %}alert('You are not authorized to do that!');{% endcontent_for %}|).render(context)
814

915
expect_template_result(%|{% yield 'not_authorized1' %}|, "alert('You are not authorized to do that!');")

0 commit comments

Comments
 (0)