Class: AttrPermitLazy

Inherits:
AttrPermit show all
Defined in:
lib/attr_permit.rb

Constant Summary

Constants inherited from AttrPermit

AttrPermit::VERSION

Class Method Summary collapse

Methods inherited from AttrPermit

#==, #hash, #initialize, #is_equivalent?, map_attribute, map_attributes, #map_hash, mapped_methods, #non_nil_values, permissible_methods, #permit_hash, #to_enum, #to_hash, #update

Constructor Details

This class inherits a constructor from AttrPermit

Class Method Details

.attr_permit(*permissible_methods) ⇒ Object



191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/attr_permit.rb', line 191

def self.attr_permit(*permissible_methods)
  self.permissible_methods.concat [*permissible_methods, *get_super_premissible_methods]
  self.permissible_methods.each do |meth|

    send(:define_method, meth) do
      callable = instance_variable_get("@#{meth}")
      instance_variable_set("@#{meth}", callable.call) if callable.respond_to?(:call)
      instance_variable_get("@#{meth}")
    end

    attr_writer meth unless public_instance_methods.include?("#{meth}=")
  end
end