Module: RailsStuff::NullifyBlankAttrs

Defined in:
lib/rails_stuff/nullify_blank_attrs.rb

Overview

Changes to ‘nil` assigned blank attributes.

class App
  nullify_blank_attrs :site_url
  # ...

Instance Method Summary collapse

Instance Method Details

#nullify_blank_attrs(*attrs) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/rails_stuff/nullify_blank_attrs.rb', line 10

def nullify_blank_attrs(*attrs)
  nullify_blank_attrs_methods.class_eval do
    attrs.each do |attr|
      define_method("#{attr}=") { |val| super(val.presence) }
    end
  end
end

#nullify_blank_attrs_methodsObject

Module to store generated methods, so they can be overriden in model.



19
20
21
# File 'lib/rails_stuff/nullify_blank_attrs.rb', line 19

def nullify_blank_attrs_methods
  @nullify_blank_attrs_methods ||= Module.new.tap { |x| prepend x }
end