code_terminator 0.5.6 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8616d6be2d7e6877e6722e3cb0faf9b4be699fd
4
- data.tar.gz: 261e03e5d01a646653eb7d3202202c66d272fc6c
3
+ metadata.gz: 986026e1b23cb931e122837f5e2c9ffc298e3818
4
+ data.tar.gz: 2d13072f71055e8e2c188078f6317ba78196b3da
5
5
  SHA512:
6
- metadata.gz: f2d107298c0cf414e01edb594af73d21425c141be949d51439be1056cb899e489d798f3315133c7fd2dd07191614ca2df603e8416c8f4578bad428c1ec31335d
7
- data.tar.gz: 0cb8ea6db083a884cd12bc9bba9d8df39afdb34dc6f1e7ef5115fbc004ead06b15209458662fe34ed61c6a9d59e9a82bc924454e60490e8bace2599d92ad744e
6
+ metadata.gz: b02faf723eb6f4e8898d8ebf061e12c18eb2b0ad51cd111d9e91c144066948fb6c4908574a63e0693d8a2777285b22b78484e15e8ccee57ea3be889918de19d0
7
+ data.tar.gz: c54040e0e49c5b85784a1a59a7037943412fe38187ef951f6f57ad19413cce59148c3522f9978af3270295cf83f9b3aa13ca32ea67b9ba3b280a7508b465540f
@@ -0,0 +1,5 @@
1
+ body {
2
+ background-image: ;
3
+ background-color: lightblue;
4
+
5
+ }
@@ -0,0 +1,5 @@
1
+ body {
2
+ background-image: url('paper.jpg');
3
+ background-color: lightblue;
4
+
5
+ }
@@ -0,0 +1 @@
1
+ #border{border-color:green; border-style:solid;}
@@ -0,0 +1,5 @@
1
+ ul{
2
+ width:;
3
+ height:;
4
+ background-color:;
5
+ }
@@ -0,0 +1,16 @@
1
+ img{
2
+ background-color:blue;
3
+ padding: 3px;
4
+ }
5
+
6
+ h1{
7
+ margin:0px;
8
+ background-color:red;
9
+ padding: 3px;
10
+ }
11
+
12
+ p{
13
+ margin:0px;
14
+ background-color:green;
15
+ padding: 3px;
16
+ }
@@ -208,16 +208,36 @@ class CodeTerminator::Css
208
208
  parser.load_string!(code)
209
209
  elements.each do |e|
210
210
  item = e[:selector]
211
- if !e[:property].nil?
211
+ if e[:property]
212
212
  property = e[:property]
213
213
  parser_array = parser.find_by_selector(item)
214
214
  if parser_array.any?
215
+ # p "array " + parser_array.to_s
215
216
  parser_property = parser_array[0].split(";")
216
- parser_property.each {|a| a.strip! if a.respond_to? :strip! }
217
+ # p "array split" + parser_property.to_s
217
218
 
219
+ search_results = parser_property.select { |key| key.include?(property) }
220
+ if search_results.empty?
221
+ css_errors << new_error(element: e, type: 111, description: "Make sure the property _#{property}_ is in the selector **#{item}**")
222
+ end
223
+
224
+
225
+ # parser_property.each do |pp|
226
+ # p "include " + pp.include?(property).to_s
227
+ # if !pp.include?(property)
228
+ # css_errors << new_error(element: e, type: 111, description: "Make sure the property _#{property}_ is in the selector **#{item}**")
229
+ # end
230
+ # end
231
+
232
+
233
+ parser_property.each {|a| a.strip! if a.respond_to? :strip! }
234
+
235
+
236
+ # p "value:" + e[:value]
218
237
  if e[:value]==""
219
238
  property = e[:property] + ": "
220
- if parser_property.empty? { |s| s.include?(property) }
239
+ # p "parser property: " + parser_property.to_s
240
+ if parser_property.empty?
221
241
  css_errors << new_error(element: e, type: 111, description: "Make sure the property _#{property}_ is in the selector **#{item}**")
222
242
  end
223
243
  else
@@ -131,13 +131,6 @@ 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
141
134
  child.attribute_nodes.each do |element_attribute|
142
135
  node = Hash.new
143
136
  node[:parent] = "body"
@@ -303,7 +296,6 @@ class CodeTerminator::Html
303
296
 
304
297
 
305
298
  exist_in_body = Array.new
306
- exist_value = Array.new
307
299
 
308
300
  error_elements = Array.new
309
301
 
@@ -316,25 +308,15 @@ class CodeTerminator::Html
316
308
 
317
309
 
318
310
  elements.each do |e|
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
311
+
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
+ error_element = Hash.new
314
+ error_element[:tag] = e[:tag]
315
+ error_element[:pointer] = e[:pointer]
316
+ error_element[:parent_pointer] = e[:parent_pointer]
317
+ error_element[:count] = 0
318
+ elements_count << error_element
319
+ end
338
320
 
339
321
  item = e[:tag]
340
322
 
@@ -356,7 +338,6 @@ class CodeTerminator::Html
356
338
  #item class is different to text or comment
357
339
 
358
340
  code.css(e[:tag]).each do |tag|
