Sha256: 29b884d6a3bddae74710a44ccdc69680196390e86f248f31408e1786a14f4b16

Contents?: true

Size: 1.69 KB

Versions: 4

Compression:

Stored size: 1.69 KB

Contents

require 'rails_admin/config/fields/types/string'
require 'phony'

module RailsAdmin
  module Config
    module Fields
      module Types
        class Phone < RailsAdmin::Config::Fields::Types::String
          # Register field type for the type loader
          RailsAdmin::Config::Fields::Types::register(self)

          register_instance_option :pretty_value do
            if value.nil?
              nil
            else
              options = {}
              options[:format] = format if format.present?
              options[:spaces] = spaces if spaces.present?
              if Phony.plausible?(normalized_value)
                Phony.formatted(normalized_value, options).html_safe
              else
                value.html_safe
              end
            end
          end

          register_instance_option :cc do
            nil
          end
          register_instance_option :ndc do
            nil
          end
          register_instance_option :format do
            nil
          end
          register_instance_option :spaces do
            nil
          end

          register_instance_option :export_value do
            value.inspect
          end

          # in case you want to save normalized value
          # must be called from controller
          # def parse_input(params)
          #   raise params[name].inspect
          #   params[name] = Phony.normalize(params[name], {cc: cc, ndc: ndc}) if params[name].present?
          # end

          def normalized_value
            options = {}
            options[:cc] = cc if cc.present?
            options[:ndc] = ndc if ndc.present?
            Phony.normalize(value, options)
          end
        end 
      end 
    end 
  end 
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
basepack-1.0.1 lib/basepack/rails_admin/fields_types/phone.rb
basepack-1.0.0 lib/basepack/rails_admin/fields_types/phone.rb
basepack-1.0.0.pre.0 lib/basepack/rails_admin/fields_types/phone.rb
basepack-0.2.0 lib/basepack/rails_admin/fields_types/phone.rb