Sha256: db6f2ebb1b824385891c6e553b3428556fbdf051af476a482ac89a7b6f24b930
Contents?: true
Size: 1009 Bytes
Versions: 2
Compression:
Stored size: 1009 Bytes
Contents
require "Get_Set/version" require 'Checked' module Get_Set module DSL include Checked::DSL def self.included klass klass.extend Class_Methods end module Class_Methods include Checked::DSL def attr_get_set *names Array!(names).symbols! names.each { |n| class_eval %~ def #{n} *args instance_variable_set( :@#{n}, nil ) unless instance_variable_defined?(:@#{n}) Get_Set! :@#{n}, *args end ~, __FILE__, __LINE__ } end end # === module Class_Methods def Get_Set! *args Size! args, 1..2 name = args.shift raise ArgumentError, "Instance variable #{name.inspect} has not been defined." unless instance_variable_defined?(name) if args.empty? instance_variable_get name else instance_variable_set name, args.first end end end # === module DSL end # === module Get_Set
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
Get_Set-1.1.1 | lib/Get_Set.rb |
Get_Set-1.1.0 | lib/Get_Set.rb |