Comments (4)
Thanks Klaas! This looks so much nicer now and provides proper callback ordering. 😍
fsm = FiniteMachine.define do
initial :previous
events {
event :go, :previous => :next, if: -> { puts "checking condition"; true }
}
callbacks {
on_exit { |event| puts "exit_#{event.from}" }
on_before { |event| puts "\tbefore_#{event.name}" }
on_transition { |event| puts "\t\ttransition: #{event.name}: #{event.from} -> #{event.to}" }
on_enter { |event| puts "\tenter_#{event.to}" }
on_after { |event| puts "after_#{event.name}" }
}
end
from finite_machine.
Cool. Good job.
Op 26 mei 2014, om 20:56 heeft Piotr Murach [email protected] het volgende geschreven:
Thanks Klaas! This looks so much nicer now and provides proper callback ordering.
fsm = FiniteMachine.define do
initial :previousevents {
event :go, :previous => :next, if: -> { puts "checking condition"; true }
}callbacks {
on_exit { |event| puts "exit_#{event.from}" }
on_before { |event| puts "\tbefore_#{event.name}" }
on_transition { |event| puts "\t\ttransition: #{event.name}: #{event.from} -> #{event.to}" }
on_enter { |event| puts "\tenter_#{event.to}" }
on_after { |event| puts "after_#{event.name}" }
}
end
—
Reply to this email directly or view it on GitHub.
from finite_machine.
Updated docs to explain the callback lifecycle. see
from finite_machine.
@kjwierenga Released 0.7.0
version! I will soon post more issues/milestone for future ideas/features that I'd like to discuss.
from finite_machine.
Related Issues (20)
- Remove on_transition callback HOT 5
- Cancelling inside callbacks HOT 3
- Consider removing the conversion of event names into methods. HOT 1
- Repo description url is broken HOT 1
- Website for the gem is not working HOT 1
- Terminal state HOT 4
- When an error occurs on transition the current state is not "rollback" HOT 2
- https://travis-ci.org/minad/moneta
- Ruby 2.6.0 support (ruby-2.6.0-preview3) HOT 1
- Defining helper methods on machine, not on target HOT 2
- Setting target that responds to to_hash HOT 1
- v0.12.1 missing sync dependency HOT 4
- Java::JavaUtilConcurrent::RejectedExecutionException on jruby HOT 1
- Message Queue Spec sometimes hangs on jruby HOT 2
- alias_target doesn't seem to work HOT 2
- [ Feature Request ] Handling For Multiple State Machines HOT 3
- Unable to define constructors on custom classes HOT 4
- Base class events are not overrided in subclass.
- Errors with Ruby 3.1.2 HOT 2
- Transition does not happen if any_state is used in the definition. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from finite_machine.