class CKEditor5::Rails::Editor::EditableHeightNormalizer
def convert_string_to_pixel_value(value)
def convert_string_to_pixel_value(value) return value if value.match?(/^\d+px$/) raise_invalid_height_error(value) end
def convert_to_pixel_value(value)
def convert_to_pixel_value(value) case value when Integer then "#{value}px" when String then convert_string_to_pixel_value(value) else raise_invalid_height_error(value) end end
def initialize(editor_type)
def initialize(editor_type) @editor_type = editor_type end
def normalize(value)
def normalize(value) return nil if value.nil? validate_editor_type! convert_to_pixel_value(value) end
def raise_invalid_height_error(value)
def raise_invalid_height_error(value) raise InvalidEditableHeightError, "editable_height must be an integer representing pixels or string ending with 'px'\n" \ "(e.g. 500 or '500px'). Got: #{value.inspect}" end
def validate_editor_type!
def validate_editor_type! return if %i[classic balloon].include?(editor_type) raise InvalidEditableHeightError, 'editable_height can be used only with ClassicEditor or BalloonEditor' end