rachinations 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -16
  3. data/Gemfile.lock +2 -0
  4. data/lib/rachinations/domain/diagrams/diagram.rb +46 -14
  5. data/lib/rachinations/domain/edges/edge.rb +34 -20
  6. data/lib/rachinations/domain/modules/common/hash_init.rb +2 -1
  7. data/lib/rachinations/domain/modules/common/invariant.rb +2 -2
  8. data/lib/rachinations/domain/modules/common/refiners/number_modifiers.rb +22 -0
  9. data/lib/rachinations/domain/nodes/converter.rb +5 -5
  10. data/lib/rachinations/domain/nodes/gate.rb +77 -0
  11. data/lib/rachinations/domain/nodes/node.rb +69 -36
  12. data/lib/rachinations/domain/nodes/pool.rb +121 -74
  13. data/lib/rachinations/domain/nodes/resourceful_node.rb +0 -1
  14. data/lib/rachinations/domain/nodes/sink.rb +3 -0
  15. data/lib/rachinations/domain/nodes/source.rb +3 -2
  16. data/lib/rachinations/domain/resource_bag.rb +3 -4
  17. data/lib/rachinations/dsl/bad_dsl.rb +2 -0
  18. data/lib/rachinations/dsl/bootstrap.rb +59 -0
  19. data/lib/rachinations/dsl/diagram_shorthand_methods.rb +107 -0
  20. data/lib/rachinations/dsl/helpers/parser.rb +170 -0
  21. data/lib/rachinations/extras/constant_hash.rb +25 -0
  22. data/lib/rachinations/extras/fifo.rb +25 -19
  23. data/lib/rachinations/helpers/edge_helper.rb +40 -0
  24. data/lib/rachinations/utils/string_helper.rb +7 -0
  25. data/lib/rachinations/version.rb +1 -1
  26. data/lib/rachinations.rb +13 -5
  27. data/rachinations.gemspec +3 -2
  28. data/testing/simulations/modelo1.rb +1 -1
  29. data/testing/simulations/sequencial.rb +1 -1
  30. data/testing/simulations/sobonito.rb +1 -1
  31. data/testing/simulations/sobonitowhile.rb +1 -1
  32. data/testing/simulations/whatIwish1.rb +2 -2
  33. data/testing/spec/canon/conditions_spec.rb +3 -4
  34. data/testing/spec/converter_spec.rb +3 -4
  35. data/testing/spec/diagram_spec.rb +293 -238
  36. data/testing/spec/edge_spec.rb +28 -14
  37. data/testing/spec/gate_spec.rb +34 -0
  38. data/testing/spec/pool_spec.rb +8 -10
  39. data/testing/spec/release1/dsl_spec.rb +204 -0
  40. data/testing/spec/spec_helper.rb +1 -0
  41. data/testing/spec/xexeo_spec.rb +39 -40
  42. metadata +30 -8
  43. data/lib/rachinations/domain/edges/random_edge.rb +0 -4
  44. data/lib/rachinations/dsl/dsl.rb +0 -63
  45. data/testing/spec/canon/trigger_spec.rb +0 -128
@@ -1,9 +1,10 @@
1
1
  require_relative 'spec_helper'
2
2
 
3
+
3
4
  describe Edge do
4
5
 
5
6
  describe '#initialize' do
6
-
7
+ using NumberModifiers
7
8
  it 'can be created' do
8
9
 
9
10
  # i only want to test edge methods so I'll use a mock object and stub the method I need
@@ -23,6 +24,7 @@ describe Edge do
23
24
  expect(edge.label).to eq 1
24
25
  expect(edge.types).to eq []
25
26
 
27
+
26
28
  end
27
29
 
28
30
  it 'can be created with types' do
@@ -60,6 +62,16 @@ describe Edge do
60
62
 
61
63
  end
62
64
 
65
+
66
+ it 'can be assigned a percent label' do
67
+
68
+ from = double(:name => 'node1')
69
+ to = double(:name => 'node2')
70
+
71
+ edge = Edge.new name: 'edge1', from: from, to: to, types: [Blue, Red], label: 50.percent
72
+
73
+ end
74
+
63
75
  end
64
76
 
65
77
  describe '#test_ping?' do
@@ -75,7 +87,7 @@ describe Edge do
75
87
 
