Sha256: 570abdba820bb244a8837b9ead6a3734f771f06aac4966307f643023d2a691de

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

module TinyMCE
  # The base module we include into ActionController::Base
  module Controller
    # When this module is included, extend it with the available class methods
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      # The controller declaration to enable tiny_mce on certain actions.
      # Takes options hash, raw_options string, and any normal params you
      # can send to a before_filter (only, except etc)
      def uses_tiny_mce(options = {})
        tiny_mce_options = options.delete(:options) || {}
        raw_tiny_mce_options = options.delete(:raw_options) || ''

        # If the tiny_mce plugins includes the spellchecker, then form a spellchecking path,
        # add it to the tiny_mce_options, and include the SpellChecking module
        if !tiny_mce_options[:plugins].blank? && tiny_mce_options[:plugins].include?('spellchecker')
          tiny_mce_options.reverse_merge!(:spellchecker_rpc_url => "/" + self.controller_name + "/spellchecker")
          self.class_eval do
            include TinyMCE::SpellChecker
          end
        end

        # Set instance vars in the current class
        proc = Proc.new do |c|
          c.instance_variable_set(:@tiny_mce_options, tiny_mce_options)
          c.instance_variable_set(:@raw_tiny_mce_options, raw_tiny_mce_options)
          c.instance_variable_set(:@uses_tiny_mce, true)
        end

        # Run the above proc before each page load this method is declared in
        before_filter(proc, options)
      end

    end

  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
krasivotokak-tiny_mce-0.0.2 lib/tiny_mce/controller.rb
tiny_mce-0.0.2 lib/tiny_mce/controller.rb