Sha256: d86f916e27835efe5e853809f167ac8069bb080b403d23a08d40deba8747e941
Contents?: true
Size: 1.06 KB
Versions: 225
Compression:
Stored size: 1.06 KB
Contents
module RGen module Instantiator module ResolutionHelper # sets the target of an unresolved reference in the model # returns :type_error if the target is of wrong type, otherwise :success # def self.set_uref_target(uref, target) refs = uref.element.getGeneric(uref.feature_name) if refs.is_a?(Array) index = refs.index(uref.proxy) uref.element.removeGeneric(uref.feature_name, uref.proxy) begin uref.element.addGeneric(uref.feature_name, target, index) rescue StandardError => e if is_type_error?(e) uref.element.addGeneric(uref.feature_name, uref.proxy, index) return :type_error else raise end end else begin # this will replace the proxy uref.element.setGeneric(uref.feature_name, target) rescue StandardError => e if is_type_error?(e) return :type_error else raise end end end :success end def self.is_type_error?(e) e.message =~ /Can not use a .* where a .* is expected/ end end end end
Version data entries
225 entries across 225 versions & 3 rubygems