mote 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/mote.rb +2 -2
  2. data/test/mote_test.rb +20 -5
  3. metadata +4 -4
data/lib/mote.rb CHANGED
@@ -18,9 +18,9 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
  class Mote
21
- VERSION = "1.0.0"
21
+ VERSION = "1.1.0"
22
22
 
23
- PATTERN = /^\s*(%)(.*?)$|(<\?)\s+(.*?)\s+\?>|(\{\{)(.*?)\}\}/m
23
+ PATTERN = /^(\n+)|^\s*(%)\s*(.*?)\n|(<\?)\s+(.*?)\s+\?>|(\{\{)(.*?)\}\}/m
24
24
 
25
25
  def self.parse(template, context = self, vars = [])
26
26
  terms = template.split(PATTERN)
data/test/mote_test.rb CHANGED
@@ -1,6 +1,21 @@
1
1
  require File.expand_path("../lib/mote", File.dirname(__FILE__))
2
2
 
3
3
  scope do
4
+ test "empty lines" do
5
+ example = Mote.parse("\n\n \n")
6
+ assert_equal "\n\n \n", example.call
7
+ end
8
+
9
+ test "empty lines with mixed code" do
10
+ example = Mote.parse("\n% true\n\n% false\n\n")
11
+ assert_equal "\n\n\n", example.call
12
+ end
13
+
14
+ test "empty lines with control flow" do
15
+ example = Mote.parse("\n% if true\n\n\n% else\n\n% end\n")
16
+ assert_equal "\n\n\n", example.call
17
+ end
18
+
4
19
  test "assignment" do
5
20
  example = Mote.parse("{{ \"***\" }}")
6
21
  assert_equal "***", example.call
@@ -27,7 +42,7 @@ scope do
27
42
  EOT
28
43
 
29
44
  example = Mote.parse(template)
30
- assert_equal "\n ***\n\n", example.call
45
+ assert_equal " ***\n", example.call
31
46
  end
32
47
 
33
48
  test "block evaluation" do
@@ -38,7 +53,7 @@ scope do
38
53
  EOT
39
54
 
40
55
  example = Mote.parse(template)
41
- assert_equal "\n*\n\n*\n\n*\n\n", example.call
56
+ assert_equal "*\n*\n*\n", example.call
42
57
  end
43
58
 
44
59
  test "parameters" do
@@ -49,8 +64,8 @@ scope do
49
64
  EOT
50
65
 
51
66
  example = Mote.parse(template)
52
- assert_equal "\n*\n\n*\n\n*\n\n", example[:n => 3]
53
- assert_equal "\n*\n\n*\n\n*\n\n*\n\n", example[:n => 4]
67
+ assert_equal "*\n*\n*\n", example[:n => 3]
68
+ assert_equal "*\n*\n*\n*\n", example[:n => 4]
54
69
  end
55
70
 
56
71
  test "multiline" do
@@ -119,7 +134,7 @@ scope do
119
134
  end
120
135
 
121
136
  test "helpers" do
122
- assert_equal "\n *\n\n *\n\n *\n\n", mote("test/basic.mote", :n => 3)
137
+ assert_equal " *\n *\n *\n", mote("test/basic.mote", :n => 3)
123
138
  end
124
139
 
125
140
  test "using functions in the context" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mote
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-24 00:00:00.000000000 Z
12
+ date: 2012-09-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cutest
16
- requirement: &2156124580 !ruby/object:Gem::Requirement
16
+ requirement: &2155981980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2156124580
24
+ version_requirements: *2155981980
25
25
  description: Mote is a very simple and fast template engine.
26
26
  email:
27
27
  - michel@soveran.com