Sha256: 98ffc67e011ce31fea108bf252868109c6d5abebd551ec6580d35ef6882da1a1
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
class Class def cattr_reader(* syms) options = extract_options!(syms) syms.each do |sym| next if sym.is_a?(Hash) class_eval(<<-EOS, __FILE__, __LINE__ + 1) unless defined? @@#{sym} @@#{sym} = nil end def self.#{sym} @@#{sym} end EOS unless options[:instance_reader] == false class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym} @@#{sym} end EOS end end end def cattr_writer(* syms) options = extract_options!(syms) syms.each do |sym| class_eval(<<-EOS, __FILE__, __LINE__ + 1) unless defined? @@#{sym} @@#{sym} = nil end def self.#{sym}=(obj) @@#{sym} = obj end EOS unless options[:instance_writer] == false class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym}=(obj) @@#{sym} = obj end EOS end end end def cattr_accessor(*syms) cattr_reader(*syms) cattr_writer(*syms) end def extract_options!(array) array.last.is_a?(::Hash) ? array.pop : {} end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
emipair-delayed_job-2.0.3.1 | lib/passive_support/core_ext/class/attribute_accessors.rb |