mdeering / attribute_normalizer

Adds the ability to normalize attributes cleanly with code blocks and predefined normalizers
MIT License
475 stars 53 forks source link

Get attribute name within normalizer #74

Open tanraya opened 8 years ago

tanraya commented 8 years ago

I would like to create a normalizer with auto-truncation feature, so I need to know the current limit of a table field. To determine the length of the field I need to know the name of the attribute.

Here's what I want:

  config.normalizers[:auto_truncate] = lambda do |value, options|
    column = options[:model].column_for_attribute(options[:attribute_name])

    if value.is_a?(String) && column.limit
      value.mb_chars.limit(column.limit)
    else
      value
    end
  end

I looked into the source and found nothing relative to the topic. What if I add :attribute_name and :model keys into options hash and send PR?

mdeering commented 7 years ago

Yes. I can see value in knowing the attribute and even having access to instance.