Module: Miyako::Diagram::NodeBase

Defined in:
lib/Miyako/API/diagram.rb

Overview

遷移ノードモジュール

遷移図のノードを構成するモジュール。

mixinすることで、ノード構成に必要なメソッドを定義できる。 あとは、initializeメソッドなどで、必要なインスタンスを作成することができる。 なお、本モジュールでは、値の格納用に @@node_var を予約しているため、注意が必要

Constant Summary collapse

@@node_var =
{}

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object

現在実行しているノードの変数の値を取得するテンプレートメソッド

Diagram#[] メソッドが呼ばれたときの処理を実装する

mixin されたクラス内でアクセスする際は、便宜上、“self”を使用する

name

変数名(文字列・シンボル)

返却値

変数の値(デフォルトはnil)


105
106
107
108
109
110
111
# File 'lib/Miyako/API/diagram.rb', line 105

def [](name)
  unless @@node_var[self.object_id]
    @@node_var[self.object_id] = {}
    @@node_var[self.object_id].default = nil
  end
  return @@node_var[self.object_id][name]
end

#[]=(name, value) ⇒ Object

現在実行中のノードの変数に値を設定する

Diagram#[]= メソッドが呼ばれたときの処理を実装する

mixin されたクラス内でアクセスする際は、便宜上、“self=…”を使用する

name

変数名(文字列・シンボル)

value

設定したい値


119
120
121
122
123
124
125
# File 'lib/Miyako/API/diagram.rb', line 119

def []=(name, value)
  unless @@node_var[self.object_id]
    @@node_var[self.object_id] = {}
    @@node_var[self.object_id].default = nil
  end
  @@node_var[self.object_id][name] = value
end

#disposeObject

ノードのインスタンスを解放させるテンプレートメソッド

Processor#dispose メソッドの呼び出したときに呼び出さされる


129
130
# File 'lib/Miyako/API/diagram.rb', line 129

def dispose
end

#finish?Boolean

ノードでの実行が終了しているかを示すフラグを返すテンプレートメソッド

Manager#add_arrow メソッドの呼び出しで、移動条件を指定しなければ、このメソッドが呼ばれる。

ノードの終了を問い合わせる内容を本メソッドに実装する。

返却値

ノードの実行が終了していれば true を返す(デフォルトは無条件で false を返す)

Returns:

  • (Boolean)

95
96
97
# File 'lib/Miyako/API/diagram.rb', line 95

def finish?
  return false
end

#pauseObject

ノードでの停止処理を実装する

停止処理を実装しないときは、本メソッドを実装する必要はない Processor#pause メソッドが呼ばれたときの処理を実装する


56
57
# File 'lib/Miyako/API/diagram.rb', line 56

def pause
end

#renderObject

ノードでのレンダリング処理を実装する

Screen.update メソッドを呼び出しているときは、本メソッドを実装する必要はない Processor#render メソッドが呼ばれたときの処理を実装する


87
88
# File 'lib/Miyako/API/diagram.rb', line 87

def render
end

#reset_inputObject

ノードでの入力デバイス処理の後始末を実装する

入力デバイス処理が必要ないときは、本メソッドを実装する必要はない Processor#reset_input メソッドが呼ばれたときの処理を実装する


81
82
# File 'lib/Miyako/API/diagram.rb', line 81

def reset_input
end

#resumeObject

ノードでの復帰処理を実装する

停止処理を実装しないときは、本メソッドを実装する必要はない Processor#resume メソッドが呼ばれたときの処理を実装する


62
63
# File 'lib/Miyako/API/diagram.rb', line 62

def resume
end

#startObject

ノードでの開始処理を実装する

Processor#start メソッドが呼ばれたとき、ノードの移動があった直後の処理を実装する


45
46
# File 'lib/Miyako/API/diagram.rb', line 45

def start
end

#stopObject

ノードでの中断処理を実装する

Processor#stop メソッドが呼ばれたとき、ノードの移動する直前の処理を実装する


50
51
# File 'lib/Miyako/API/diagram.rb', line 50

def stop
end

#update(*params) ⇒ Object

ノードでの更新処理を実装する

Processor#update メソッドが呼ばれたときの処理を実装する

params

Processor::updateメソッドが呼ばれた時のパラメータ群。オーバーライドするときに省略可能


75
76
# File 'lib/Miyako/API/diagram.rb', line 75

def update(*params)
end

#update_input(*params) ⇒ Object

ノードでの入力デバイス処理を実装する

入力デバイス処理が必要ないときは、本メソッドを実装する必要はない Processor#update_input メソッドが呼ばれたときの処理を実装する

params

Processor::update_inputメソッドが呼ばれた時のパラメータ群。オーバーライドするときに省略可能


69
70
# File 'lib/Miyako/API/diagram.rb', line 69

def update_input(*params)
end