class StrongStruct
Public Class Methods
new(allowed:, defaults: {})
click to toggle source
Calls superclass method
SafeStruct::new
# File lib/r_kit/struct/strong_struct.rb, line 3 def self.new allowed:, defaults: {} super.tap do |klass| klass.send :define_method, :instance_variable_set, ->(name, value) do if __class__.allowed.include? name super(name, value) else raise NameError.new("unsafe key `#{ name }' for #{ __class__ }") end end end end