Sha256: 6bdc4f57a4f4afd8c783f85707395d495a6273c4b47f8ded5ee72cea1aa2326a
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
module Finitio class ProxyType < Type def initialize(target_name, target = nil) unless target_name.is_a?(String) raise ArgumentError, "String expected for type name, got `#{target_name}`" end @target_name = target_name @target = target end attr_reader :target_name, :target def default_name "_#{target_name}_" end def include?(*args, &bl) raise Error, "Proxy not resolved: #{target_name}" unless @target @target.include?(*args, &bl) end def dress(*args, &bl) raise Error, "Proxy not resolved: #{target_name}" unless @target @target.dress(*args, &bl) end def bind!(system) @target = system.fetch(target_name) { raise Error, "No such type `#{target_name}` in #{system}" } end def resolve_proxies(system) system.fetch(target_name) { raise Error, "No such type `#{target_name}` in #{system}" } end def unconstrained return @target.unconstrained if @target raise Error, "`unconstrained` cannot be call whithout proxies being resolved" end end # class ProxyType end # module Finitio
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
finitio-0.12.0 | lib/finitio/type/proxy_type.rb |
finitio-0.11.4 | lib/finitio/type/proxy_type.rb |