moody 0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/{README → README.md} +12 -8
- data/lib/moody.rb +4 -2
- data/moody.gemspec +2 -2
- metadata +3 -2
data/{README → README.md}
RENAMED
@@ -4,9 +4,8 @@ Moody: An implementation of the State Pattern in ruby
|
|
4
4
|
This is an object-oriented way to represent Finite State Machines, where an
|
5
5
|
object can change its behavior at runtime, depending on its internal state.
|
6
6
|
|
7
|
-
If you want more information about this pattern, read
|
8
|
-
|
9
|
-
http://sourcemaking.com/design_patterns/state
|
7
|
+
If you want more information about this pattern, read [the explanation by
|
8
|
+
SourceMaking](http://sourcemaking.com/design_patterns/state).
|
10
9
|
|
11
10
|
For a stupid example of how you would use this, here's a traffic light:
|
12
11
|
|
@@ -50,7 +49,7 @@ For a stupid example of how you would use this, here's a traffic light:
|
|
50
49
|
delegate_to_state :color, :next
|
51
50
|
end
|
52
51
|
|
53
|
-
traffic_light
|
52
|
+
traffic_light - TrafficLight.new
|
54
53
|
|
55
54
|
loop do
|
56
55
|
puts traffic_light.color
|
@@ -58,13 +57,18 @@ For a stupid example of how you would use this, here's a traffic light:
|
|
58
57
|
end
|
59
58
|
|
60
59
|
Inspiration
|
61
|
-
|
60
|
+
-----------
|
62
61
|
|
63
62
|
This is a reimplementation of the State Pattern gem by Daniel Cadenas. Check out
|
64
|
-
his implementation at http://github.com/dcadenas/state_pattern
|
63
|
+
his implementation at [http://github.com/dcadenas/state_pattern]().
|
64
|
+
|
65
|
+
Installing
|
66
|
+
----------
|
67
|
+
|
68
|
+
gem install moody
|
65
69
|
|
66
70
|
Contributing
|
67
|
-
|
71
|
+
------------
|
68
72
|
|
69
73
|
* Send a pull request.
|
70
74
|
* Small, atomic commits, please.
|
@@ -72,7 +76,7 @@ Contributing
|
|
72
76
|
* Bonus points if you add features on topic branches.
|
73
77
|
|
74
78
|
License
|
75
|
-
|
79
|
+
-------
|
76
80
|
|
77
81
|
Copyright Nicolás Sanguinetti <hi@nicolassanguinetti.info>
|
78
82
|
|
data/lib/moody.rb
CHANGED
@@ -28,12 +28,14 @@ module Moody
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class State
|
31
|
+
attr_reader :context
|
32
|
+
|
31
33
|
def initialize(context)
|
32
|
-
@
|
34
|
+
@context = context
|
33
35
|
end
|
34
36
|
|
35
37
|
def switch_to(next_state)
|
36
|
-
|
38
|
+
context.state = next_state.new(context)
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
data/moody.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "moody"
|
3
|
-
s.version = "0.1"
|
3
|
+
s.version = "0.1.1"
|
4
4
|
s.date = "2010-10-23"
|
5
5
|
|
6
6
|
s.description = "Simple and straightforward implementation of the state pattern, inspired by the StatePattern gem"
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.has_rdoc = true
|
15
15
|
|
16
16
|
s.files = %w[
|
17
|
-
README
|
17
|
+
README.md
|
18
18
|
moody.gemspec
|
19
19
|
lib/moody.rb
|
20
20
|
test/test_moody.rb
|
metadata
CHANGED
@@ -5,7 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
9
10
|
platform: ruby
|
10
11
|
authors:
|
11
12
|
- "Nicol\xC3\xA1s Sanguinetti"
|
@@ -26,7 +27,7 @@ extensions: []
|
|
26
27
|
extra_rdoc_files: []
|
27
28
|
|
28
29
|
files:
|
29
|
-
- README
|
30
|
+
- README.md
|
30
31
|
- moody.gemspec
|
31
32
|
- lib/moody.rb
|
32
33
|
- test/test_moody.rb
|