76
88
  edge = Edge.new :name => 'e', :from => from, :to => @to
77
89
  expect(edge).to receive(:strategy).and_return(@strategy)
78
- expect(edge.test_ping?(true)).to eq false
90
+ expect(edge.test_ping?(require_all:true)).to eq false
79
91
 
80
92
  end
81
93
 
@@ -84,7 +96,7 @@ describe Edge do
84
96
 
85
97
  edge = Edge.new :name => 'e', :from => from, :to => @to, :label => 8
86
98
  expect(edge).to receive(:strategy).and_return(@strategy)
87
- expect(edge.test_ping?(true)).to eq false
99
+ expect(edge.test_ping?(require_all:true)).to eq false
88
100
  end
89
101
 
90
102
  it 'is true when the exact number of required resources are available to be moved' do
@@ -92,7 +104,7 @@ describe Edge do
92
104
 
93
105
  edge = Edge.new :name => 'e', :from => from, :to => @to, :label => 8
94
106
  expect(edge).to receive(:strategy).and_return(@strategy)
95
- expect(edge.test_ping?(true)).to eq true
107
+ expect(edge.test_ping?(require_all:true)).to eq true
96
108
  end
97
109
 
98
110
  it 'is true when the more resources than required are available to be moved' do
@@ -100,7 +112,7 @@ describe Edge do
100
112
 
101
113
  edge = Edge.new :name => 'e', :from => from, :to => @to, :label => 2
102
114
  expect(edge).to receive(:strategy).and_return(@strategy)
103
- expect(edge.test_ping?(true)).to eq true
115
+ expect(edge.test_ping?(require_all:true)).to eq true
104
116
  end
105
117
 
106
118
  end
@@ -112,7 +124,7 @@ describe Edge do
112
124
 
113
125
  edge = Edge.new :name => 'e', :from => from, :to => @to
114
126
  expect(edge).to receive(:strategy).and_return(@strategy)
115
- expect(edge.test_ping?(false)).to eq false
127
+ expect(edge.test_ping?(require_all:false)).to eq false
116
128
  end
117
129
 
118
130
  it 'is true if at least one resource is available' do
@@ -120,7 +132,7 @@ describe Edge do
120
132
 
121
133
  edge = Edge.new :name => 'e', :from => from, :to => @to, :label => 8
122
134
  expect(edge).to receive(:strategy).and_return(@strategy)
123
- expect(edge.test_ping?(false)).to eq true
135
+ expect(edge.test_ping?(require_all:false)).to eq true
124
136
  end
125
137
 
126
138
  end
@@ -222,13 +234,13 @@ describe Edge do
222
234
  context 'when edge has label 1' do
223
235
 
224
236
  before(:each) do
225
- @p1 = instance_double(Node,name:'n', types: [], enabled?: true)
226
- @p2 = instance_double(Node,name:'n2', types: [], enabled?: true)
237
+ @p1 = instance_double(Node, name: 'n', types: [], enabled?: true)
238
+ @p2 = instance_double(Node, name: 'n2', types: [], enabled?: true)
227
239
  @e = Edge.new name: 'e', from: @p1, to: @p2
228
240
  end
229
241
  it 'sends put_resource! to to_node' do
230
242
  # passing the same parameter it was given by the caller
231
- res = instance_double(Token,type:Token)
243
+ res = instance_double(Token, type: Token)
232
244
  expect(@p2).to receive(:put_resource!)
233
245
  @e.push!(res)
234
246
 
@@ -241,16 +253,18 @@ describe Edge do
241
253
 
242
254
  end
243
255
 
244
- context 'when edge has label greater than 1' do
245
256
 
246
- it 'raises error if no resources could be sent' do
257
+ end
247
258
 
248
- end
259
+ context 'general tests' do
249
260
 
250
- end
251
261
 
252
262
 
253
263
  end
254
264
 
265
+ context 'specific features' do
266
+
267
+ end
268
+
255
269
 
256
270
  end
