Module: Scrubby::ClassMethods
- Defined in:
- lib/scrubby.rb
Instance Method Summary collapse
-
#scrub(*attributes, &block) ⇒ Object
scrub
accepts multiple symbol or string arguments, representing model attributes that are to be scrubbed before being set. - #scrubby? ⇒ Boolean
Instance Method Details
#scrub(*attributes, &block) ⇒ Object
scrub
accepts multiple symbol or string arguments, representing model attributes that are to be scrubbed before being set. The scrub
method accepts no options, but an optional block can be included which will be used for scrubbing. Otherwise, the scrub
instance method is used.
The scrub
instance method and the optional block both expect one argument: the incoming attribute value, and should return one value: the new, all-cleaned-up attribute value. However, when a custom block is given, the single argument can be left out if for some reason it’s not needed.
Examples
class User < ActiveRecord::Base
scrub :first_name, :last_name
end
class User < ActiveRecord::Base
scrub :first_name, :last_name do |value|
value.blank? ? nil : value.titleize
end
end
class User < ActiveRecord::Base
scrub(:first_name){|v| v.to_s.upcase }
scrub(:last_name){ nil }
end
63 64 65 66 |
# File 'lib/scrubby.rb', line 63 def scrub(*attributes, &block) scrubber = block_given? ? block : instance_method(:scrub) self.scrubbers = attributes.inject({}){|s,a| s.merge!(a.to_s => scrubber) } end |
#scrubby? ⇒ Boolean
68 69 70 |
# File 'lib/scrubby.rb', line 68 def scrubby? !scrubbers.blank? end |