Sha256: 7c12f888c905d801c4fd01c79d5fd4e3a08d3a33fff44618c2842a6c0dd28cfd
Contents?: true
Size: 614 Bytes
Versions: 1
Compression:
Stored size: 614 Bytes
Contents
class Module private # Works like <tt>attr_accessor</tt> but generates private # getter/setter methods for class internal use only. Useful # for enforcing Smalltalk-style internal encapsulation. def private_accessor(*names) names.each do |name| instance_var_name = "@#{name}" define_method(name) do instance_variable_get(instance_var_name) end define_method("#{name}=") do |value| instance_variable_set(instance_var_name, value) end self.send(:private, name) self.send(:private, "#{name}=") end nil # like attr_accessor end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shenanigans-1.0.8 | lib/shenanigans/module/private_accessor.rb |