Sha256: ec8696fdb68ab8f92826f41407da4013eca551b64634285e6452bf8f50af8cec

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

require 'erb'
require 'open-uri'

module WebConsole
  class Controller
    require_relative "constants"
    require_relative "module"

    attr_reader :name
    def initialize(delegate = nil, erb_template_path = nil)
      @delegate = delegate

      template_erb = ERB.new(File.new(erb_template_path).read, nil, '-')
      html = template_erb.result(binding)

      if @delegate
        @delegate.load_html(html)
      end
    end

    CSS_EXTENSION = ".css"
    CSS_PATH_COMPONENT = "css/"
    def shared_stylesheet_link_tag(resource)
      uri = URI.join(shared_resources_url, CSS_PATH_COMPONENT, resource + CSS_EXTENSION)
      return "<link rel=\"stylesheet\" href=\"#{uri.to_s}\" />"
    end
    JS_EXTENSION = ".js"
    JS_PATH_COMPONENT = "js/"
    def shared_javascript_include_tag(resource)
      uri = URI.join(shared_resources_url, JS_PATH_COMPONENT, resource + JS_EXTENSION)
      return "<script type=\"text/javascript\" src=\"#{uri.to_s}\"></script>"
    end
    
    private

    def shared_resources_url
      if !@shared_resources_url
        @shared_resources_url = ENV.has_key?(SHARED_RESOURCES_URL_KEY)? ENV[SHARED_RESOURCES_URL_KEY] : WebConsole::shared_resources_url
      end
      return @shared_resources_url
    end

    class ::String
      def javascript_escape
        self.gsub('\\', "\\\\\\\\").gsub("\n", "\\\\n").gsub("'", "\\\\'")
      end

      def javascript_escape!
        replace(self.javascript_escape)
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webconsole-0.0.4 lib/webconsole/controller.rb
webconsole-0.0.3 lib/webconsole/controller.rb