Sha256: 093be3925749cae36a0fd98fbdcb2acb1a2e4a25e042a59658beaaacb70ef4df

Contents?: true

Size: 434 Bytes

Versions: 2

Compression:

Stored size: 434 Bytes

Contents

class JsonValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    record.errors[attribute] << (options[:message] || I18n.t('slash_admin.view.json_not_valid')) unless valid_json?(value) 
  end

  def valid_json?(string)
    # handle parsed already string
    if string.is_a? Hash
      return true
    end
    begin
      !!JSON.parse(string)
    rescue JSON::ParserError
      false
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slash_admin-1.0.1 config/initializers/validators.rb
slash_admin-1.0 config/initializers/validators.rb