aasm とは,Ruby のクラスに,状態遷移の機能を簡単に付けることができる機能を持ったソフトウェア.
gem update
gem install aasm --include-depenencies
エラーメッセージが出ていないことを確認する.
#! ruby -Ks
# coding: windows-31j
require 'pp'
require 'rubygems'
require 'aasm'
class BendingMachine
include AASM
# aasm_intial_state <初期状態>
# 初期状態は,シンボルまたは文字列または Proc
aasm_initial_state :客待ち
# 状態には、初期状態を忘れずに含めること
aasm_state :客待ち
aasm_state :お金投入中
# 状態遷移
aasm_event :お金投入 do
transitions :to => :お金投入中, :from => [:客待ち]
end
# 状態遷移
aasm_event :お金残高なし do
transitions :to => :客待ち, :from => [:お金投入中]
end
end
if __FILE__ == $0
m = BendingMachine.new()
# 現在の状態の表示
print "現在の状態は: "
print m.aasm_current_state, "\n"
m.お金投入
print "現在の状態は: "
print m.aasm_current_state, "\n"
m.お金残高なし
print "現在の状態は: "
print m.aasm_current_state, "\n"
end
■ 実行結果の例