Sha256: 20f6cf112d24106be369394b38e41c970df83ff83b0161b5900410cd3956b95c
Contents?: true
Size: 627 Bytes
Versions: 2
Compression:
Stored size: 627 Bytes
Contents
module FormalWear module ClassMethods def required_attrs(attrs) validate_attrs!(attrs) required = class_variable_get(:@@required_fields) || {} class_variable_set(:@@required_fields, required.merge(attrs)) create_accessors(attrs.keys) end def required_attr(a); required_attrs(a); end def create_accessors(keys) keys.each { |k| self.send(:attr_accessor, k) unless method_defined?(k) } end def validate_attrs!(attrs) attrs.each do |a, opts| opts.assert_valid_keys(*ALLOWED_KEYS) opts.assert_required_keys(*REQUIRED_KEYS) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
formal_wear-0.1.0 | lib/formal_wear/class_methods.rb |
formal_wear-0.0.1 | lib/formal_wear/class_methods.rb |