From e447bd4bd14ed65cacbd6b2d960f77bcf71527c9 Mon Sep 17 00:00:00 2001 From: Matt Vague Date: Fri, 17 May 2013 13:23:59 -0700 Subject: [PATCH] Application helpers are now availible to slim templates --- lib/slim_assets/slim_sprockets_engine.rb | 5 +++++ .../app/assets/javascripts/app_helpers.jst.ejs.slim | 2 ++ spec/rails_app/app/assets/javascripts/link_to.jst.ejs.slim | 1 - spec/rails_app/app/helpers/application_helper.rb | 5 +++++ spec/render_spec.rb | 4 ++++ 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 spec/rails_app/app/assets/javascripts/app_helpers.jst.ejs.slim create mode 100644 spec/rails_app/app/helpers/application_helper.rb diff --git a/lib/slim_assets/slim_sprockets_engine.rb b/lib/slim_assets/slim_sprockets_engine.rb index 71790ae..8e9d595 100644 --- a/lib/slim_assets/slim_sprockets_engine.rb +++ b/lib/slim_assets/slim_sprockets_engine.rb @@ -12,10 +12,15 @@ module ViewContext def self.included(klass) klass.instance_eval do + include ActiveSupport::Configurable include Rails.application.routes.url_helpers include Rails.application.routes.mounted_helpers include ActionView::Helpers include SimpleForm::ActionViewExtensions::FormHelper if defined?(SimpleForm) + include ActionController::Helpers + + self.helpers_path = Rails.application.config.helpers_paths + modules_for_helpers([:all]).each {|m| include m } end end diff --git a/spec/rails_app/app/assets/javascripts/app_helpers.jst.ejs.slim b/spec/rails_app/app/assets/javascripts/app_helpers.jst.ejs.slim new file mode 100644 index 0000000..d5892d7 --- /dev/null +++ b/spec/rails_app/app/assets/javascripts/app_helpers.jst.ejs.slim @@ -0,0 +1,2 @@ +h1 + = test_helper("App helpers work") diff --git a/spec/rails_app/app/assets/javascripts/link_to.jst.ejs.slim b/spec/rails_app/app/assets/javascripts/link_to.jst.ejs.slim index de7dea7..e91100c 100644 --- a/spec/rails_app/app/assets/javascripts/link_to.jst.ejs.slim +++ b/spec/rails_app/app/assets/javascripts/link_to.jst.ejs.slim @@ -1,3 +1,2 @@ h1 .text Render works - diff --git a/spec/rails_app/app/helpers/application_helper.rb b/spec/rails_app/app/helpers/application_helper.rb new file mode 100644 index 0000000..abbc3b7 --- /dev/null +++ b/spec/rails_app/app/helpers/application_helper.rb @@ -0,0 +1,5 @@ +module ApplicationHelper + def test_helper(string) + string + end +end diff --git a/spec/render_spec.rb b/spec/render_spec.rb index c9c5748..f37645d 100644 --- a/spec/render_spec.rb +++ b/spec/render_spec.rb @@ -11,4 +11,8 @@ class Post < ActiveRecord::Base it "should use rails helpers" do RailsApp::Application.assets['helpers.jst.ejs.slim'].to_s.should == "(function() {\n this.JST || (this.JST = {});\n this.JST[\"helpers\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('

Form

');}return __p.join('');};\n}).call(this);\n" end + + it "should use application helpers" do + RailsApp::Application.assets['app_helpers.jst.ejs.slim'].to_s.should == "(function() {\n this.JST || (this.JST = {});\n this.JST[\"app_helpers\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('

App helpers work

');}return __p.join('');};\n}).call(this);\n" + end end