Sha256: 447c3f21e65c24fce0dffa5db4d2b4b8a21c993b5b122eec9a2d969aedbbea04
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true require 'active_support' require 'action_view/helpers/tag_helper' require 'action_view/helpers/form_tag_helper' require 'action_view/helpers/javascript_helper' module Ckeditor class TextArea include ActionView::Helpers::TagHelper include ActionView::Helpers::FormTagHelper include ActionView::Helpers::JavaScriptHelper attr_reader :template, :options, :ck_options def initialize(template, options) @template = template @options = options.stringify_keys @ck_options = (@options.delete('ckeditor') || {}).stringify_keys @ck_options['customConfig'] ||= template.asset_path(Ckeditor.js_config_url) if Ckeditor.cdn_enabled? end def render_instance_tag(object_name, method) tag = build_tag(object_name, method) tag.send(:add_default_name_and_id, options) if options['id'].blank? render tag.respond_to?(:to_text_area_tag) ? tag.to_text_area_tag(options) : tag.render end def render_tag(name, content) options['id'] = sanitize_to_id(options['id'] || name) render text_area_tag(name, content, options) end protected def render(input) output_buffer << input output_buffer << javascript_tag(Utils.js_replace(options['id'], ck_options)) output_buffer end def output_buffer @output_buffer ||= ActionView::OutputBuffer.new end def build_tag(object_name, method) if defined?(ActionView::Base::Tags::TextArea) ActionView::Base::Tags::TextArea.new(object_name, method, template, options.symbolize_keys) else ActionView::Base::InstanceTag.new(object_name, method, template, options.delete('object')) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ckeditor-5.1.3 | lib/ckeditor/text_area.rb |
ckeditor-5.1.2 | lib/ckeditor/text_area.rb |
ckeditor-5.1.1 | lib/ckeditor/text_area.rb |