Sha256: 10a68afbd7f34173952112f1d74584941220022d4c6a4feddafd92b3d4d9f0e6

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

require 'interface_builder/haml_builder'
require 'interface_builder/model_stub'
require 'interface_builder/view_helper'
require 'interface_builder/support'

ActionController::Base.class_eval do
  include InterfaceBuilder::ControllerHelper
  helper InterfaceBuilder::ViewHelper
  
  helper_method :themed_partial_exist?, :themed_partial, :current_theme
end

ActionView::Base.field_error_proc = lambda do |html_tag, instance|
  html_tag
end

module InterfaceBuilder
  class << self
    attr_accessor :plugin_name
    
    def generate_helper_methods *args
      InterfaceBuilder::ViewBuilder.generate_helper_methods *args
    end
    
    def available_themes; @available_themes ||= [] end
    
    # Templates that should be wrapped if it doesn't defined for current theme
    def dont_wrap_into_placeholder; @dont_wrap_into_placeholder ||= Set.new end
    
    # TODO 3 don't cache it becouse there's a lots of text data that will be reside in memory.
    def theme_metadata theme
      metadata = {}
      fname = "#{InterfaceBuilder.themes_dir}/#{theme}/metadata.rb"
      if File.exist? fname
        code = File.read fname
        metadata = eval code
        metadata.should! :be_a, Hash        
      end
      metadata.to_openobject
    end
    cache_with_params! :theme_metadata unless Rails.development?
    
    def themes_dir
      "#{RAILS_ROOT}/vendor/plugins/#{InterfaceBuilder.plugin_name.should_not_be!(:blank)}/app/views/themes"
    end
  end
    
end

Rails.development{RailsExt.create_public_symlinks!} # rails_ext.css, rails_ext.js in development mode

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails-ext-0.3.27 lib/interface_builder.rb