Module: Attrio::Reset::ClassMethods

Defined in:
lib/attrio/reset.rb

Instance Method Summary collapse

Instance Method Details

#define_attrio_reset(as) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/attrio/reset.rb', line 10

def define_attrio_reset(as)
  define_method "reset_#{as.to_s}" do |attributes = []|
    # self.send(as.to_s, attributes).values.each{ |attribute| self.send(attribute.writer_method_name, nil) }
    # self.send("set_#{as.to_s}_defaults", attributes)
    self.send(as.to_s, attributes).values.each{ |attribute| attribute.reset! }
  end

  # define_method "reset_#{as.to_s}_defaults" do |attributes = []|
  #   self.send(as.to_s, attributes).values.select{ |attribute| !attribute.default_value.nil? }.each { |attribute| self.send(attribute.writer_method_name, nil) }
  #   self.send("set_#{as.to_s}_defaults", attributes)
  # end

  # define_method "set_#{as.to_s}_defaults" do |attributes = []|
  #   self.send(as.to_s, attributes).values.select{ |attribute| !attribute.default_value.nil? }.each do |attribute|
  #     next if self.send(attribute.reader_method_name).present?

  #     default_value = attribute.default_value.is_a?(Attrio::DefaultValue::Base) ? attribute.default_value.call(self) : attribute.default_value
  #     self.send(attribute.writer_method_name, default_value)
  #   end
  # end
end