fabulator 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +8 -0
- data/VERSION +1 -1
- data/features/functions.feature +1 -0
- data/features/simple-control.feature +14 -0
- data/lib/fabulator/expr/bin_expr.rb +20 -0
- data/test/{test_fabulator.rb → fabulator/state_machine_test.rb} +3 -2
- data/test/test_helper.rb +2 -1
- metadata +7 -7
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== 0.0.14 2010-12-09
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
* Added implementation classes for 'and' and 'or' in expressions
|
5
|
+
|
6
|
+
* 1 minor enhancement:
|
7
|
+
* Fleshed out basic test environment to enable future unit testing
|
8
|
+
|
1
9
|
=== 0.0.13 2010-12-08
|
2
10
|
|
3
11
|
* 7 minor enhancements:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.14
|
data/features/functions.feature
CHANGED
@@ -11,3 +11,17 @@ Feature: Simple Flow Control
|
|
11
11
|
When I run the expression (if ( 1 = 0 ) then 'foo' else 'bar')
|
12
12
|
Then I should get 1 item
|
13
13
|
And item 0 should be ['bar']
|
14
|
+
|
15
|
+
@conj
|
16
|
+
Scenario: Or
|
17
|
+
Given a context
|
18
|
+
When I run the expression (if ( 1 = 0 or 2 * 2 = 4 ) then 'foo' else 'bar')
|
19
|
+
Then I should get 1 item
|
20
|
+
And item 0 should be ['foo']
|
21
|
+
|
22
|
+
@conj
|
23
|
+
Scenario: And
|
24
|
+
Given a context
|
25
|
+
When I run the expression (if ( 1 = 0 and 2 * 2 = 4 ) then 'foo' else 'bar')
|
26
|
+
Then I should get 1 item
|
27
|
+
And item 0 should be ['bar']
|
@@ -118,6 +118,26 @@ module Fabulator
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
+
class AndExpr < BoolBinExpr
|
122
|
+
def op
|
123
|
+
:and
|
124
|
+
end
|
125
|
+
|
126
|
+
def calculate(a,b)
|
127
|
+
a && b
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
class OrExpr < BoolBinExpr
|
132
|
+
def op
|
133
|
+
:or
|
134
|
+
end
|
135
|
+
|
136
|
+
def calculate(a,b)
|
137
|
+
a || b
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
121
141
|
class MpyExpr < BinExpr
|
122
142
|
def op
|
123
143
|
:times
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.dirname(__FILE__) + '
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
2
|
require 'fabulator'
|
3
3
|
|
4
4
|
class TestFabulator < Test::Unit::TestCase
|
@@ -8,7 +8,8 @@ class TestFabulator < Test::Unit::TestCase
|
|
8
8
|
|
9
9
|
test 'compile trivial application' do
|
10
10
|
doc = LibXML::XML::Document.string('<f:application xmlns:f="http://dh.tamu.edu/ns/fabulator/1.0#" />')
|
11
|
-
sm = Fabulator::Core::StateMachine.new
|
11
|
+
sm = Fabulator::Core::Structurals::StateMachine.new
|
12
|
+
sm.compile_xml(doc)
|
12
13
|
assert_equal sm.states.keys.size, 1, "No states defined automatically"
|
13
14
|
assert_equal sm.states.keys.first, 'start', "Default state is not 'start'"
|
14
15
|
start = sm.states.values.first
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fabulator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 14
|
10
|
+
version: 0.0.14
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Smith
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-09 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -182,12 +182,12 @@ files:
|
|
182
182
|
- lib/fabulator/template/standard_tags.rb
|
183
183
|
- lib/fabulator/template/taggable.rb
|
184
184
|
- lib/fabulator/version.rb
|
185
|
-
- test/
|
185
|
+
- test/cucumber.rb
|
186
|
+
- test/fabulator/state_machine_test.rb
|
186
187
|
- test/test_helper.rb
|
187
188
|
- xslt/form.xsl
|
188
189
|
- xsm_expression_parser.racc
|
189
190
|
- TODO
|
190
|
-
- test/cucumber.rb
|
191
191
|
has_rdoc: true
|
192
192
|
homepage: http://github.com/jgsmith/ruby-fabulator
|
193
193
|
licenses: []
|
@@ -223,6 +223,6 @@ signing_key:
|
|
223
223
|
specification_version: 3
|
224
224
|
summary: XML-based state machine description language and engine.
|
225
225
|
test_files:
|
226
|
-
- test/test_fabulator.rb
|
227
226
|
- test/test_helper.rb
|
228
227
|
- test/cucumber.rb
|
228
|
+
- test/fabulator/state_machine_test.rb
|