Sha256: 48ed6dabbf606954f31e584e5a7aaf69b7836334b019d199865562e9ed9ed3d5

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require 'rails_admin/config/fields/types/text'
require 'json'

module RailsAdmin
  module Config
    module Fields
      module Types
        class EnjoyHash < RailsAdmin::Config::Fields::Types::Text
          # Register field type for the type loader
          RailsAdmin::Config::Fields::Types::register(self)
          include RailsAdmin::Engine.routes.url_helpers

          register_instance_option :string_method do
            "#{name}_str"
          end

          register_instance_option :allowed_methods do
            [string_method]
          end

          register_instance_option :partial do
            :enjoy_hash
          end

          register_instance_option :formatted_value do
            begin
              JSON.pretty_generate(JSON.parse(bindings[:object].send string_method))
            rescue
              bindings[:object].send string_method
            end
          end

          register_instance_option :pretty_value do
            ("<pre>" + JSON.pretty_generate(value) + "</pre>").html_safe
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
enjoy_cms-0.3.7 lib/enjoy/rails_admin_ext/enjoy_hash.rb