File: value/core/class.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: Value#8
  module: Core#10
has properties
function: make_class / 1 #46
  class: Class#12
inherits from
  Top ( Umu::Value::Core )
has properties
attribute: class_signat [R] #13
method: initialize / 1 #16
method: to_s #25
method: __invoke__ / 5 #32

Class Hierarchy

Object ( Builtin-Module )
Top ( Umu::Value::Core )
  Class    #12

Code

   1  # coding: utf-8
   2  # frozen_string_literal: true
   3 
   4 
   5 
   6  module Umu
   7 
   8  module Value
   9 
  10  module Core
  11 
  12  class Class < Top
  13      attr_reader :class_signat
  14 
  15 
  16      def initialize(class_signat)
  17          ASSERT.kind_of class_signat, ECTSC::Base
  18 
  19          super()
  20 
  21          @class_signat = class_signat
  22      end
  23 
  24 
  25      def to_s
  26          format "&%s", self.class_signat.to_sym
  27      end
  28 
  29 
  30  private
  31 
  32      def __invoke__(meth_sym, loc, env, event, arg_values)
  33          ASSERT.kind_of meth_sym,    ::Symbol
  34          ASSERT.kind_of loc,         LOC::Entry
  35          ASSERT.kind_of env,         E::Entry
  36          ASSERT.kind_of event,       E::Tracer::Event
  37          ASSERT.kind_of arg_values,  ::Array
  38 
  39          self.class_signat.klass.send meth_sym, loc, env, event, *arg_values
  40      end
  41  end
  42 
  43 
  44  module_function
  45 
  46      def make_class(class_signat)
  47          ASSERT.kind_of class_signat, ECTSC::Base
  48 
  49          Class.new(class_signat).freeze
  50      end
  51 
  52  end # Umu::Core
  53 
  54  end # Umu::Value
  55 
  56  end # Umu