359
- p "tag " + tag.to_s
360
341
  tag_element = nil
361
342
  e_check = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
362
343
  # p "echeck " + e_check.to_s
@@ -370,22 +351,9 @@ class CodeTerminator::Html
370
351
  check_original_pointer = css_code_checked.select {|element| element[:original_pointer].to_s == e[:pointer].to_s }
371
352
 
372
353
  check_add_pointer = css_code_checked.select {|element| element[:pointer].to_s == tag.pointer_id.to_s }
373
- # p "check_add " + check_add_pointer.to_s
374
- #look for same tags in code
375
- # p "elements_count"
376
- # p elements_count
377
354
 
355
+ #look for same tags in code
378
356
  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
389
357
  if check_add_pointer.count < 1
390
358
  element_checked = Hash.new
391
359
  element_checked[:pointer] = tag.pointer_id
@@ -394,11 +362,8 @@ class CodeTerminator::Html
394
362
  element_checked[:original_parent_pointer] = e[:parent_pointer]
395
363
  css_code_checked << element_checked
396
364
 
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
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
402
367
  end
403
368
  end
404
369
  # end
@@ -444,24 +409,13 @@ class CodeTerminator::Html
444
409
  else
445
410
  if tag.attribute(e[:attribute]).value != e[:value]
446
411
  exist_in_body << false
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]
412
+ # p "type " + e[:tag] + " with attribute " + e[:attribute] + " value " + e[:value]
451
413
  # Check if the img have attribute src and value is null, the user can write whatever image he wants
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
-
414
+ if !(e[:tag] == "img" && e[:attribute] == "src" && e[:value] == "")
415
+ error333 = new_error(element: e, type: 333, description: "Make sure that the attribute #{e[:attribute]} in `<#{e[:tag]}>` has the value #{e[:value]}")
461
416
  end
462
417
  else
463
418
  # p "add code_checked"
464
- exist_value << e[:value]
465
419
  # css_code_checked << element_checked
466
420
  exist_in_body << true
467
421
  end
@@ -473,7 +427,7 @@ class CodeTerminator::Html
473
427
  # Check that tags exist within parent tags
474
428
  if tag.first.respond_to? :parent
475
429
 
476
- # p "check if exists in parent tags"
430
+ p "check if exists in parent tags"
477
431
 
478
432
  # e_check4 = css_code_checked.select {|element| element[:pointer].to_s == e[:pointer].to_s }
479
433
  # e_check5 = css_code_checked.select {|element| element[:target_parent_pointer].to_s == e[:parent_pointer].to_s }
@@ -499,66 +453,31 @@ class CodeTerminator::Html
499
453
 
500
454
  # end #end tag
501
455
 
456
+
502
457
  if exist_in_body && !exist_in_body.include?(true) && error333
503
458
  html_errors << error333
504
459
  end
505
-
506
- # if exist_in_body && !exist_in_body.include?(true) && error333
507
- # html_errors << error333
508
- # end
509
-
510
460
  exist_in_body = []
511
- error333 = nil
512
- # exist_value = []
513
461
 
514
462
  end
515
463
 
516
464
  end
517
465
 
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]] }
466
+ # p elements_count.to_s
522
467
 
523
- grouped_elements.each do |x|
468
+ elements_count.each do |x|
524
469
  #filtrar por parent
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
470
+ # tag_count = code.css(x[:tag]).length
471
+ tag_count = elements.select {|element| element[:parent_pointer].to_s == x[:parent_pointer].to_s && element[:tag].to_s == x[:tag]}.count
536
472
  # p x[:tag]!="body"
537
- if tag_count.count >= 1 && !(x[0][1]=="body" || x[0][1]=="head" || x[0][1]=="text" || x[0][1]=="comment")
473
+ if tag_count >= 1 && !(x[:tag]=="body" || x[:tag]=="head" || x[:tag]=="text" || x[:tag]=="comment" || x[:tag]=="img")
538
474
  # if tag_count >= 1 && !(x[:tag]!="div")
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")
475
+ if x[:count] < tag_count
476
+ html_errors << new_error(element: x[:tag], type: 404, description: "Remember to add the `<#{x[:tag]}>` tag")
546
477
  end
547
- end
548
478
  end
549
479
  end
550
480
 
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
562
481
  html_errors
563
482
 
564
483
  end
@@ -1,3 +1,3 @@
1
1
  module CodeTerminator
2
- VERSION = "0.5.6"
2
+ VERSION = "0.5.7"
3
3
  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.6
4
+ version: 0.5.7
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-26 00:00:00.000000000 Z
11
+ date: 2017-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -156,6 +156,11 @@ files:
156
156
  - bin/setup
157
157
  - code_terminator.gemspec
158
158
  - exe/code_terminator
159
+ - exercises/css/lesson0.css
160
+ - exercises/css/lesson0_w.css
161
+ - exercises/css/lesson1_1.css
162
+ - exercises/css/lesson1_2.css
163
+ - exercises/css/lesson1_5.css
159
164
  - exercises/get_elements.html
160
165
  - exercises/html/check_body_tag_exist.html
161
166
  - exercises/html/check_comment_empty.html