@@ -0,0 +1,34 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe 'Diagrams with gates' do
4
+
5
+ context 'general tests' do
6
+
7
+ it 'works' do
8
+
9
+ d = Diagram.new
10
+
11
+ d.add_node! Source, name: 's'
12
+ d.add_node! Gate, name: 'g'
13
+ d.add_node! Pool, name: 'p'
14
+ d.add_edge! Edge, from: 's', to: 'g'
15
+ d.add_edge! Edge, from: 'g', to: 'p'
16
+
17
+ d.run!(5)
18
+
19
+ expect(d.get_node('p').resource_count).to eq 5
20
+
21
+ end
22
+
23
+ end
24
+
25
+ context 'specific features' do
26
+
27
+ it 'does not keep resources over turns' do
28
+ skip
29
+ end
30
+
31
+ end
32
+
33
+
34
+ end
@@ -91,31 +91,31 @@ describe Pool do
91
91
  end
92
92
 
93
93
  it 'raises an error when it is asked about an unsupported type and it is typed' do
94
- expect { @typed.resource_count(Mango) }.to raise_error UnsupportedTypeError
94
+ expect { @typed.resource_count(type:Mango) }.to raise_error UnsupportedTypeError
95
95
  end
96
96
 
97
97
  it 'just returns zero if it is untyped and it is asked about a type' do
98
- expect(@untyped.resource_count(Mango)).to eq 0
98
+ expect(@untyped.resource_count(type:Mango)).to eq 0
99
99
  end
100
100
 
101
101
  it 'otherwise works with one type param' do
102
- expect(@typed.resource_count(Peach)).to eq 10
102
+ expect(@typed.resource_count(type:Peach)).to eq 10
103
103
  end
104
104
 
105
105
  it 'accepts a single block' do
106
- expect(@typed.resource_count { |r| r.is_type? Peach }).to eq 10
107
- expect(@untyped.resource_count { true }).to eq 10
106
+ expect(@typed.resource_count(expr: proc{|r| r.is_type? Peach } ) ).to eq 10
107
+ expect(@untyped.resource_count( expr: proc{true})).to eq 10
108
108
 
109
109
  # if user sent a block. he prolly knows what he's doing so no errors.
110
- expect(@typed.resource_count { |r| r.is_type? Football }).to eq 0
110
+ expect(@typed.resource_count(expr: proc{|r| r.is_type? Football })).to eq 0
111
111
  end
112
112
 
113
113
  it 'errors if given both a type and a block' do
114
- expect { @typed.resource_count(Peach) { |r| r.is_type? Mango } }.to raise_error ArgumentError
114
+ expect { @typed.resource_count(type:Peach,expr: proc{ |r| r.is_type? Mango } )}.to raise_error ArgumentError
115
115
  end
116
116
 
117
117
  it 'also errors if some other nonsense is passed' do
118
- expect { @typed.resource_count(Hash.new) }.to raise_error ArgumentError
118
+ expect { @typed.resource_count(Object.new) }.to raise_error ArgumentError
119
119
  expect { @untyped.resource_count('Foo') }.to raise_error ArgumentError
120
120
  end
121
121
 
@@ -204,8 +204,6 @@ describe Pool do
204
204
  it 'does not call push! on edge if it cannot provide the needed resource' do
205
205
  expect(@e).to receive(:push_expression).and_return( proc{ true })
206
206
 
207
- expect(@p).to receive(:remove_resource!).and_raise(RuntimeError)
208
-
209
207
  expect(@e).not_to receive(:push!)
210
208
 
211
209
  @p.trigger!
