Class: NamedStruct::Config
- Inherits:
-
Object
- Object
- NamedStruct::Config
- Defined in:
- lib/named_struct/config.rb
Class Attribute Summary collapse
-
.members ⇒ Object
readonly
Returns the value of attribute members.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(*positional_args, **args) ⇒ Config
constructor
A new instance of Config.
Constructor Details
#initialize(*positional_args, **args) ⇒ Config
Returns a new instance of Config.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/named_struct/config.rb', line 16 def initialize(*positional_args, **args) if !positional_args.empty? raise ArgumentError, "wrong arguments accepts only keyword arguments" end keys = args.keys required_keys = self.class.members if keys.sort != required_keys.sort if keys.size > required_keys.size raise(ArgumentError, "wrong number of arguments (%d for %d)"% [keys.size, required_keys.size]) end mising_keys = required_keys - keys raise(ArgumentError, "missing keyword: %s"%mising_keys.join(', ')) end args.each{|k, v| instance_variable_set("@#{k}".to_sym, v)} end |
Class Attribute Details
.members ⇒ Object (readonly)
Returns the value of attribute members.
5 6 7 |
# File 'lib/named_struct/config.rb', line 5 def members @members end |
Class Method Details
.attr_required(*keys) ⇒ Object
6 7 8 9 10 |
# File 'lib/named_struct/config.rb', line 6 def attr_required(*keys) @members = keys @members.freeze attr_reader(*@members) end |