Sha256: 210a95aba606c079800dbcb97eddf5bd164423fae03198cdd728f4491395040e

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true
module Formtastic
  module Inputs
    module Base
      module Naming

        def as
          self.class.name.split("::")[-1].underscore.gsub(/_input$/, '')
        end

        def sanitized_object_name
          object_name.to_s.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "")
        end

        def sanitized_method_name
          @sanitized_method_name ||= method.to_s.gsub(/[\?\/\-]$/, '')
        end

        def attributized_method_name
          method.to_s.gsub(/_id$/, '').to_sym
        end

        def humanized_method_name
          if builder.label_str_method != :humanize
            # Special case where label_str_method should trump the human_attribute_name
            # TODO: is this actually a desired bheavior, or should we ditch label_str_method and
            # rely purely on :human_attribute_name.
            method.to_s.send(builder.label_str_method)
          elsif object && object.class.respond_to?(:human_attribute_name)
            object.class.human_attribute_name(method.to_s)
          else
            method.to_s.send(builder.label_str_method)
          end
        end

        def input_name
          association_primary_key
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
formtastic-5.0.0 lib/formtastic/inputs/base/naming.rb