Sha256: 83c629201e70c258ea6241d5626eaed9ea5219ee26eaa847737d5007d96a0209
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
def getter(*methods) methods.each do |method| class_eval %{ def get_#{method} "#{method}:#\{#{method}\}" end } end end def private_attr_writer(*methods) methods.each do |method| class_eval %{ attr_writer :#{method};private :#{method}= } end end def private_attr_accessor(*methods) methods.each do |method| class_eval %{ attr_accessor :#{method};private :#{method}= } end end def attr_validate_reader(methods, regex) class_eval %{ def #{methods} @#{methods} end def self.validate_#{methods}?(value) value.match(#{regex}) end def #{methods}? !@#{methods}.nil? end } end def attr_validate_accessor(methods, regex) class_eval %{ def #{methods}=(new_value) if new_value == nil || new_value !~ #{regex} raise ArgumentError end @#{methods} = new_value end attr_validate_reader :#{methods}, '#{regex}' } end def attr_is_have_reader(methods) class_eval %{ def #{methods} @#{methods} end def #{methods}? !@#{methods}.nil? end } end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rybish_code-2.0.0 | lib/source/support/meta_code.rb |
rybish_code-1.1.6 | lib/source/support/meta_code.rb |