Changeset 1176
- Timestamp:
- 01/06/08 00:08:26 (11 months ago)
- Files:
-
- trunk/lib/merb.rb (modified) (1 diff)
- trunk/lib/merb/mixins/inline_partial.rb (added)
- trunk/lib/merb/server.rb (modified) (4 diffs)
- trunk/lib/merb/template/erubis.rb (modified) (1 diff)
- trunk/lib/merb/template/haml.rb (modified) (2 diffs)
- trunk/spec/fixtures/controllers/render_spec_controllers.rb (modified) (1 diff)
- trunk/spec/merb/abstract_controller_spec.rb (modified) (1 diff)
- trunk/spec/merb/mail_controller_spec.rb (modified) (1 diff)
- trunk/spec/merb/responder_spec.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/merb.rb
r1166 r1176 41 41 autoload :ControllerMixin, 'merb/mixins/controller' 42 42 autoload :ErubisCaptureMixin, 'merb/mixins/erubis_capture' 43 autoload :InlinePartialMixin, 'merb/mixins/inline_partial' 43 44 autoload :FormControls, 'merb/mixins/form_control' 44 45 autoload :RenderMixin, 'merb/mixins/render' trunk/lib/merb/server.rb
r1162 r1176 14 14 require 'fileutils' 15 15 require 'yaml' 16 17 # this is so we can test for HAML features for HAML partial inlining 18 unless Gem.cache.search("haml").empty? 19 gem "haml" 20 require "haml" 21 end 16 22 17 23 require File.join(File.dirname(__FILE__), 'erubis_ext') … … 330 336 end 331 337 332 def load_ erubis_inline_helpers333 partials = template_paths("_*. erb")338 def load_inline_helpers 339 partials = template_paths("_*.{erb,haml}") 334 340 335 341 partials.each do |partial| 336 eruby = Erubis::Eruby.new(File.read(partial)) 337 eruby.def_method(Merb::GlobalHelper, partial.gsub(/[^\.a-zA-Z0-9]/, "__").gsub(/\./, "_"), partial) 338 end 342 case partial 343 when /erb$/ 344 template = Erubis::Eruby.new(File.read(partial)) 345 template.def_method(Merb::GlobalHelper, partial.gsub(/[^\.a-zA-Z0-9]/, "__").gsub(/\./, "_"), partial) 346 when /haml$/ 347 if (Haml::Engine.instance_method(:def_method) rescue nil) 348 template = Haml::Engine.new(File.read(partial), :filename => partial) 349 template.def_method(Merb::GlobalHelper, partial.gsub(/[^\.a-zA-Z0-9]/, "__").gsub(/\./, "_")) 350 end 351 end 352 end 339 353 end 340 354 … … 345 359 load_action_arguments 346 360 load_controller_template_path_cache 347 load_ erubis_inline_helpers361 load_inline_helpers 348 362 @app_loaded = true 349 363 (@after_app_blocks || []).each { |b| b.call } … … 405 419 # Rebuild the glob cache and erubis inline helpers 406 420 load_controller_template_path_cache 407 load_ erubis_inline_helpers421 load_inline_helpers 408 422 409 423 @mtime = project_mtime # As the last action, update the current @mtime trunk/lib/merb/template/erubis.rb
r1032 r1176 4 4 class ErubisViewContext < ViewContext 5 5 include ::Merb::ErubisCaptureMixin 6 7 def partial(template, opts={}) 8 9 unless @_template_format 10 @web_controller.choose_template_format(Merb.available_mime_types, {}) 11 end 12 13 template = @web_controller._cached_partials["#{template}.#{@_template_format}"] ||= 14 @web_controller.send(:find_partial, template) 15 16 template_method = template.gsub(/[^\.a-zA-Z0-9]/, "__").gsub(/\./, "_") 17 18 unless self.respond_to?(template_method) 19 raise Merb::ControllerExceptions::TemplateNotFound, "No template matched at #{template}" 20 end 21 22 if with = opts.delete(:with) 23 as = opts.delete(:as) || template.match(/(.*\/_)([^\.]*)/)[2] 24 @_merb_partial_locals = opts 25 sent_template = [with].flatten.map do |temp| 26 @_merb_partial_locals[as.to_sym] = temp 27 send(template_method) 28 end.join 29 else 30 @_merb_partial_locals = opts 31 sent_template = send(template_method) 32 end 33 34 return sent_template if sent_template 35 36 end 6 include ::Merb::InlinePartialMixin 37 7 end 38 8 trunk/lib/merb/template/haml.rb
r1078 r1176 20 20 module Merb 21 21 module Template 22 23 class HamlViewContext < ViewContext 24 include ::Merb::InlinePartialMixin 25 end 22 26 23 27 module Haml … … 52 56 53 57 def view_context_klass 54 ::Merb::ViewContext58 HamlViewContext 55 59 end 56 60 trunk/spec/fixtures/controllers/render_spec_controllers.rb
r1014 r1176 172 172 Merb::Server.load_action_arguments 173 173 Merb::Server.load_controller_template_path_cache 174 Merb::Server.load_ erubis_inline_helpers174 Merb::Server.load_inline_helpers trunk/spec/merb/abstract_controller_spec.rb
r986 r1176 15 15 after(:all) do 16 16 Merb::Server.load_controller_template_path_cache 17 Merb::Server.load_ erubis_inline_helpers17 Merb::Server.load_inline_helpers 18 18 end 19 19 trunk/spec/merb/mail_controller_spec.rb
r1079 r1176 7 7 end 8 8 Merb::Server.load_controller_template_path_cache 9 Merb::Server.load_ erubis_inline_helpers9 Merb::Server.load_inline_helpers 10 10 11 11 class Merb::Mailer trunk/spec/merb/responder_spec.rb
r986 r1176 245 245 Merb::Server.load_action_arguments 246 246 Merb::Server.load_controller_template_path_cache 247 Merb::Server.load_ erubis_inline_helpers247 Merb::Server.load_inline_helpers 248 248 249 249 describe "A Merb Responder's Content Negotiation" do
