Sha256: 8fa1eb95f23271bd95bdbc59a53f7f00486c2f3eacb7e10b49b7f8fe020be94a

Contents?: true

Size: 1.73 KB

Versions: 4

Compression:

Stored size: 1.73 KB

Contents

# -*- coding: utf-8 -*-
require 'tengine/core'

# Tengine::Core::Driveableモジュールによるドライバ定義でインスタンス変数を使用する例。
#
# @ivar1
# クラスの外で定義したインスタンス変数なので、クラス内のどこからも参照できません。
#
# @ivar2
# クラスのコンテキスト中で定義したインスタンス変数なので、Driverクラスオブジェクト自身のインスタンス変数であり、
# Driverのインスタンスのインスタンス変数ではないので、メソッドから参照できません。
#
# @ivar3
# initializeで定義したインスタンス変数は、Driverクラスオブジェクト自身のインスタンス変数ではなく、
# Driverのインスタンスのインスタンス変数なので、メソッドから参照できます。
#
# ドライバ外に定義したデータをドライバ内、イベントハンドラ内で使用したい場合には
# 定数やクラス変数の利用を検討してください。
# https://github.com/tengine/tengine/blob/develop/tengine_core/examples2/uc33_statics.rb
# https://github.com/tengine/tengine/blob/develop/tengine_core/examples2/uc32_class_variables.rb

@ivar1 = "outside of driver"

class Driver31
  include Tengine::Core::Driveable

  @ivar2 = "outside of handler"
  puts "#{__FILE__}##{__LINE__}"
  puts @ivar1.inspect # => nil

  def initialize
    @ivar3 = "inside of initialize"
    puts "#{__FILE__}##{__LINE__}"
    puts @ivar1.inspect # => nil
    puts @ivar2.inspect # => nil
  end

  on:event31
  def puts_instance_variables
    puts "#{__FILE__}##{__LINE__}"
    puts @ivar1.inspect # => nil
    puts @ivar2.inspect # => nil
    puts @ivar3.inspect # => inside of initialize
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tengine_core-1.2.2 examples2/uc31_instance_variables.rb
tengine_core-1.2.1 examples2/uc31_instance_variables.rb
tengine_core-1.2.0 examples2/uc31_instance_variables.rb
tengine_core-1.1.0 examples2/uc31_instance_variables.rb