如何在Ruby中管理我的应用程序状态?

时间:2014-03-09 04:19:30

标签: ruby architecture state

在练习Ruby的过程中,我决定使用某种状态机gem来帮助我管理基本Ruby应用程序的应用程序状态(不使用Rails)。

我没找到一个,或者不知道在哪里看。所以我写了一篇。

1 个答案:

答案 0 :(得分:0)

宝石的名称是 gk-application ,它位于rubygems上,而GitHub仓库位于:https://github.com/gregkrsak/gk-application

基本上,应用程序是GK::Application的一个实例,然后可以处于以下四种状态之一::stopped:starting:running:stopping

应用程序的代码存在于每个州附带的事件处理程序中。要启动该应用,请将其state属性设置为:starting

如果您已安装gem并希望为您构建项目模板,只需使用以下方法之一:

使用ruby

ruby -e 'require "gk-application"' -e 'GK::Application.new.project'

使用irb

$ irb
irb(main):001:0> require 'gk-application'
=> true
irb(main):002:0> GK::Application.new.project
=> nil
irb(main):003:0> quit

其中任何一个都会在当前目录中生成一个名为my_app.rb的文件,其中包含:

#!/usr/bin/env ruby

require 'gk-application'


my_app = GK::Application.new


my_app.on_starting = Proc.new do
  puts 'Starting.'
  my_app.state = :running
end

my_app.on_running = Proc.new do
  puts 'Running.'
  my_app.state = :stopping
end

my_app.on_stopping = Proc.new do
  puts 'Stopping.'
  my_app.state = :stopped
end

my_app.on_stopped = Proc.new do
  puts 'Stopped.'
end


my_app.state = :starting

哪个应该让你入门。谢谢阅读!随意贡献代码。