⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 template.rb

📁 用ruby on rails写的一个博客程序,还不错..ruby on rails的确是个好框架
💻 RB
字号:
require File.dirname(__FILE__) + '/engine'require 'rubygems'require 'active_support'require 'action_view'module Haml  # This class interfaces with ActionView  # to make Haml usable as a Ruby on Rails plugin.  # It usually shouldn't need to be used by end users.  # Just in case, though, here's what you might do to render  # <tt>templates/index.haml</tt>:  #  #   ActionView::Base.register_template_handler("haml", Haml::Template)  #   base = ActionView::Base.new("templates")  #   base.render("index")  #  # Or, if you want to really get into the nitty-gritty:  #  #   base = ActionView::Base.new  #   template = Haml::Template.new(base)  #   template.render("templates/index.haml")  #  class Template    class << self      @@options = {}      # Gets various options for HAML. See REFERENCE for details.      def options        @@options      end      # Sets various options for HAML. See REFERENCE for details.      def options=(value)        @@options = value      end    end    # Creates a new Haml::Template object that uses <tt>view</tt>    # to render its templates.    def initialize(view)      @view = view      @@precompiled_templates ||= {}    end    # Renders the file at the location <tt>template</tt>,    # with <tt>local_assigns</tt> available as local variables within the template.    # Returns the result as a string.    def render(template, local_assigns={})      unless @view.instance_variable_get("@assigns_added")        assigns = @view.assigns.dup              # Get inside the view object's world        @view.instance_eval do          # Set all the instance variables          assigns.each do |key,val|            instance_variable_set "@#{key}", val          end        end                @view.instance_variable_set("@assigns_added", true)      end      options = @@options.dup      locals = options[:locals] || {}      locals.merge! local_assigns      options[:locals] = locals      if @view.haml_inline        engine = Haml::Engine.new(template, options)      elsif @precompiled = get_precompiled(template)        options[:precompiled] ||= @precompiled        engine = Haml::Engine.new("", options)      else        engine = Haml::Engine.new(File.read(template), options)        set_precompiled(template, engine.precompiled)      end      yield_proc = @view.instance_eval do        proc { |*name| instance_variable_get("@content_for_#{name.first || 'layout'}") }      end      engine.to_html(@view) { |*args| yield_proc.call(*args) }    end        private    # Gets the cached, precompiled version of the template at location <tt>filename</tt>    # as a string.    def get_precompiled(filename)      # Do we have it on file? Is it new enough?      if (precompiled, precompiled_on = @@precompiled_templates[filename]) &&             (precompiled_on == File.mtime(filename).to_i)        precompiled      end    end    # Sets the cached, precompiled version of the template at location <tt>filename</tt>    # to <tt>precompiled</tt>.    def set_precompiled(filename, precompiled)      @@precompiled_templates[filename] = [precompiled, File.mtime(filename).to_i]    end  endend# This module refers to the ActionView module that's part of Ruby on Rails.# Haml can be used as an alternate templating engine for it,# and includes several modifications to make it more Haml-friendly.# The documentation can be found# here[http://rubyonrails.org/api/classes/ActionView/Base.html].module ActionView  class Base # :nodoc:    attr :haml_filename, true    attr :haml_inline    alias_method :haml_old_render_file, :render_file    def render_file(template_path, use_full_path = true, local_assigns = {})      @haml_filename = File.basename(template_path)      haml_old_render_file(template_path, use_full_path, local_assigns)    end    alias_method :read_template_file_old, :read_template_file    def read_template_file(template_path, extension)      if extension =~ /haml/i        template_path      else        read_template_file_old(template_path, extension)      end    end    alias_method :render_template_old, :render_template    def render_template(template_extension, template, file_path = nil, local_assigns = {})      @haml_inline = !template.nil?      render_template_old(template_extension, template, file_path, local_assigns)    end  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -