mote 1.0.0 → 1.1.0

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. 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