Module: TinyMCE::Base::ClassMethods

Defined in:
lib/tiny_mce/base.rb

Instance Method Summary collapse

Instance Method Details

#uses_tiny_mce(options = {}) ⇒ Object

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)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tiny_mce/base.rb', line 13

def uses_tiny_mce(options = {})
  configuration = TinyMCE::Configuration.new(options.delete(:options), options.delete(:raw_options))
  
  
  # Include an option to load the main tiny_mce.js file if the app appears
  # to be using jquery. (And use uncompressed script in development)
  if configuration.uses_jquery?
    configuration.reverse_add_options( {:script_url => (Rails.env.to_s == 'development' ? "/javascripts/tiny_mce/tiny_mce_src.js" : "/javascripts/tiny_mce/tiny_mce.js")} )
  end
  
  
  # 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 configuration.plugins.include?('spellchecker')
    configuration.reverse_add_options("spellchecker_rpc_url" => "/" + self.controller_name + "/spellchecker")
    self.class_eval { include TinyMCE::SpellChecker }
  end

  # Set instance vars in the current class
  proc = Proc.new do |c|
    configurations = c.instance_variable_get(:@tiny_mce_configurations) || []
    configurations << configuration
    c.instance_variable_set(:@tiny_mce_configurations, configurations)
    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