File: environment/preference.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Umu#6
  module: Environment#8
has properties
function: make_preference / 5 #122
constant: INITIAL_PREFERENCE #145
  class: Preference#10
inherits from
  Record ( Umu::Abstraction )
has properties
attribute: interactive_mode [R] #11
attribute: trace_mode [R] #12
attribute: lex_trace_mode [R] #13
attribute: dump_mode [R] #14
attribute: no_prelude [R] #15
class method: deconstruct_keys #18
method: initialize / 5 #29
method: interactive_mode? #50
method: trace_mode? #55
method: lex_trace_mode? #60
method: dump_mode? #65
method: any_trace? #70
method: no_prelude? #79
method: update_interactive_mode / 1 #84
method: update_trace_mode / 1 #91
method: update_lex_trace_mode / 1 #98
method: update_dump_mode / 1 #105
method: update_no_prelude / 1 #112

Class Hierarchy

Code

   1  # coding: utf-8
   2  # frozen_string_literal: true
   3 
   4 
   5 
   6  module Umu
   7 
   8  module Environment
   9 
  10  class Preference < Abstraction::Record
  11      attr_reader :interactive_mode
  12      attr_reader :trace_mode
  13      attr_reader :lex_trace_mode
  14      attr_reader :dump_mode
  15      attr_reader :no_prelude
  16 
  17 
  18      def self.deconstruct_keys
  19          {
  20              interactive_mode:   ::Object,
  21              trace_mode:         ::Object,
  22              lex_trace_mode:     ::Object,
  23              dump_mode:          ::Object,
  24              no_prelude:         ::Object
  25          }.freeze
  26      end
  27 
  28 
  29      def initialize(
  30              interactive_mode,
  31              trace_mode,
  32              lex_trace_mode,
  33              dump_mode,
  34              no_prelude
  35          )
  36          ASSERT.bool interactive_mode
  37          ASSERT.bool trace_mode
  38          ASSERT.bool lex_trace_mode
  39          ASSERT.bool dump_mode
  40          ASSERT.bool no_prelude
  41 
  42          @interactive_mode   = interactive_mode
  43          @trace_mode         = trace_mode
  44          @lex_trace_mode     = lex_trace_mode
  45          @dump_mode          = dump_mode
  46          @no_prelude         = no_prelude
  47      end
  48 
  49 
  50      def interactive_mode?
  51          self.interactive_mode
  52      end
  53 
  54 
  55      def trace_mode?
  56          self.trace_mode
  57      end
  58 
  59 
  60      def lex_trace_mode?
  61          self.lex_trace_mode
  62      end
  63 
  64 
  65      def dump_mode?
  66          self.dump_mode
  67      end
  68 
  69 
  70      def any_trace?
  71          [
  72              self.trace_mode,
  73              self.lex_trace_mode,
  74              self.dump_mode
  75          ].any?
  76      end
  77 
  78 
  79      def no_prelude?
  80          self.no_prelude
  81      end
  82 
  83 
  84      def update_interactive_mode(bool)
  85          ASSERT.bool bool
  86 
  87          self.update(interactive_mode: bool)
  88      end
  89 
  90 
  91      def update_trace_mode(bool)
  92          ASSERT.bool bool
  93 
  94          self.update(trace_mode: bool)
  95      end
  96 
  97 
  98      def update_lex_trace_mode(bool)
  99          ASSERT.bool bool
 100 
 101          self.update(lex_trace_mode: bool)
 102      end
 103 
 104 
 105      def update_dump_mode(bool)
 106          ASSERT.bool bool
 107 
 108          self.update(dump_mode: bool)
 109      end
 110 
 111 
 112      def update_no_prelude(bool)
 113          ASSERT.bool bool
 114 
 115          self.update(no_prelude: bool)
 116      end
 117  end
 118 
 119 
 120  module_function
 121 
 122      def make_preference(
 123          interactive_mode,
 124          trace_mode,
 125          lex_trace_mode,
 126          dump_mode,
 127          no_prelude
 128      )
 129          ASSERT.bool interactive_mode
 130          ASSERT.bool trace_mode
 131          ASSERT.bool lex_trace_mode
 132          ASSERT.bool dump_mode
 133          ASSERT.bool no_prelude
 134 
 135          Preference.new(
 136              interactive_mode,
 137              trace_mode,
 138              lex_trace_mode,
 139              dump_mode,
 140              no_prelude
 141          ).freeze
 142      end
 143 
 144 
 145  INITIAL_PREFERENCE = make_preference(
 146      false,  # interactive_mode
 147      false,  # trace_mode
 148      false,  # lex_trace_mode
 149      false,  # dump_mode
 150      false   # no_prelude
 151  )
 152 
 153  end # Umu::Environment
 154 
 155  end # Umu