Sha256: 3d33e702fef4f8f2b4897251c15c01abc3db008208fe66b622d28b9de38ddaeb

Contents?: true

Size: 1.64 KB

Versions: 34

Compression:

Stored size: 1.64 KB

Contents

module ActiveRecord
  class Base
    class <<self
      # Allows alternate humanized versions of attributes to be set.  For example, an attribute such as 'num_employees' would be
      # converted to 'Num employees' normally using <tt>human_attribute_name</tt>.  More descriptive text can be set. Example:
      #   attr_human_name 'num_employees' => 'Number of employees'
      def attr_human_hint(attributes) # :nodoc:
        return unless table_exists?

        attributes.stringify_keys!
        write_inheritable_hash("attr_human_hint", attributes || {})

        # assign the current class to each column that is being assigned a new human attribute name
        self.columns.reject{|c| !attributes.has_key?(c.name)}.each{|c| c.parent_record_class = self}
      end

      # Returns a hash of alternate human name conversions set with <tt>attr_human_name</tt>.
      def human_hint_attributes # :nodoc:
        read_inheritable_attribute("attr_human_hint")
      end

      # Transforms attribute key names into a more humane format, such as "First name" instead of "first_name". Example:
      #   Person.human_attribute_name("first_name") # => "First name"
      def human_attribute_hint(attribute_key_name) #:nodoc:
        (read_inheritable_attribute("attr_human_hint") || {})[attribute_key_name.to_s] || ''
      end
    end
  end

  module ConnectionAdapters #:nodoc:
    # An abstract definition of a column in a table.
    class Column
      # the active record class that this column is associated with
      attr_accessor :parent_record_class

      def human_hint
        (@parent_record_class || Base).human_attribute_hint(@name)
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
midas-guilded-0.0.8 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.0.9 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.0 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.1 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.2 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.3 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.4 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.8 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.1.9 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.0 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.1 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.3 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.4 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.5 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.6 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.7 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.8 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.2.9 lib/guilded/rails/active_record/human_attribute_hint.rb
midas-guilded-0.3.0 lib/guilded/rails/active_record/human_attribute_hint.rb
guilded-1.1.0 lib/guilded/rails/active_record/human_attribute_hint.rb