@@ -0,0 +1,204 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe Diagram do
4
+
5
+ using NumberModifiers
6
+
7
+ context 'diagram tests using the dsl' do
8
+
9
+ it 'runs a simple example diagram' do
10
+ d = diagram do
11
+ source 's1'
12
+ pool 'p1', :push_any, :automatic
13
+ pool 'p2'
14
+ edge from: 's1', to: 'p1'
15
+ edge from: 'p1', to: 'p2'
16
+ end
17
+ d.run 5
18
+
19
+ expect(d.p1.resource_count).to eq 1
20
+ expect(d.p2.resource_count).to eq 4
21
+
22
+ end
23
+
24
+ it 'runs with one pool with no name' do
25
+ d = diagram do
26
+ pool
27
+ end
28
+
29
+ d.run! 5
30
+
31
+ end
32
+
33
+
34
+ it 'runs with one pool with some params' do
35
+
36
+ d = diagram do
37
+ pool 'p', 9, :pull_all
38
+ pool 'p', 9, :pull_all
39
+ end
40
+
41
+ d.run! 5
42
+ expect(d.p.resource_count).to eq 9
43
+
44
+ end
45
+
46
+ it 'requires valid names for nodes and edges because they might be used as methods' do
47
+
48
+ expect {
49
+
50
+ d = diagram 'wrong' do
51
+ pool 'p1'
52
+ source 's1'
53
+ pool 'foo bar'
54
+ source '1ar baz'
55
+ edge ' foo', from: 'p1', to: 's1'
56
+ edge 'foo ', from: 'p1', to: 's1'
57
+ end
58
+
59
+ }.to raise_error(BadDSL)
60
+
61
+ end
62
+
63
+ it 'runs with conditions' do
64
+
65
+ d = diagram 'conditions' do
66
+ source 's1'
67
+ pool 'p1'
68
+ source 's2', condition: lambda { p1.resource_count > 3 }
69
+ pool 'p2'
70
+ edge from: 's1', to: 'p1'
71
+ edge from: 's2', to: 'p2'
72
+ end
73
+
74
+ d.run! 10
75
+
76
+ expect(d.p2.resource_count).to eq 6
77
+
78
+ end
79
+
80
+ it 'runs with triggers' do
81
+
82
+ d = diagram 'triggers' do
83
+ source 's1'
84
+ pool 'p1'
85
+ source 's2', activation: :passive, triggered_by: 'p1'
86
+ pool 'p2'
87
+ edge from: 's1', to: 'p1'
88
+ edge from: 's2', to: 'p2'
89
+ end
90
+
91
+ d.run! 10
92
+
93
+ expect(d.p2.resource_count).to eq 10
94
+
95
+ end
96
+
97
+ it 'runs with a three-way, default gate using different notations' do
98
+
99
+ d = diagram do
100
+ source 's1'
101
+ gate 'g1'
102
+ edge from: 's1', to: 'g1'
103
+ pool 'p1'
104
+ pool 'p2'
105
+ pool 'p3'
106
+ edge 'e1', 1/3, from: 'g1', to: 'p1'
107
+ edge 'e1', from: 'g1', to: 'p2', label: 1/3
108
+ edge 'e1', from: 'g1', to: 'p3', label: 1/3
109
+ end
110
+
111
+
112
+ d.run! 20
113
+ #this gate is conservative - each resource necessarily goes to
114
+ #either p1, p2 or p3 so the sum must be equal to the total amount
115
+ #created by the source
116
+ expect(d.p1.resource_count + d.p2.resource_count + d.p3.resource_count).to eq 20
117
+
118
+ end
119
+
120
+ it 'runs a comprehensive example' do
121
+
122
+ d = diagram 'stable_state' do
123
+ source 's1'
124
+ gate 'g1'
125
+ pool 'p1'
126
+ pool 'p2'
127
+ pool 'p3'
128
+ sink 'sink1', activation: :automatic, condition: lambda { p1.resource_count > 30 }
129
+ edge from: 's1', to: 'g1'
130
+ edge from: 'g1', to: 'p1', label: 2/4
131
+ edge from: 'g1', to: 'p2', label: 1/4
132
+ edge from: 'g1', to: 'p3', label: 1/4
133
+ edge from: 'p2', to: 'sink1'
134
+ end
135
+
136
+ d.run 300
137
+
138
+ expect(d.p3.resource_count).to be_within(40).of(d.p1.resource_count / 2)
139
+ expect(d.p2.resource_count).to be_within(5).of(1)
140
+
141
+ end
142
+
143
+ it 'accepts new simpler syntax' do
144
+
145
+ d = diagram 'd1' do
146
+ pool 'p1', 10, :automatic, :push_any
147
+ pool 'p2'
148
+ edge from: 'p1', to: 'p2'
149
+ end
150
+
151
+ d.run 5
152
+
153
+ expect(d.p1.resource_count).to eq(5)
154
+ expect(d.p2.resource_count).to eq(5)
155
+
156
+ end
157
+
158
+
159
+ it 'example using push_all, activators and triggers' do
160
+
161
+ d = diagram do
162
+ pool 'p1'
163
+ pool 'p2'
164
+ pool 'p3'
165
+ source 's2', :automatic
166
+ pool 'p5'
167
+ source 's1', :automatic, condition: expr { p5.resource_count > 5 }
168
+ pool 'p4', :push_all, initial_value: 11, triggered_by: 's1'
169
+ edge from: 'p4', to: 'p1'
170
+ edge from: 'p4', to: 'p2'
171
+ edge from: 'p4', to: 'p3'
172
+ edge from: 's2', to: 'p5'
173
+ end
174
+
175
+ d.run 10
176
+
177
+ expect(d.p5.resource_count).to eq 10
178
+
179
+ expect(d.p1.resource_count).to eq 3
180
+ expect(d.p2.resource_count).to eq 3
181
+ expect(d.p3.resource_count).to eq 3
182
+
183
+ expect(d.p4.resource_count).to eq 2
184
+
185
+
186
+ end
187
+
188
+ # it "forward-referencing of non existing nodes" do
189
+ #
190
+ # expect do
191
+ #
192
+ # d = diagram do
193
+ # pool 'p2', initial_value: 7 # this will be triggered 10 times
194
+ # edge from: 'p2', to: 'p3'
195
+ # pool 'p3'
196
+ # end
197
+ #
198
+ # end.not_to raise_error
199
+ #
200
+ # end
201
+
202
+
203
+ end
204
+ end
@@ -14,6 +14,7 @@ require 'rspec'
14
14
 
