Class: RestrictedStruct
- Inherits:
-
Struct
- Object
- Struct
- RestrictedStruct
- Defined in:
- lib/restricted_struct/definition.rb
Defined Under Namespace
Modules: Support
Constant Summary collapse
- ACCESS_RESTRICTIONS =
{ :private => lambda { |methods| lambda { |*| private *methods } }, :protected => lambda { |methods| lambda { |*| protected *methods } } }
- ACCESS_LEVELS =
ACCESS_RESTRICTIONS.keys
- VERSION =
"0.2.1"
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(*values) ⇒ RestrictedStruct
constructor
A new instance of RestrictedStruct.
Constructor Details
#initialize(*values) ⇒ RestrictedStruct
Returns a new instance of RestrictedStruct.
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/restricted_struct/definition.rb', line 43 def initialize(*values) values, keyword_args = Support.extract_keyword_args(values) members.each_with_index do |name, index| # 1.8 compatibility key = name.to_sym values[index] = self.class.defaults[key] if nil == values[index] values[index] = keyword_args[key] if keyword_args.has_key?(key) end super(*values) end |
Class Method Details
.defaults ⇒ Object
15 16 17 |
# File 'lib/restricted_struct/definition.rb', line 15 def defaults @defaults ||= {} end |
.new(access_level, *properties) ⇒ Object
9 10 11 12 13 |
# File 'lib/restricted_struct/definition.rb', line 9 def new(access_level, *properties) properties, defaults = Support.extract_keyword_args(properties) properties.concat(defaults.keys) super(*properties, &access_restriction(access_level, properties)).with_defaults(defaults) end |