code_terminator 0.5.3 → 0.5.4
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 +4 -4
- data/exercises/issue22.html +7 -3
- data/lib/code_terminator/html.rb +83 -79
- data/lib/code_terminator/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 233ef9c63180ce9c609c9d3443768dc21c248fc1
|
4
|
+
data.tar.gz: 5160c33790932470001b17ed022ffcc8444b9aff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de1ab5d12911a2b911f86d75bdf5c7591d4511d14924575a34b8a090b21aa9162cceb6c9a9ade5837b87e63f55bf202e4c84f77f3f6a200fb971a65dccbab292
|
7
|
+
data.tar.gz: 1fec0cee3909f8fdbc1c792f22781f38bd1fc397e35e536a9034b4bb0705110fe48de0ac1f0c8e621e8db29eeda42d8c485076869d612b7e31cdf59759ff5911
|
data/exercises/issue22.html
CHANGED
@@ -1,14 +1,18 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
1
|
<html>
|
3
2
|
<head>
|
4
3
|
<title>My Favorite Book</title>
|
5
4
|
</head>
|
6
5
|
<body>
|
7
|
-
<div id=
|
6
|
+
<div id='title'>
|
8
7
|
<h1></h1>
|
9
8
|
</div>
|
10
|
-
<div class=
|
9
|
+
<div class='about'>
|
10
|
+
<p></p>
|
11
|
+
</div>
|
12
|
+
<div class='contact'>
|
11
13
|
<p></p>
|
12
14
|
</div>
|
13
15
|
</body>
|
14
16
|
</html>
|
17
|
+
|
18
|
+
<!-- #CHECK THIS ACTIVITY, ID DIVS HAVE ATTRIBUTE DONT WORK COUNTER -->
|
data/lib/code_terminator/html.rb
CHANGED
@@ -299,7 +299,7 @@ class CodeTerminator::Html
|
|
299
299
|
|
300
300
|
error_elements = Array.new
|
301
301
|
|
302
|
-
|
302
|
+
elements_count = Array.new
|
303
303
|
|
304
304
|
error333 = nil
|
305
305
|
|
@@ -309,12 +309,13 @@ class CodeTerminator::Html
|
|
309
309
|
|
310
310
|
elements.each do |e|
|
311
311
|
|
312
|
-
if
|
312
|
+
if elements_count.select {|element| element[:parent_pointer].to_s == e[:parent_pointer].to_s && element[:tag].to_s == e[:tag]}.count < 1
|
313
313
|
error_element = Hash.new
|
314
314
|
error_element[:tag] = e[:tag]
|
315
|
+
error_element[:pointer] = e[:pointer]
|
315
316
|
error_element[:parent_pointer] = e[:parent_pointer]
|
316
317
|
error_element[:count] = 0
|
317
|
-
|
318
|
+
elements_count << error_element
|
318
319
|
end
|
319
320
|
|
320
321
|
item = e[:tag]
|
@@ -333,67 +334,78 @@ class CodeTerminator::Html
|
|
333
334
|
end
|
334
335
|
end
|
335
336
|
#end if content is null
|
336
|
-
|
337
337
|
else
|
338
338
|
#item class is different to text or comment
|
339
339
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
340
|
+
code.css(e[:tag]).each do |tag|
|
341
|
+
tag_element = nil
|
342
|
+
e_check = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
|
343
|
+
# p "echeck " + e_check.to_s
|
344
|
+
e_check2 = css_code_checked.select {|element| element[:pointer].to_s == tag.pointer_id.to_s }
|
345
|
+
|
346
|
+
#original_pointer es el pointer del elemento e[]
|
347
|
+
#busca si el original_pointer esta en la lista de relaciones
|
348
|
+
#busca si el pointer del tag esta en la lista de relaciones
|
349
|
+
#cuando un original pointer o un pointer esta en la lista de relaciones, ya no puede volver a ser ingresado en la lista
|
350
|
+
#si el original pointer ya esta en la lista de relaciones, ya no es necesario volver a checarlo
|
351
|
+
check_original_pointer = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
|
352
|
+
|
353
|
+
check_add_pointer = css_code_checked.select {|element| element[:pointer].to_s == tag.pointer_id.to_s }
|
354
|
+
|
355
|
+
#look for same tags in code
|
356
|
+
if check_original_pointer.count == 0
|
357
|
+
if check_add_pointer.count < 1
|
358
|
+
element_checked = Hash.new
|
359
|
+
element_checked[:pointer] = tag.pointer_id
|
360
|
+
element_checked[:tag] = e[:tag]
|
361
|
+
element_checked[:original_pointer] = e[:pointer]
|
362
|
+
element_checked[:original_parent_pointer] = e[:parent_pointer]
|
363
|
+
css_code_checked << element_checked
|
364
|
+
|
365
|
+
error_element = elements_count.select {|element| element[:tag].to_s == e[:tag].to_s && element[:parent_pointer].to_s == e[:parent_pointer].to_s}.first
|
366
|
+
error_element[:count] += 1
|
367
|
+
end
|
368
|
+
end
|
369
|
+
# end
|
370
|
+
# p "checked = " + elements_count.to_s
|
371
371
|
|
372
|
+
if code.css(e[:tag]).length > 0
|
372
373
|
|
373
|
-
|
374
|
-
|
374
|
+
#tag es el elemento reccorrido en el codigo
|
375
|
+
#e es el elemento original
|
376
|
+
#elementscount son los elementos que existen en codigo y original
|
375
377
|
|
376
|
-
|
378
|
+
# if tag_element
|
379
|
+
if e[:attribute]
|
377
380
|
|
378
|
-
|
379
|
-
|
381
|
+
p "e --- " + e[:tag].to_s
|
382
|
+
p "e pt--- " + e[:pointer].to_s
|
383
|
+
p "e parent pt--- " + e[:parent_pointer].to_s
|
384
|
+
p "e attribute --- " + e[:attribute].to_s
|
385
|
+
|
386
|
+
|
387
|
+
# if tag.attribute(e[:attribute])
|
388
|
+
# p "elements count = " + css_code_checked.to_s
|
389
|
+
tag_element = css_code_checked.select {|element| element[:pointer].to_s == tag.pointer_id.to_s && element[:original_pointer] == e[:pointer] }.first
|
390
|
+
p "tag --" + tag.name.to_s
|
391
|
+
p "tag --" + tag.to_s
|
392
|
+
p "tag parent -- " + tag.parent.name.to_s
|
393
|
+
p "tag pointer -- " + tag.pointer_id.to_s
|
394
|
+
p "tag parent pointer -- " + tag.parent.pointer_id.to_s
|
395
|
+
p "tag attribute -- " + tag.attribute(e[:attribute]).to_s
|
396
|
+
p "parent_element --- " + tag_element.to_s
|
397
|
+
# else
|
380
398
|
# end
|
381
|
-
# e_check_exist = nil
|
382
|
-
# end
|
383
399
|
|
384
|
-
if e_check.count < 1 and e_check2.count < 1
|
385
|
-
|
386
|
-
element_checked = Hash.new
|
387
|
-
element_checked[:pointer] = tag.pointer_id
|
388
|
-
element_checked[:tag] = e[:tag]
|
389
|
-
element_checked[:target_pointer] = e[:pointer]
|
390
|
-
element_checked[:target_parent_pointer] = e[:parent_pointer]
|
391
|
-
|
392
|
-
|
393
|
-
if e[:attribute]
|
394
400
|
# Check the tag's attributes
|
395
|
-
|
396
|
-
|
401
|
+
if tag.attribute(e[:attribute]).nil?
|
402
|
+
if tag_element
|
403
|
+
# p "attribute element " + e[:attribute].to_s
|
404
|
+
# p "attribute tag " + tag.attribute(e[:attribute]).name.to_s
|
405
|
+
# if e[:attribute] != tag.attribute(e[:attribute]).name
|
406
|
+
p html_errors << new_error(element: e, type: 334, description: "`<#{e[:tag]}>` should have an attribute named #{e[:attribute]}")
|
407
|
+
# end
|
408
|
+
end
|
397
409
|
else
|
398
410
|
if tag.attribute(e[:attribute]).value != e[:value]
|
399
411
|
exist_in_body << false
|
@@ -402,17 +414,13 @@ class CodeTerminator::Html
|
|
402
414
|
if !(e[:tag] == "img" && e[:attribute] == "src" && e[:value] == "")
|
403
415
|
error333 = new_error(element: e, type: 333, description: "Make sure that the attribute #{e[:attribute]} in `<#{e[:tag]}>` has the value #{e[:value]}")
|
404
416
|
end
|
405
|
-
|
406
|
-
|
407
|
-
|
417
|
+
else
|
418
|
+
# p "add code_checked"
|
419
|
+
# css_code_checked << element_checked
|
408
420
|
exist_in_body << true
|
409
421
|
end
|
410
|
-
|
411
422
|
end
|
412
|
-
|
413
|
-
end #if element checked
|
414
|
-
|
415
|
-
end
|
423
|
+
# end
|
416
424
|
|
417
425
|
|
418
426
|
# p "respond" + tag.parent.to_s
|
@@ -421,10 +429,10 @@ class CodeTerminator::Html
|
|
421
429
|
|
422
430
|
p "check if exists in parent tags"
|
423
431
|
|
424
|
-
e_check4 = css_code_checked.select {|element| element[:pointer].to_s == e[:pointer].to_s }
|
425
|
-
e_check5 = css_code_checked.select {|element| element[:target_parent_pointer].to_s == e[:parent_pointer].to_s }
|
432
|
+
# e_check4 = css_code_checked.select {|element| element[:pointer].to_s == e[:pointer].to_s }
|
433
|
+
# e_check5 = css_code_checked.select {|element| element[:target_parent_pointer].to_s == e[:parent_pointer].to_s }
|
426
434
|
|
427
|
-
if (tag.count < 2 && tag.first)
|
435
|
+
if (tag.count < 2 && tag.first)
|
428
436
|
if tag.first.parent.name != e[:parent]
|
429
437
|
html_errors << new_error(element: e, type: 440, description: "Remember to add the `<#{e[:tag]}>` tag inside `<#{e[:parent]}>`")
|
430
438
|
end
|
@@ -437,20 +445,14 @@ class CodeTerminator::Html
|
|
437
445
|
end
|
438
446
|
end
|
439
447
|
|
440
|
-
|
441
448
|
end
|
442
449
|
|
450
|
+
end
|
451
|
+
|
452
|
+
end
|
453
|
+
|
454
|
+
# end #end tag
|
443
455
|
|
444
|
-
else
|
445
|
-
"pasa else"
|
446
|
-
# Check that the tag is present
|
447
|
-
# p "check if exists in parent"
|
448
|
-
e_check4 = css_code_checked.select {|element| element[:pointer].to_s == e[:pointer].to_s }
|
449
|
-
e_check5 = css_code_checked.select {|element| element[:target_parent_pointer].to_s == e[:parent_pointer].to_s }
|
450
|
-
if code.at_css(e[:tag]).nil? or e_check4.count < 1 and e_check5.count < 1
|
451
|
-
html_errors << new_error(element: e, type: 404, description: "Remember to add the `<#{e[:tag]}>` tag")
|
452
|
-
end
|
453
|
-
end
|
454
456
|
|
455
457
|
if exist_in_body && !exist_in_body.include?(true) && error333
|
456
458
|
html_errors << error333
|
@@ -461,12 +463,14 @@ class CodeTerminator::Html
|
|
461
463
|
|
462
464
|
end
|
463
465
|
|
464
|
-
|
466
|
+
# p elements_count.to_s
|
467
|
+
|
468
|
+
elements_count.each do |x|
|
465
469
|
#filtrar por parent
|
466
470
|
# tag_count = code.css(x[:tag]).length
|
467
471
|
tag_count = elements.select {|element| element[:parent_pointer].to_s == x[:parent_pointer].to_s && element[:tag].to_s == x[:tag]}.count
|
468
|
-
|
469
|
-
if tag_count
|
472
|
+
# p x[:tag]!="body"
|
473
|
+
if tag_count >= 1 && !(x[:tag]=="body" || x[:tag]=="head" || x[:tag]=="text" || x[:tag]=="comment")
|
470
474
|
if x[:count] < tag_count
|
471
475
|
html_errors << new_error(element: x[:tag], type: 404, description: "Remember to add the `<#{x[:tag]}>` tag")
|
472
476
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code_terminator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evelin Ponce
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|