15
15
  require 'rachinations'
16
16
 
17
+
17
18
  #resource classes to be used in tests
18
19
  Blue=Class.new(Token)
19
20
  Black=Class.new(Token)
@@ -4,16 +4,16 @@ require_relative 'spec_helper'
4
4
 
5
5
  describe Diagram do
6
6
 
7
+ using DSL::DiagramShorthandMethods
8
+
7
9
  it "runs modelo1" do
8
10
 
9
11
  n=diagram 'test_diagram' do
10
- node 'source', Source
11
- node 'pool1', Pool
12
- edge 'edge1', Edge, 'source', 'pool1'
12
+ source 'source'
13
+ pool 'pool1'
14
+ edge from: 'source', to: 'pool1'
13
15
  end
14
16
 
15
- d = Diagram.new('one source one pool')
16
-
17
17
  n.run!(5)
18
18
 
19
19
  end
@@ -113,13 +113,13 @@ describe Diagram do
113
113
 
114
114
  it "runs sequencial" do
115
115
  n=diagram 'test_diagram' do
116
- node 'p1', Pool, mode: :push, activation: :automatic, initial_value: 8
117
- node 'p2', Pool, mode: :push, activation: :automatic
118
- node 'p3', Pool, mode: :push, activation: :automatic
119
- node 'p4', Pool, mode: :push, activation: :automatic
120
- edge 'e1', Edge, 'p1', 'p2'
121
- edge 'e2', Edge, 'p2', 'p3'
122
- edge 'e3', Edge, 'p3', 'p4'
116
+ pool 'p1', mode: :push_any, activation: :automatic, initial_value: 8
117
+ pool 'p2', mode: :push_any, activation: :automatic
118
+ pool 'p3', mode: :push_any, activation: :automatic
119
+ pool 'p4', mode: :push_any, activation: :automatic
120
+ edge from: 'p1', to: 'p2'
121
+ edge from: 'p2', to: 'p3'
122
+ edge from: 'p3', to: 'p4'
123
123
  end
124
124
 
125
125
  n.run!(5)
@@ -128,40 +128,39 @@ describe Diagram do
128
128
  end
129
129
 
130
130
  it "runs sobonito" do
131
+
131
132
  n=diagram 'test_diagram' do
