Module: KeepDefaults
- Defined in:
- lib/keep_defaults.rb,
lib/keep_defaults/version.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(klass) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/keep_defaults.rb', line 4 def self.included(klass) klass.instance_eval do column_defaults.each do |name, default| next if default.nil? || columns_hash[name].null # Use Module.new so classes can get this by calling super module_eval %{ include Module.new { def #{name}=(value) return if value.nil? super value end } }, __FILE__, __LINE__ + 1 end end end |
Instance Method Details
#write_attribute(name, value) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/keep_defaults.rb', line 22 def write_attribute(name, value) name = name.to_s if name.is_a?(Symbol) name = self.class.attribute_alias(name) if self.class.attribute_alias?(name) value = self.class.column_defaults[name] if value.nil? && !self.class.columns_hash[name].null super end |