railroady를 이용하여Graphiviz에서 AASM의 상태 이동도를 출력합니다
cpu_state.rb
require 'aasm'
class CPUState
include AASM
aasm do
state :new, :initial => true
state :ready
state :waiting
state :running
state :terminated
event :wake_up do
transitions :from => :new, :to => :ready
transitions :from => :waiting, :to => :ready
end
event :schedule do
transitions :from => :ready, :to => :running
end
event :preempt do
transitions :from => :running, :to => :ready
end
event :yield do
transitions :from => :running, :to => :waiting
end
event :terminate do
transitions :from => :running, :to => :terminated
end
end
end
차리다
Gemfile
gem "railroady"
Rakefilenamespace "doc" do
desc "print dot eg) | dot -Tpng -o aasm.png"
task "dot" do
require 'railroady/options_struct'
require 'railroady/aasm_diagram'
a = AasmDiagram.new
require "./cpu_state"
a.send(:process_aasm_class, CPUState)
puts a.instance_variable_get(:@graph).to_dot
end
end
실행
$ bundle exec rake doc:dot | dot -Tpng -o cpu_state.png
※ AASM4.0 이후에는 deprecated를 많이 보내지만, railroady는 좋지 않습니다.p)후기
railroady는 Rails 프로젝트를 대상으로 AASM에서 조립한 코드를 단순히 출력하기는 어렵다.
이 방법으로 대체로 출력할 수 있다.privte method이기 때문에 이런 명칭은 어때요?아니면, 나는 railroady의 작가에게 좀 더 통용되는 제안을 하고 싶다.
Reference
이 문제에 관하여(railroady를 이용하여Graphiviz에서 AASM의 상태 이동도를 출력합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ma2shita/items/c99aaef5baac406452be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)