132
- node 'p1', Pool, mode: :push, activation: :automatic, initial_value: 8
133
- node 'p2', Pool, mode: :push, activation: :automatic
134
- node 'p3', Pool, mode: :push, activation: :automatic
135
- node 'p4', Pool, mode: :push, activation: :automatic
136
- edge 'e1', Edge, 'p1', 'p2'
137
- edge 'e2', Edge, 'p2', 'p1'
138
- edge 'e3', Edge, 'p1', 'p3'
139
- edge 'e4', Edge, 'p3', 'p1'
140
- edge 'e5', Edge, 'p4', 'p2'
141
- edge 'e6', Edge, 'p2', 'p4'
142
- edge 'e7', Edge, 'p4', 'p3'
143
- edge 'e8', Edge, 'p3', 'p4'
133
+ pool 'p1', mode: :push_any, activation: :automatic, initial_value: 8
134
+ pool 'p2', mode: :push_any, activation: :automatic
135
+ pool 'p3', mode: :push_any, activation: :automatic
136
+ pool 'p4', mode: :push_any, activation: :automatic
137
+ edge from: 'p1',to: 'p2'
138
+ edge from: 'p2',to: 'p1'
139
+ edge from: 'p1',to: 'p3'
140
+ edge from: 'p3',to: 'p1'
141
+ edge from: 'p4',to: 'p2'
142
+ edge from: 'p2',to: 'p4'
143
+ edge from: 'p4',to: 'p3'
144
+ edge from: 'p3',to: 'p4'
144
145
  end
145
146
 
146
- d = Diagram.new('bonitinho')
147
-
148
147
  n.run!(20)
149
148
  end
150
149
 
151
150
  it "runs sobonitowhile" do
152
151
  n=diagram 'test_diagram' do
153
- node 'p1', Pool, mode: :push, activation: :automatic, initial_value: 8
154
- node 'p2', Pool, mode: :push, activation: :automatic
155
- node 'p3', Pool, mode: :push, activation: :automatic
156
- node 'p4', Pool, mode: :push, activation: :automatic
157
- edge 'e1', Edge, 'p1', 'p2'
158
- edge 'e2', Edge, 'p2', 'p1'
159
- edge 'e3', Edge, 'p1', 'p3'
160
- edge 'e4', Edge, 'p3', 'p1'
161
- edge 'e5', Edge, 'p4', 'p2'
162
- edge 'e6', Edge, 'p2', 'p4'
163
- edge 'e7', Edge, 'p4', 'p3'
164
- edge 'e8', Edge, 'p3', 'p4'
152
+ pool 'p1', mode: :push_any, activation: :automatic, initial_value: 8
153
+ pool 'p2', mode: :push_any, activation: :automatic
154
+ pool 'p3', mode: :push_any, activation: :automatic
155
+ pool 'p4', mode: :push_any, activation: :automatic
156
+ edge from: 'p1',to: 'p2'
157
+ edge from: 'p2',to: 'p1'
158
+ edge from: 'p1',to: 'p3'
159
+ edge from: 'p3',to: 'p1'
160
+ edge from: 'p4',to: 'p2'
161
+ edge from: 'p2',to: 'p4'
162
+ edge from: 'p4',to: 'p3'
163
+ edge from: 'p3',to: 'p4'
165
164
  end
166
165
 
167
166
  d = Diagram.new('bonitinho')
@@ -174,14 +173,14 @@ describe Diagram do
174
173
 
175
174
  it "runs whatIwish1" do
176
175
 
177
- skip "needed features are missing"
176
+ skip "Needed features are missing"
178
177
 
179
178
  # n=diagram 'test_diagram' do
180
179
  # node 'source', Source
181
180
  # node 'pool1', Pool
182
181
  # edge 'edge1', Edge, 'source', 'pool1'
183
182
  # node 'pool2', Pool,
184
- # converter 'c1' , Converter
183
+ # converter 'c1'
185
184
  # node 'e3' , Edge , 'pool2' , 'c1'
186
185
  # trigger 't1' , Trigger , 'pool1' , 'pool2' , { |ExtendedNode p| p.resouces>0 }
187
186
  # end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rachinations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Almeida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-05 00:00:00.000000000 Z
11
+ date: 2015-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,8 +122,22 @@ dependencies:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.6.11
125
+ - !ruby/object:Gem::Dependency
126
+ name: weighted_distribution
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: |-
126
- This project provides a Ruby-based DSL to enable game designers to
140
+ This project provides a Ruby-based DiagramShorthandMethods to enable game designers to
127
141
  design and also test tentative game designs and/or prototypes
128
142
  email:
129
143
  - falmeida1988@gmail.com
@@ -146,7 +160,6 @@ files:
146
160
  - lib/rachinations/domain/diagrams/verbose_diagram.rb
147
161
  - lib/rachinations/domain/edge_collection.rb
