class LIT::Builder::Map

@api private @since 0.1.0

Public Class Methods

new(mod, key_type, value_type) click to toggle source
# File lib/lit/builder/map.rb, line 8
def initialize(mod, key_type, value_type)
  @type_checker = TypeChecker.new(mod)
  @key_type = key_type
  @value_type = value_type
end

Public Instance Methods

build() click to toggle source
# File lib/lit/builder/map.rb, line 14
def build
  type_checker = @type_checker
  key_type = @key_type
  value_type = @value_type

  Class.new(::LIT::Object::Map) do
    define_method(:check_type!) do |key, value|
      type_checker.check_type!(key_type, key)
      type_checker.check_type!(value_type, value)
    end

    private(:check_type!)
  end
end