Sha256: 7b488975d6fac43e92fc1cbca15bc0c8106a8e755a53ec49810f7a858e0a9388

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 KB

Contents

module Merb
  class Inspector < Application
    ######################################################################
    ### for exceptins

    class Merb::Inspector::ActionNotFound < Merb::ControllerExceptions::ActionNotFound; end

    ######################################################################
    ### for module

    def self.root
      @root ||= Pathname(File.expand_path(File.dirname(__FILE__) + "/../../"))
    end

    def self.default
      Inspector
    end

    def self.log(message)
      path = Merb.root / "log" / "inspector.log"
      message = "[Inspector] %s" % message.to_s.strip
      File.open(path, "a+") {|f| f.puts message}
    end

    def self.model(model, inspector = self)
      Merb::Inspector::Manager.register(model, inspector)
    end

    ######################################################################
    ### for class

    def show(object, options = {})
      @object  = object
      @options = options

      execute
    end

    private
      def name
        self.class.name.sub(/^Merb::/,'').sub(/Inspector$/,'').snake_case.gsub(/::/, '/')
      end

      def dir
        Merb::Inspector.root + "templates" + name
      end

      def template_for(name)
        dir + name.to_s
      end

      def execute
        partial template_for(template), current_options
      end

      def template
        :default
      end

      def current_options
        basic_options.merge(options)
      end

      def options
        {}
      end

      def basic_options
        {:inspector=>self, :options=>@options, :dir=>dir, :id=>@object.object_id}
      end
  end

  def self.inspector
    Merb::Inspector
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
maiha-merb_inspector-0.2.1 lib/merb_inspector/inspector.rb
maiha-merb_inspector-0.2.2 lib/merb_inspector/inspector.rb
maiha-merb_inspector-0.2 lib/merb_inspector/inspector.rb