class Yoda::Typing::Environment
Public Class Methods
new()
click to toggle source
# File lib/yoda/typing/environment.rb, line 6 def initialize @binds = {} end
Public Instance Methods
bind(key, type)
click to toggle source
@param key [String, Symbol] @param type [Symbol, Model::Types::Base]
# File lib/yoda/typing/environment.rb, line 17 def bind(key, type) key = key.to_sym type = (type.is_a?(Symbol) && resolve(type)) || type @binds.transform_values! { |value| value == key ? type : value } @binds[key] = type self end
bind_method_parameters(signature)
click to toggle source
@param signature [Model::FunctionSignatures::Base] @return [self]
# File lib/yoda/typing/environment.rb, line 27 def bind_method_parameters(signature) parameter_names = signature.parameters.parameter_names parameter_names.each do |name| bind(name.gsub(/:\Z/, ''), signature.parameter_type_of(name)) end end
resolve(key)
click to toggle source
@param key [String, Symbol]
# File lib/yoda/typing/environment.rb, line 11 def resolve(key) @binds[key.to_sym] end