2 class InvalidOption < Exception
9 def tiny_mce_init(options = @tiny_mce_options)
11 default_options = {:mode => 'textareas',
13 options = default_options.merge(options)
14 TinyMCE::OptionValidator.plugins = options[:plugins]
15 tinymce_js = "tinyMCE.init({\n"
17 options.stringify_keys.sort.each do |pair|
18 key, value = pair[0], pair[1]
19 raise InvalidOption.new("Invalid option #{key} passed to tinymce") unless TinyMCE::OptionValidator.valid?(key)
20 tinymce_js += "#{key} : "
22 when String, Symbol, Fixnum
23 tinymce_js += "'#{value}'"
25 tinymce_js += '"' + value.join(',') + '"'
31 raise InvalidOption.new("Invalid value of type #{value.class} passed for TinyMCE option #{key}")
33 (i < options.size - 1) ? tinymce_js += ",\n" : "\n"
37 javascript_tag tinymce_js
39 alias tiny_mce tiny_mce_init
41 def javascript_include_tiny_mce
42 javascript_include_tag RAILS_ENV == 'development' ? "tiny_mce/tiny_mce_src" : "tiny_mce/tiny_mce"
45 def javascript_include_tiny_mce_if_used
46 javascript_include_tiny_mce if @uses_tiny_mce