fira 0.6.1 → 0.6.2

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.
@@ -8,7 +8,7 @@ module Fira
8
8
  ID_REGEX = / #([^0-9][a-z_A-Z0-9_\-]+)/
9
9
  CLASS_REGEX = / \.([^0-9][a-z_A-Z0-9_\-]+)/
10
10
  QUOTE_REGEX = /\S+=["']?(?:.(?!["']?\s+(?:\S+)=|[>"']))+.["']?/
11
- TAG_OPEN_REGEX = /<[^\/%!]\w* /
11
+ TAG_OPEN_REGEX = /<[^\/%!]\w* /x
12
12
  TAG_END_REGEX = /([\/]?>)/
13
13
 
14
14
  def parse_text(text)
@@ -40,7 +40,7 @@ module Fira
40
40
  end
41
41
  end
42
42
 
43
- return output
43
+ return output.gsub( /\s+/, " " )
44
44
  end
45
45
 
46
46
  def parse_classes(text)
@@ -1,3 +1,3 @@
1
1
  module Fira
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
@@ -0,0 +1,35 @@
1
+ def erb
2
+ <<-FIRA
3
+ <span #my-id><% something.id %></span>
4
+ <p #id .class3 >
5
+ some text
6
+ </p>
7
+ FIRA
8
+ end
9
+
10
+ def res_erb
11
+ <<-FIRA
12
+ <span id="my-id"><% something.id %></span>
13
+ <p id="id" class="class3">
14
+ some text
15
+ </p>
16
+ FIRA
17
+ end
18
+
19
+ def erb_in_tag
20
+ <<-FIRA
21
+ <span #my-id class="<%= something.id %>" ></span>
22
+ <p #id .class3 >
23
+ some text
24
+ </p>
25
+ FIRA
26
+ end
27
+
28
+ def res_erb_in_tag
29
+ <<-FIRA
30
+ <span id="my-id" class="<%= something.id %>" ></span>
31
+ <p id="id" class="class3">
32
+ some text
33
+ </p>
34
+ FIRA
35
+ end
@@ -1,70 +1,19 @@
1
1
  require 'spec_helper'
2
+ require 'html_specs'
3
+ require 'erb_specs'
2
4
 
3
5
  describe Fira do
4
- context 'HTML' do
5
-
6
- it 'simple' do
7
- result = Fira.render simple
8
- result.should == res_simple
9
- end
10
-
11
- it 'multi line' do
12
- result = Fira.render multi_line
13
- result.should == res_multi_line
14
- end
15
-
16
- it 'nested single line' do
17
- result = Fira.render nested_single_line
18
- result.should == res_nested_single_line
19
- end
20
-
21
- it 'nested multi line' do
22
- result = Fira.render nested_multi_line
23
- result.should == res_nested_multi_line
24
- end
25
-
26
- it 'two classes' do
27
- result = Fira.render two_classes
28
- result.should == res_two_classes
29
- end
30
-
31
- it 'inside text' do
32
- result = Fira.render inside_text
33
- result.should == res_inside_text
34
- end
35
-
36
- it 'inside quotes' do
37
- result = Fira.render inside_quotes
38
- result.should == res_inside_quotes
39
- end
40
-
41
- it 'comments' do
42
- result = Fira.render html_comments
43
- result.should == res_html_comments
44
- end
45
-
46
- context 'Data tags' do
47
- it 'simple data tags' do
48
- result = Fira.render data_attribute_simple
49
- result.should == res_data_attribute_simple
50
- end
51
-
52
- it 'multiple data tags' do
53
- result = Fira.render data_attribute_multiple
54
- result.should == res_data_attribute_multiple
55
- end
56
- end
57
- end
58
-
59
- context 'ERB' do
60
- it 'simple erb' do
61
- result = Fira.render erb
62
- result.should == res_erb
63
- end
64
-
65
- it 'erb in-tag' do
66
- result = Fira.render erb_in_tag
67
- result.should == res_erb_in_tag
6
+ specs = %w{
7
+ simple multi_line nested_single_line nested_multi_line two_classes
8
+ inside_text inside_quotes html_comments data_attribute_simple
9
+ data_attribute_multiple erb erb_in_tag multiline_opening_tag
10
+ }
11
+
12
+ specs.each do |method_name|
13
+ it "#{method_name}" do
14
+ result = Fira.render(send(method_name))
15
+ res_name = "res_#{method_name}"
16
+ result.should == send(res_name).gsub( /\s+/, " " )
68
17
  end
69
18
  end
70
19
 
@@ -0,0 +1,182 @@
1
+ def simple
2
+ <<-FIRA
3
+ <p #id .class3>some text</p>
4
+ FIRA
5
+ end
6
+
7
+ def res_simple
8
+ <<-FIRA
9
+ <p id="id" class="class3">some text</p>
10
+ FIRA
11
+ end
12
+
13
+ def multi_line
14
+ <<-FIRA
15
+ <p #id .class3>
16
+ some text
17
+ </p>
18
+ FIRA
19
+ end
20
+
21
+ def res_multi_line
22
+ <<-FIRA
23
+ <p id="id" class="class3">
24
+ some text
25
+ </p>
26
+ FIRA
27
+ end
28
+
29
+ def nested_single_line
30
+ <<-FIRA
31
+ <p #id .class3><span #span .one>some text</span>
32
+ some text
33
+ </p>
34
+ FIRA
35
+ end
36
+
37
+ def res_nested_single_line
38
+ <<-FIRA
39
+ <p id="id" class="class3"><span id="span" class="one">some text</span>
40
+ some text
41
+ </p>
42
+ FIRA
43
+ end
44
+
45
+ def two_classes
46
+ <<-FIRA
47
+ <p #id .class3 .class4>
48
+ some text
49
+ </p>
50
+ FIRA
51
+ end
52
+
53
+ def res_two_classes
54
+ <<-FIRA
55
+ <p id="id" class="class3 class4">
56
+ some text
57
+ </p>
58
+ FIRA
59
+ end
60
+
61
+ def nested_multi_line
62
+ <<-FIRA
63
+ <p #id .class3>
64
+ <span #span8 .one>some text</span>
65
+ some text
66
+ <input type='text' #user value='user' .orange />
67
+ </p>
68
+ FIRA
69
+ end
70
+
71
+ def res_nested_multi_line
72
+ <<-FIRA
73
+ <p id="id" class="class3">
74
+ <span id="span8" class="one">some text</span>
75
+ some text
76
+ <input id="user" class="orange" type='text' value='user'/>
77
+ </p>
78
+ FIRA
79
+ end
80
+
81
+ def inside_text
82
+ <<-FIRA
83
+ <p #id .class3>#span .one some text
84
+ #span .one some text
85
+ <span>.one #span some text</span>
86
+ </p>
87
+ FIRA
88
+ end
89
+
90
+ def res_inside_text
91
+ <<-FIRA
92
+ <p id="id" class="class3">#span .one some text
93
+ #span .one some text
94
+ <span>.one #span some text</span>
95
+ </p>
96
+ FIRA
97
+ end
98
+
99
+ def inside_quotes
100
+ <<-FIRA
101
+ <p rel="something .steve and #an id" #id .class3>
102
+ some text
103
+ </p>
104
+ FIRA
105
+ end
106
+
107
+ def res_inside_quotes
108
+ <<-FIRA
109
+ <p id="id" class="class3" rel="something .steve and #an id">
110
+ some text
111
+ </p>
112
+ FIRA
113
+ end
114
+
115
+ def html_comments
116
+ <<-FIRA
117
+ <div class="span12">
118
+ <h1><%= @applicant.first_name + " " + @applicant.last_name %>, you are applying for: </h1>
119
+ <h3><span .main-color><%= @position.name %></span> @ <%= @position.client.name %></h3>
120
+ <!-- <div .user-info>
121
+ <h2><a href="/dashboard"><%= @applicant.first_name + " " + @applicant.last_name %></a></h2>
122
+ <button type="button" .button .edit-profile>Edit</button>
123
+ </div> -->
124
+ </div>
125
+ FIRA
126
+ end
127
+
128
+ def res_html_comments
129
+ <<-FIRA
130
+ <div class="span12">
131
+ <h1><%= @applicant.first_name + " " + @applicant.last_name %>, you are applying for: </h1>
132
+ <h3><span class="main-color"><%= @position.name %></span> @ <%= @position.client.name %></h3>
133
+ <!-- <div .user-info>
134
+ <h2><a href="/dashboard"><%= @applicant.first_name + " " + @applicant.last_name %></a></h2>
135
+ <button type="button" .button .edit-profile>Edit</button>
136
+ </div> -->
137
+ </div>
138
+ FIRA
139
+ end
140
+
141
+ def data_attribute_simple
142
+ <<-FIRA
143
+ <span $convo-id="72" ></span>
144
+ FIRA
145
+ end
146
+
147
+ def res_data_attribute_simple
148
+ <<-FIRA
149
+ <span data-convo-id="72"></span>
150
+ FIRA
151
+ end
152
+
153
+ def data_attribute_multiple
154
+ <<-FIRA
155
+ <span $convo-id="72" $city="Provo" ></span>
156
+ FIRA
157
+ end
158
+
159
+ def res_data_attribute_multiple
160
+ <<-FIRA
161
+ <span data-convo-id="72" data-city="Provo"></span>
162
+ FIRA
163
+ end
164
+
165
+ def multiline_opening_tag
166
+ <<-FIRA
167
+ <button
168
+ .btn .btn-primary .btn-large
169
+ #finish-new-money
170
+ $user-id="<%= @user.id %>"
171
+ >Done!</button>
172
+ FIRA
173
+ end
174
+
175
+ def res_multiline_opening_tag
176
+ <<-FIRA
177
+ <button
178
+ id="finish-new-money"
179
+ class="btn btn-primary btn-large" data-user-id="<%= @user.id %>"
180
+ >Done!</button>
181
+ FIRA
182
+ end
@@ -4,204 +4,4 @@ require 'fira'
4
4
  RSpec.configure do |config|
5
5
  config.color_enabled = true
6
6
  config.formatter = 'documentation'
7
- end
8
-
9
- def simple
10
- <<-FIRA
11
- <p #id .class3>some text</p>
12
- FIRA
13
- end
14
-
15
- def res_simple
16
- <<-FIRA
17
- <p id="id" class="class3">some text</p>
18
- FIRA
19
- end
20
-
21
- def multi_line
22
- <<-FIRA
23
- <p #id .class3>
24
- some text
25
- </p>
26
- FIRA
27
- end
28
-
29
- def res_multi_line
30
- <<-FIRA
31
- <p id="id" class="class3">
32
- some text
33
- </p>
34
- FIRA
35
- end
36
-
37
- def nested_single_line
38
- <<-FIRA
39
- <p #id .class3><span #span .one>some text</span>
40
- some text
41
- </p>
42
- FIRA
43
- end
44
-
45
- def res_nested_single_line
46
- <<-FIRA
47
- <p id="id" class="class3"><span id="span" class="one">some text</span>
48
- some text
49
- </p>
50
- FIRA
51
- end
52
-
53
- def two_classes
54
- <<-FIRA
55
- <p #id .class3 .class4>
56
- some text
57
- </p>
58
- FIRA
59
- end
60
-
61
- def res_two_classes
62
- <<-FIRA
63
- <p id="id" class="class3 class4">
64
- some text
65
- </p>
66
- FIRA
67
- end
68
-
69
- def nested_multi_line
70
- <<-FIRA
71
- <p #id .class3>
72
- <span #span8 .one>some text</span>
73
- some text
74
- <input type='text' #user value='user' .orange />
75
- </p>
76
- FIRA
77
- end
78
-
79
- def res_nested_multi_line
80
- <<-FIRA
81
- <p id="id" class="class3">
82
- <span id="span8" class="one">some text</span>
83
- some text
84
- <input id="user" class="orange" type='text' value='user'/>
85
- </p>
86
- FIRA
87
- end
88
-
89
- def inside_text
90
- <<-FIRA
91
- <p #id .class3>#span .one some text
92
- #span .one some text
93
- <span>.one #span some text</span>
94
- </p>
95
- FIRA
96
- end
97
-
98
- def res_inside_text
99
- <<-FIRA
100
- <p id="id" class="class3">#span .one some text
101
- #span .one some text
102
- <span>.one #span some text</span>
103
- </p>
104
- FIRA
105
- end
106
-
107
- def inside_quotes
108
- <<-FIRA
109
- <p rel="something .steve and #an id" #id .class3>
110
- some text
111
- </p>
112
- FIRA
113
- end
114
-
115
- def res_inside_quotes
116
- <<-FIRA
117
- <p id="id" class="class3" rel="something .steve and #an id">
118
- some text
119
- </p>
120
- FIRA
121
- end
122
-
123
- def html_comments
124
- <<-FIRA
125
- <div class="span12">
126
- <h1><%= @applicant.first_name + " " + @applicant.last_name %>, you are applying for: </h1>
127
- <h3><span .main-color><%= @position.name %></span> @ <%= @position.client.name %></h3>
128
- <!-- <div .user-info>
129
- <h2><a href="/dashboard"><%= @applicant.first_name + " " + @applicant.last_name %></a></h2>
130
- <button type="button" .button .edit-profile>Edit</button>
131
- </div> -->
132
- </div>
133
- FIRA
134
- end
135
-
136
- def res_html_comments
137
- <<-FIRA
138
- <div class="span12">
139
- <h1><%= @applicant.first_name + " " + @applicant.last_name %>, you are applying for: </h1>
140
- <h3><span class="main-color"><%= @position.name %></span> @ <%= @position.client.name %></h3>
141
- <!-- <div .user-info>
142
- <h2><a href="/dashboard"><%= @applicant.first_name + " " + @applicant.last_name %></a></h2>
143
- <button type="button" .button .edit-profile>Edit</button>
144
- </div> -->
145
- </div>
146
- FIRA
147
- end
148
-
149
- def erb
150
- <<-FIRA
151
- <span #my-id><% something.id %></span>
152
- <p #id .class3 >
153
- some text
154
- </p>
155
- FIRA
156
- end
157
-
158
- def res_erb
159
- <<-FIRA
160
- <span id="my-id"><% something.id %></span>
161
- <p id="id" class="class3">
162
- some text
163
- </p>
164
- FIRA
165
- end
166
-
167
- def erb_in_tag
168
- <<-FIRA
169
- <span #my-id class="<%= something.id %>" ></span>
170
- <p #id .class3 >
171
- some text
172
- </p>
173
- FIRA
174
- end
175
-
176
- def res_erb_in_tag
177
- <<-FIRA
178
- <span id="my-id" class="<%= something.id %>" ></span>
179
- <p id="id" class="class3">
180
- some text
181
- </p>
182
- FIRA
183
- end
184
-
185
- def data_attribute_simple
186
- <<-FIRA
187
- <span $convo-id="72" ></span>
188
- FIRA
189
- end
190
-
191
- def res_data_attribute_simple
192
- <<-FIRA
193
- <span data-convo-id="72"></span>
194
- FIRA
195
- end
196
-
197
- def data_attribute_multiple
198
- <<-FIRA
199
- <span $convo-id="72" $city="Provo" ></span>
200
- FIRA
201
- end
202
-
203
- def res_data_attribute_multiple
204
- <<-FIRA
205
- <span data-convo-id="72" data-city="Provo"></span>
206
- FIRA
207
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-01 00:00:00.000000000 Z
12
+ date: 2014-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -124,7 +124,9 @@ files:
124
124
  - lib/generators/fira/scaffold/templates/index.html.fira
125
125
  - lib/generators/fira/scaffold/templates/new.html.fira
126
126
  - lib/generators/fira/scaffold/templates/show.html.fira
127
+ - spec/erb_specs.rb
127
128
  - spec/fira_spec.rb
129
+ - spec/html_specs.rb
128
130
  - spec/spec_helper.rb
129
131
  homepage: http://cameronsutter.github.io/fira
130
132
  licenses: []
@@ -151,6 +153,7 @@ signing_key:
151
153
  specification_version: 3
152
154
  summary: Smarter HTML
153
155
  test_files:
156
+ - spec/erb_specs.rb
154
157
  - spec/fira_spec.rb
158
+ - spec/html_specs.rb
155
159
  - spec/spec_helper.rb
156
- has_rdoc: