bravery 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/bravery.rb +53 -0
  3. metadata +74 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4a53f75c8a9180f555e24f8ac92ca229aaace158
4
+ data.tar.gz: 2d535c06be91d76d054483a0dd1c9a8365296979
5
+ SHA512:
6
+ metadata.gz: 8ca1ada47704bc02d803a6d319d20ea4ced84a58d1518c89690282fff4a040717cda81bf5ece835fa2955b089c836083ccca13d6454efa629a2834f01cdb4553
7
+ data.tar.gz: 8c24688a0d86e9beaf15f08ac91ece661fea2e3b4bbd40ef4906a698d47f172df1e16442a299b36b9c46dbbf5b76cddc50adf594e4c9c5f880a473482423e21a
@@ -0,0 +1,53 @@
1
+ module Bravery
2
+ module ClassMethods
3
+ @@states = []
4
+
5
+ def define_state(state_name, &callback)
6
+ @@states << state_name
7
+ define_method state_name, callback
8
+ end
9
+
10
+ def define_start_state(state_name, &callback)
11
+ state_name = state_name.to_sym
12
+ @@start_state = state_name
13
+ define_state(state_name, &callback)
14
+ end
15
+
16
+ def states
17
+ @@states
18
+ end
19
+
20
+ def start_state
21
+ @@start_state
22
+ end
23
+ end
24
+
25
+ module InstanceMethods
26
+
27
+ def states
28
+ self.class.states
29
+ end
30
+
31
+ def goto_state(state_name)
32
+ state_name = state_name.to_sym
33
+ set_state state_name
34
+ self.send state_name
35
+ end
36
+
37
+ def state
38
+ if @state
39
+ @state
40
+ else
41
+ @state || self.class.start_state
42
+ end
43
+ end
44
+
45
+ def set_state(state_name)
46
+ @state = state_name.to_sym
47
+ end
48
+ end
49
+ def self.included(receiver)
50
+ receiver.extend ClassMethods
51
+ receiver.send :include, InstanceMethods
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bravery
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Rick Carlino
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Ruby state machine micro library. Maintains state and gets out of your
42
+ way.
43
+ email:
44
+ - rick.carlino@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - lib/bravery.rb
50
+ homepage: http://github.com/rickcarlino/bravery
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.0.3
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Ruby state machine micro library
74
+ test_files: []