fira 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Fira adds ease-of-use functionality to HTML files.
6
6
 
7
- Instead of typing id="foo" or class="foo bar", you can simply type #foo or .foo .bar in HTML tags (in the normal place where you put id or class attributes)
7
+ Instead of typing `id="foo"` or `class="foo bar"`, you can simply type `#foo` or `.foo .bar` in HTML tags (in the normal place where you put id or class attributes)
8
8
 
9
9
  ## Installation
10
10
 
@@ -29,10 +29,20 @@ Once in your Gemfile, Fira will be the default template_engine for <code>rails g
29
29
  ##Examples
30
30
 
31
31
  ###Id's
32
- &lt;div #my_id &gt; becomes &lt;div id="my_id" &gt;
32
+
33
+ <div #my_id >
34
+
35
+ becomes
36
+
37
+ <div id="my_id" >
33
38
 
34
39
  ###Classes
35
- &lt;div .multiple .classes &gt; becomes &lt;div class='multiple classes' &gt;
40
+
41
+ <div .multiple .classes >
42
+
43
+ becomes
44
+
45
+ <div class='multiple classes' >
36
46
 
37
47
  ## Contributing
38
48
 
@@ -8,14 +8,16 @@ 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
12
  TAG_END_REGEX = /([\/]?>)/
12
13
 
13
14
  def parse_text(text)
14
15
  output = ""
15
16
  tokenizer = HTML::Tokenizer.new(text)
16
17
  while token = tokenizer.next
18
+
17
19
  #if it's an opening tag, analyze it
18
- if token[0] == "<" and token[token.length - 1] == ">" and token[1] != "/"
20
+ if is_opening_tag?(token)
19
21
 
20
22
  #remove any quotes
21
23
  quotes = token.scan(QUOTE_REGEX)
@@ -28,22 +30,22 @@ module Fira
28
30
  classes = result.scan(CLASS_REGEX)
29
31
 
30
32
  if ! classes.empty?
31
-
33
+
32
34
  #build an HTML class attribute
33
35
  att = 'class="'
34
-
36
+
35
37
  classes.each do |cl|
36
38
  att += " #{cl[0]}"
37
39
  end
38
-
40
+
39
41
  att += '"'
40
-
42
+
41
43
  #remove the space before the first class
42
44
  att = att.sub(/class=" /, ' class="')
43
45
 
44
46
  #remove the first fira class attribute
45
47
  new_tag = result.sub(CLASS_REGEX, att)
46
-
48
+
47
49
  #remove the rest of the fira class attributes
48
50
  final_result = new_tag.gsub(CLASS_REGEX, "")
49
51
 
@@ -53,7 +55,7 @@ module Fira
53
55
  #add back in the quotes
54
56
  final = insert_quotes(quotes, result)
55
57
  end
56
-
58
+
57
59
  output += final
58
60
 
59
61
  else
@@ -70,7 +72,12 @@ module Fira
70
72
  quotes = _quotes.join(" ")
71
73
  tag.sub(TAG_END_REGEX, space + quotes + '\1')
72
74
  end
73
-
74
-
75
+
76
+ def is_opening_tag?(text)
77
+ val = text =~ TAG_OPEN_REGEX
78
+ val ? true : false
79
+ end
80
+
81
+
75
82
  end
76
83
  end
@@ -1,3 +1,3 @@
1
1
  module Fira
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  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.5.1
4
+ version: 0.5.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-05-17 00:00:00.000000000 Z
12
+ date: 2013-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport