dominate 0.1.6 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a7bcd918c55a4b1bc2182aa3af2d1c99815e86f
4
- data.tar.gz: 70a234db125eef1641b0eead1332eb009a3f1e79
3
+ metadata.gz: 9c1400088bbf6912de35de8603f32b9ced944c1e
4
+ data.tar.gz: 567983d23410a20dc5345ea7e2604634c4773b2f
5
5
  SHA512:
6
- metadata.gz: 2272c1f3a61ede1f6c123370a339d21b1f515d3f5472978690e295da235378ae43c3d407500b3fa572ba8a644de641efc43099be93eea3799ed6183518744738
7
- data.tar.gz: 09003081a2758df05c5c268379a5fd23194b403089165cebf98c3f4164957235ecf8f4886f3f7f75b7308a66936a0d08777ad5d7b9f4454dd663fa7c4833b327
6
+ metadata.gz: 534cf36a5da54a097a0a024d3768aeb016f143af2ad3f9e9b31191e853f2f24f8a2a9e73fa26ac1d6b3bc90176e00e7e009119dd05dd0be735c97483fafff527
7
+ data.tar.gz: 5072be8a698f922d1f8bf8839874acfd31f44426b8a171fb503ff11980cb33850c1fad5cac9a457c37c45dcfb8664b2d17abee6e848f7cfc61c3b1948f32c29b
@@ -47,7 +47,7 @@ module Dominate
47
47
 
48
48
  def apply_list doc, data_list, &block
49
49
  # child placement
50
- placement = 'after'
50
+ placement = 'add_child'
51
51
  # clean the html, removing spaces and returns
52
52
  doc.inner_html = doc.inner_html.strip
53
53
  # grab the first element before we remove the rest
@@ -55,7 +55,7 @@ module Dominate
55
55
  # remove all the children
56
56
  doc.children.each_with_index do |node, index|
57
57
  if "#{node}"['data-scope']
58
- placement = (index == 0 ? 'after' : 'before')
58
+ placement = (index == 0 ? 'add_child' : 'before')
59
59
  else
60
60
  node.remove
61
61
  end
@@ -66,21 +66,30 @@ module Dominate
66
66
  # dup the element
67
67
  elem = first_elem.dup
68
68
 
69
- data = data.to_deep_ostruct
69
+ data = data.to_deep_ostruct if data.is_a? Hash
70
70
 
71
71
  # lets look for data-prop elements
72
72
  elem.traverse do |x|
73
73
  if x.attributes.keys.include? 'data-prop'
74
74
  prop_val = x.attr('data-prop').to_s
75
75
 
76
- value = value_for data.instance_eval(prop_val), data, elem
76
+ if prop_val.length > 0
77
+ value = value_for data.instance_eval(prop_val), data, elem
78
+ else
79
+ value = value_for data, data, elem
80
+ end
77
81
  x.inner_html = value
78
82
  end
79
83
  end
80
84
 
81
85
  block.call elem, data if block
86
+
82
87
  # add the element back to the doc
83
- doc.children.public_send(placement, elem)
88
+ if placement == 'add_child'
89
+ doc.add_child elem
90
+ elsif placement == 'before'
91
+ doc.children.before elem
92
+ end
84
93
  end
85
94
 
86
95
  doc
@@ -1,3 +1,3 @@
1
1
  module Dominate
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -93,4 +93,11 @@ scope 'dominate' do
93
93
  dom = Dominate::HTML.file 'index'
94
94
  assert dom.html['data-scope']
95
95
  end
96
+
97
+ test 'flat' do
98
+ dom = Dominate::HTML.file 'flat'
99
+ dom.scope(:flat).apply ['moo', 'cow']
100
+ assert dom.html['Moo']
101
+ assert dom.html['Cow']
102
+ end
96
103
  end
@@ -0,0 +1,2 @@
1
+ ul data-scope='flat'
2
+ li data-prop='capitalize'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dominate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
@@ -143,6 +143,7 @@ files:
143
143
  - lib/dominate/version.rb
144
144
  - test/dominate_test.rb
145
145
  - test/dummy/app.slim
146
+ - test/dummy/flat.slim
146
147
  - test/dummy/footer.slim
147
148
  - test/dummy/header.html
148
149
  - test/dummy/index.html
@@ -174,6 +175,7 @@ summary: Templating Engine.
174
175
  test_files:
175
176
  - test/dominate_test.rb
176
177
  - test/dummy/app.slim
178
+ - test/dummy/flat.slim
177
179
  - test/dummy/footer.slim
178
180
  - test/dummy/header.html
179
181
  - test/dummy/index.html