code_terminator 0.5.5 → 0.5.6
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/lib/code_terminator/html.rb +105 -24
- 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: e8616d6be2d7e6877e6722e3cb0faf9b4be699fd
|
4
|
+
data.tar.gz: 261e03e5d01a646653eb7d3202202c66d272fc6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2d107298c0cf414e01edb594af73d21425c141be949d51439be1056cb899e489d798f3315133c7fd2dd07191614ca2df603e8416c8f4578bad428c1ec31335d
|
7
|
+
data.tar.gz: 0cb8ea6db083a884cd12bc9bba9d8df39afdb34dc6f1e7ef5115fbc004ead06b15209458662fe34ed61c6a9d59e9a82bc924454e60490e8bace2599d92ad744e
|
data/lib/code_terminator/html.rb
CHANGED
@@ -131,6 +131,13 @@ class CodeTerminator::Html
|
|
131
131
|
node[:parent_pointer] = child.parent.pointer_id
|
132
132
|
@elements << node
|
133
133
|
else
|
134
|
+
node = Hash.new
|
135
|
+
node[:parent] = "body"
|
136
|
+
node[:tag] = child.name
|
137
|
+
node[:content] = child.text if child.text? or child.comment?
|
138
|
+
node[:pointer] = child.pointer_id
|
139
|
+
node[:parent_pointer] = child.parent.pointer_id
|
140
|
+
@elements << node
|
134
141
|
child.attribute_nodes.each do |element_attribute|
|
135
142
|
node = Hash.new
|
136
143
|
node[:parent] = "body"
|
@@ -296,6 +303,7 @@ class CodeTerminator::Html
|
|
296
303
|
|
297
304
|
|
298
305
|
exist_in_body = Array.new
|
306
|
+
exist_value = Array.new
|
299
307
|
|
300
308
|
error_elements = Array.new
|
301
309
|
|
@@ -308,15 +316,25 @@ class CodeTerminator::Html
|
|
308
316
|
|
309
317
|
|
310
318
|
elements.each do |e|
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
319
|
+
p "element " + e.to_s
|
320
|
+
p "select ---"
|
321
|
+
# p elements_count
|
322
|
+
|
323
|
+
if e[:attribute].nil?
|
324
|
+
#tag con el mismo parent pointer no se repite ni se cuenta
|
325
|
+
# p "element count"
|
326
|
+
# elements_count.select {|element| element[:parent_pointer].to_s == e[:parent_pointer].to_s && element[:tag].to_s == e[:tag]}
|
327
|
+
|
328
|
+
|
329
|
+
# if elements_count.select {|element| element[:parent_pointer].to_s == e[:parent_pointer].to_s && element[:tag].to_s == e[:tag]}.count < 1
|
330
|
+
the_element = Hash.new
|
331
|
+
the_element[:tag] = e[:tag]
|
332
|
+
the_element[:pointer] = e[:pointer]
|
333
|
+
the_element[:parent_pointer] = e[:parent_pointer]
|
334
|
+
the_element[:count] = 1
|
335
|
+
elements_count << the_element
|
336
|
+
# end
|
337
|
+
end
|
320
338
|
|
321
339
|
item = e[:tag]
|
322
340
|
|
@@ -338,6 +356,7 @@ class CodeTerminator::Html
|
|
338
356
|
#item class is different to text or comment
|
339
357
|
|
340
358
|
code.css(e[:tag]).each do |tag|
|
359
|
+
p "tag " + tag.to_s
|
341
360
|
tag_element = nil
|
342
361
|
e_check = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
|
343
362
|
# p "echeck " + e_check.to_s
|
@@ -351,9 +370,22 @@ class CodeTerminator::Html
|
|
351
370
|
check_original_pointer = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
|
352
371
|
|
353
372
|
check_add_pointer = css_code_checked.select {|element| element[:pointer].to_s == tag.pointer_id.to_s }
|
354
|
-
|
373
|
+
# p "check_add " + check_add_pointer.to_s
|
355
374
|
#look for same tags in code
|
375
|
+
# p "elements_count"
|
376
|
+
# p elements_count
|
377
|
+
|
356
378
|
if check_original_pointer.count == 0
|
379
|
+
# p "pasa"
|
380
|
+
# # if tag.attributes.nil?
|
381
|
+
# # p "CON ATRIBUTOS"
|
382
|
+
# # else
|
383
|
+
# # p elements_count.to_s
|
384
|
+
# p "element " +e[:tag].to_s
|
385
|
+
# p "e pointer "+e[:pointer].to_s
|
386
|
+
# p "e parent pointer "+e[:parent_pointer].to_s
|
387
|
+
|
388
|
+
# end
|
357
389
|
if check_add_pointer.count < 1
|
358
390
|
element_checked = Hash.new
|
359
391
|
element_checked[:pointer] = tag.pointer_id
|
@@ -362,8 +394,11 @@ class CodeTerminator::Html
|
|
362
394
|
element_checked[:original_parent_pointer] = e[:parent_pointer]
|
363
395
|
css_code_checked << element_checked
|
364
396
|
|
365
|
-
|
366
|
-
|
397
|
+
# the_element = elements_count.select {|element| element[:tag].to_s == e[:tag].to_s && element[:parent_pointer].to_s == e[:parent_pointer].to_s}.first
|
398
|
+
the_element = elements_count.select {|element| element[:tag].to_s == e[:tag].to_s && element[:pointer].to_s == e[:parent_pointer].to_s}.first
|
399
|
+
|
400
|
+
# p "the element " + the_element.to_s
|
401
|
+
the_element[:count] += 1 if the_element
|
367
402
|
end
|
368
403
|
end
|
369
404
|
# end
|
@@ -409,13 +444,24 @@ class CodeTerminator::Html
|
|
409
444
|
else
|
410
445
|
if tag.attribute(e[:attribute]).value != e[:value]
|
411
446
|
exist_in_body << false
|
412
|
-
# p "
|
447
|
+
# p "value " + e[:value]
|
448
|
+
tag_attribute = tag.attribute(e[:attribute]).name
|
449
|
+
tag_attribute_value = tag.attribute(e[:attribute]).value
|
450
|
+
# p "type " + e[:tag] + " with attribute " + e[:attribute] + " value " + e[:value]
|
413
451
|
# Check if the img have attribute src and value is null, the user can write whatever image he wants
|
414
|
-
|
415
|
-
|
452
|
+
# p exist_value
|
453
|
+
if !(e[:tag] == "img" && (e[:attribute] == tag_attribute) && e[:value] == "")
|
454
|
+
if (!exist_value.include? tag_attribute_value and !exist_value.include? e[:value])
|
455
|
+
exist_in_body << false
|
456
|
+
error333 = new_error(element: e, type: 333, description: "Make sure that the attribute #{e[:attribute]} in `<#{e[:tag]}>` has the value #{e[:value]}")
|
457
|
+
end
|
458
|
+
# html_errors << error333 if error333
|
459
|
+
else
|
460
|
+
|
416
461
|
end
|
417
462
|
else
|
418
463
|
# p "add code_checked"
|
464
|
+
exist_value << e[:value]
|
419
465
|
# css_code_checked << element_checked
|
420
466
|
exist_in_body << true
|
421
467
|
end
|
@@ -427,7 +473,7 @@ class CodeTerminator::Html
|
|
427
473
|
# Check that tags exist within parent tags
|
428
474
|
if tag.first.respond_to? :parent
|
429
475
|
|
430
|
-
p "check if exists in parent tags"
|
476
|
+
# p "check if exists in parent tags"
|
431
477
|
|
432
478
|
# e_check4 = css_code_checked.select {|element| element[:pointer].to_s == e[:pointer].to_s }
|
433
479
|
# e_check5 = css_code_checked.select {|element| element[:target_parent_pointer].to_s == e[:parent_pointer].to_s }
|
@@ -453,31 +499,66 @@ class CodeTerminator::Html
|
|
453
499
|
|
454
500
|
# end #end tag
|
455
501
|
|
456
|
-
|
457
502
|
if exist_in_body && !exist_in_body.include?(true) && error333
|
458
503
|
html_errors << error333
|
459
504
|
end
|
505
|
+
|
506
|
+
# if exist_in_body && !exist_in_body.include?(true) && error333
|
507
|
+
# html_errors << error333
|
508
|
+
# end
|
509
|
+
|
460
510
|
exist_in_body = []
|
511
|
+
error333 = nil
|
512
|
+
# exist_value = []
|
461
513
|
|
462
514
|
end
|
463
515
|
|
464
516
|
end
|
465
517
|
|
466
|
-
|
518
|
+
# p "elements_count = " + elements_count.group_by{|h| h[:parent_pointer]}.to_s
|
519
|
+
|
520
|
+
# p "elements_count2 = "
|
521
|
+
grouped_elements = elements_count.select {|element| element[:count] > 0}.group_by { |s| [s[:parent_pointer], s[:tag]] }
|
467
522
|
|
468
|
-
|
523
|
+
grouped_elements.each do |x|
|
469
524
|
#filtrar por parent
|
470
|
-
#
|
471
|
-
|
525
|
+
#tag_count = code.css(x[:tag]).length
|
526
|
+
tag_count = elements.select {|element| element[:parent_pointer].to_s == x[0][0].to_s && element[:tag].to_s == x[0][1]}
|
527
|
+
# p "group="+tag_count.group_by{|h| h[:parent_pointer]}.values.to_s
|
528
|
+
# p result=Hash[tag_count.group_by{|x|x}.map{|k,v| [k,v.size]}]
|
529
|
+
p "tag" + x.to_s
|
530
|
+
p "tag count " + tag_count.count.to_s
|
531
|
+
p "grouped" + x.to_s
|
532
|
+
p "grouped count " + x[1].first[:count].to_s
|
533
|
+
(p "div count " + x[1][0].count.to_s) if x[0][1]=="div"
|
534
|
+
|
535
|
+
# p tag_count = elements.select {|element| element[:pointer].to_s == x[:pointer].to_s && element[:tag].to_s == x[:tag]}.count
|
472
536
|
# p x[:tag]!="body"
|
473
|
-
if tag_count >= 1 && !(x[
|
537
|
+
if tag_count.count >= 1 && !(x[0][1]=="body" || x[0][1]=="head" || x[0][1]=="text" || x[0][1]=="comment")
|
474
538
|
# if tag_count >= 1 && !(x[:tag]!="div")
|
475
|
-
|
476
|
-
|
539
|
+
if x[0][1]=="div"
|
540
|
+
if x[1][0].count.to_i < tag_count.count
|
541
|
+
html_errors << new_error(element: x[0][1], type: 404, description: "Remember to add the `<#{x[0][1]}>` tag")
|
542
|
+
end
|
543
|
+
else
|
544
|
+
if x[1].first[:count] < tag_count.count
|
545
|
+
html_errors << new_error(element: x[0][1], type: 404, description: "Remember to add the `<#{x[0][1]}>` tag")
|
477
546
|
end
|
547
|
+
end
|
478
548
|
end
|
479
549
|
end
|
480
550
|
|
551
|
+
# grouped_elements_null = elements_count.select {|element| element[:count] == 0}.group_by { |s| [s[:parent_pointer], s[:tag]] }
|
552
|
+
#
|
553
|
+
# grouped_elements_null.each do |nulls|
|
554
|
+
# if !(nulls[0][1]=="body" || nulls[0][1]=="head" || nulls[0][1]=="text" || nulls[0][1]=="comment")
|
555
|
+
# # if tag_count >= 1 && !(x[:tag]!="div")
|
556
|
+
# # if x[1].count < tag_count.count
|
557
|
+
# html_errors << new_error(element: nulls[0][1], type: 404, description: "Remember to add the `<#{nulls[0][1]}>` tag")
|
558
|
+
# # end
|
559
|
+
# end
|
560
|
+
# end
|
561
|
+
p elements_count
|
481
562
|
html_errors
|
482
563
|
|
483
564
|
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.6
|
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-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|