Sha256: 4cc9f69293fb27197bf5218d2721ac3d4c9e92bbabe5dd90e61de6c13e6dffd9
Contents?: true
Size: 671 Bytes
Versions: 3
Compression:
Stored size: 671 Bytes
Contents
module Selfies class SelfInit def self.generate(class_name, *variable_names) return false unless variable_names.any? class_name.class_eval do attr_reader *variable_names define_method(:initialize) do |*args| argument_check(variable_names.count, args.count) variable_names.each_with_index do |variable, index| instance_variable_set("@#{variable}", args[index]) end end def argument_check(expected, given) raise ArgumentError, "wrong number of arguments (given #{given}, expected #{expected})" unless given == expected end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
selfies-0.2.0 | lib/selfies/self_init.rb |
selfies-0.1.1 | lib/selfies/self_init.rb |
selfies-0.1.0 | lib/selfies/self_init.rb |