bem_html 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bem_html.gemspec +1 -1
  3. data/lib/bem_html.rb +9 -13
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3b18970639fd699f7614d5b2894e9c51007d6bf
4
- data.tar.gz: fccca43f3f35e40f1c5c55c6adfdb0222cff6b34
3
+ metadata.gz: a68e25b7b873e881808f3784f3796b3e345be19e
4
+ data.tar.gz: 87a85c8309d7ceeaee572d33f5887fe862b652c4
5
5
  SHA512:
6
- metadata.gz: a6ab8f5a0ef7dc586b014732876b7c84feaa8b18b2681a44b6b7296dda5a7563dbdb08ab5475d7b5e945aba661c529058c2df7be0f1be1dcde686b8747e2fa16
7
- data.tar.gz: 517466b78e4e1a78925eb405be73624463aae2be87d7cfe5111cd327b64c2bf494cd6e4394ed33d7428902554b8f3a766ee7a1552e3e82ef0d85fdd410e07471
6
+ metadata.gz: f48865cbb794f2fe6d91e72b81e9030f131ae087c014dff2f98f7b36dae15ec345bb61cf40847ad73af1a3eb54d17fed21bba149e3829296111936347b2ba723
7
+ data.tar.gz: 7252abbd9a2654d179e6cb116d2ce530257e30fc94c388c052372fe05ea5d1e09f5cbbf75a5fd4a211e67a095e90f4ab4dbdb55ab4b6442eefe09804e6ae39ad
data/bem_html.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "bem_html"
6
- s.version = "1.0.1"
6
+ s.version = "1.1.0"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Andrew Pilsch"]
9
9
  s.email = ["apilsch@tamu.edu"]
data/lib/bem_html.rb CHANGED
@@ -11,19 +11,19 @@ class BemHtml
11
11
  blockNode['class'] = ""
12
12
  end
13
13
  blockNode['class'] += " #{currentBlock}"
14
- nextBlock = [currentBlock]
15
14
  if(blockNode.attributes["bem-modifiers"])
15
+ nextBlock = [currentBlock]
16
16
  JSON.parse(blockNode.attributes["bem-modifiers"].value.gsub(/\:(\w+)/,'"\1"')).each do |modifier|
17
17
  nextBlock.push("#{currentBlock}--#{modifier}")
18
18
  blockNode['class'] += " #{currentBlock}--#{modifier}"
19
19
  end
20
20
  blockNode.attributes["bem-modifiers"].remove
21
+ else
22
+ nextBlock = currentBlock
21
23
  end
22
- processingQueue = [[nextBlock, blockNode.children]]
24
+ processingQueue = [blockNode.children]
23
25
  while processingQueue.length > 0
24
- topQueue = processingQueue.shift
25
- currentBlock = topQueue[0]
26
- nodes = topQueue[1]
26
+ nodes = processingQueue.shift
27
27
  nodes.each do |node|
28
28
  next if not node.attributes
29
29
  next if node.attributes["bem-block"]
@@ -36,13 +36,9 @@ class BemHtml
36
36
  element = node.attributes["bem-element"]
37
37
  node.attributes["bem-element"].remove
38
38
  if(currentBlock.respond_to? :push)
39
- nextBlock = currentBlock.map do |cb|
40
- node['class'] += " #{cb}__#{element}"
41
- "#{cb}__#{element}"
42
- end
39
+ node['class'] += " #{cb}__#{element}"
43
40
  else
44
- nextBlock = "#{currentBlock}__#{element}"
45
- node['class'] += " #{nextBlock}"
41
+ node['class'] += " #{currentBlock}__#{element}"
46
42
  end
47
43
 
48
44
  if(node.attributes["bem-modifiers"])
@@ -50,7 +46,6 @@ class BemHtml
50
46
  if(currentBlock.respond_to? :push)
51
47
  currentBlock.each do |cb|
52
48
  node['class'] += " #{cb}__#{element}--#{modifier}"
53
- nextBlock.push("#{cb}__#{element}--#{modifier}")
54
49
  end
55
50
  else
56
51
  node['class'] += " #{currentBlock}__#{element}--#{modifier}"
@@ -58,8 +53,9 @@ class BemHtml
58
53
  end
59
54
  node.attributes["bem-modifiers"].remove
60
55
  end
56
+ node['class'] = node['class'].lstrip
61
57
  if(node.children.length > 0)
62
- processingQueue.push([nextBlock, node.children])
58
+ processingQueue.push(node.children)
63
59
  end
64
60
  end
65
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bem_html
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Pilsch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-02 00:00:00.000000000 Z
11
+ date: 2016-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri