Sha256: ffe51a391eace64850a1a8c4f25887b3a73ad87677b90d6c96fc4f7816e2ea73
Contents?: true
Size: 880 Bytes
Versions: 5
Compression:
Stored size: 880 Bytes
Contents
module Checked class Args Unknown_Class = Class.new(RuntimeError) module Base def initialize *arr arr.flatten.each { |var| case var when Array var.each { |k| define k } when Hash var.each { |k,v| define k send("#{k}=", v) } else raise Unknown_Class, var.inspect end } end def define *raw raw.flatten.each { |k| eval %~ def #{k} @#{k} end def #{k}= v @#{k} = v end ~ } end def defined? key respond_to?( key ) && respond_to?( :"#{key}=" ) end end # === module Base include Base end # === module Args end # === module Checked
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
Checked-0.1.4 | lib/Checked/Args.rb |
Checked-0.1.3 | lib/Checked/Args.rb |
Checked-0.1.2 | lib/Checked/Args.rb |
Checked-0.1.1 | lib/Checked/Args.rb |
Checked-0.1.0 | lib/Checked/Args.rb |