148
162
  - lib/rachinations/domain/edges/edge.rb
149
- - lib/rachinations/domain/edges/random_edge.rb
150
163
  - lib/rachinations/domain/exceptions/bad_options.rb
151
164
  - lib/rachinations/domain/exceptions/no_elements_found.rb
152
165
  - lib/rachinations/domain/exceptions/no_elements_matching_condition_error.rb
@@ -154,6 +167,7 @@ files:
154
167
  - lib/rachinations/domain/exceptions/unsupported_type_error.rb
155
168
  - lib/rachinations/domain/modules/common/hash_init.rb
156
169
  - lib/rachinations/domain/modules/common/invariant.rb
170
+ - lib/rachinations/domain/modules/common/refiners/number_modifiers.rb
157
171
  - lib/rachinations/domain/modules/common/refiners/proc_convenience_methods.rb
158
172
  - lib/rachinations/domain/modules/diagrams/verbose.rb
159
173
  - lib/rachinations/domain/node_collection.rb
@@ -170,8 +184,14 @@ files:
170
184
  - lib/rachinations/domain/resources/token.rb
171
185
  - lib/rachinations/domain/strategies/strategy.rb
172
186
  - lib/rachinations/domain/strategies/valid_types.rb
173
- - lib/rachinations/dsl/dsl.rb
187
+ - lib/rachinations/dsl/bad_dsl.rb
188
+ - lib/rachinations/dsl/bootstrap.rb
189
+ - lib/rachinations/dsl/diagram_shorthand_methods.rb
190
+ - lib/rachinations/dsl/helpers/parser.rb
191
+ - lib/rachinations/extras/constant_hash.rb
174
192
  - lib/rachinations/extras/fifo.rb
193
+ - lib/rachinations/helpers/edge_helper.rb
194
+ - lib/rachinations/utils/string_helper.rb
175
195
  - lib/rachinations/version.rb
176
196
  - machinations_diagrams/apenas_bonito.xml
177
197
  - machinations_diagrams/behavior_converter.xml
@@ -211,18 +231,19 @@ files:
211
231
  - testing/spec/canon/conditions_spec.rb
212
232
  - testing/spec/canon/converter_spec.rb
213
233
  - testing/spec/canon/pool_spec.rb
214
- - testing/spec/canon/trigger_spec.rb
215
234
  - testing/spec/converter_spec.rb
216
235
  - testing/spec/diagram_spec.rb
217
236
  - testing/spec/edge_spec.rb
237
+ - testing/spec/gate_spec.rb
218
238
  - testing/spec/hash_init_spec.rb
219
239
  - testing/spec/node_spec.rb
220
240
  - testing/spec/non_deterministic_diagram_spec.rb
221
241
  - testing/spec/pool_spec.rb
242
+ - testing/spec/release1/dsl_spec.rb
222
243
  - testing/spec/source_spec.rb
223
244
  - testing/spec/spec_helper.rb
224
245
  - testing/spec/xexeo_spec.rb
225
- homepage: ''
246
+ homepage: https://github.com/queirozfcom/rachinations
226
247
  licenses:
227
248
  - MIT
228
249
  metadata: {}
@@ -258,14 +279,15 @@ test_files:
258
279
  - testing/spec/canon/conditions_spec.rb
259
280
  - testing/spec/canon/converter_spec.rb
260
281
  - testing/spec/canon/pool_spec.rb
261
- - testing/spec/canon/trigger_spec.rb
262
282
  - testing/spec/converter_spec.rb
263
283
  - testing/spec/diagram_spec.rb
264
284
  - testing/spec/edge_spec.rb
285
+ - testing/spec/gate_spec.rb
265
286
  - testing/spec/hash_init_spec.rb
266
287
  - testing/spec/node_spec.rb
267
288
  - testing/spec/non_deterministic_diagram_spec.rb
268
289
  - testing/spec/pool_spec.rb
290
+ - testing/spec/release1/dsl_spec.rb
269
291
  - testing/spec/source_spec.rb
270
292
  - testing/spec/spec_helper.rb
271
293
  - testing/spec/xexeo_spec.rb
@@ -1,4 +0,0 @@
1
- require_relative '../../domain/edges/edge'
2
-
3
- class RandomEdge < Edge
4
- end