Sha256: a8437a183515674cee96e0ba16be0c9790c31a28de352e741811c2d7e12c836f
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
require_relative "parameter_bag" module Kanal module Core module Helpers # Parameter bag but it checks registrator for existence of parameters # and if they are has needed by registrator allowances, types etc, whatever # registrator rules are stored for property class ParameterBagWithRegistrator < ParameterBag def initialize(registrator) super() @registrator = registrator end def get(name) validate_parameter_registration name super name end def set(name, value) validate_parameter_registration name readonly = @registrator.get_parameter_registration_if_exists(name).readonly? if readonly value_exists = !get(name).nil? if value_exists raise "Parameter #{name} is marked readonly! You tried to set it's value, but it already has value." end end super name, value end def validate_parameter_registration(name) unless @registrator.parameter_registered? name raise "Parameter #{name} was not registered! Did you forget to register that parameter?" end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kanal-0.3.0 | lib/kanal/core/helpers/parameter_bag_with_registrator.rb |