hscrubber 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +58 -18
  2. data/lib/hscrubber/version.rb +1 -1
  3. metadata +3 -3
data/README.md CHANGED
@@ -8,19 +8,28 @@ HScrubber is HTML reha engine, and it allows filtering an input flow according t
8
8
  ## Объясненіе рѣхи (Description of reha filter)
9
9
 
10
10
  Рѣха задаётся въ видѣ YAML-документа. На самомъ верхнемъ уровнѣ описываются мѣты (HTML tags), допустимыя въ выходномъ документѣ. Слѣдующій уровень задаётъ допустимыя свойства (attributes) для опредѣлённой мѣты, а также ключи, управляющія мѣтою и её содержимымъ. Возможныя ключи и их значенія суть такія:
11
+
11
12
  * '%' содержимое мѣты будетъ очищено, если оно подпадаетъ подъ заданное въ значеніи ключа правило;
13
+
12
14
  * '-' мѣта удаляется въ томъ случаѣ, если её содержимое подпадаетъ подъ заданное въ значеніи ключа правило;
15
+
13
16
  * '^' содержимое мѣты добавляется къ содержимому родителькой мѣты въ томъ случаѣ, если содержимое сей мѣты подпадаетъ подъ правило, или если правило не задано.
17
+
14
18
  Ключи здѣ расположены въ порядкѣ первичности ихъ провѣрки. Каджый изъ нихъ обязательно предваряется символомъ '@'
15
19
 
16
20
  Reha is set up as an YAML-document. The allowed in an output flow HTML tags is described at the top level of the document. The following level described allowed attributes of the specified tag, and also rule keys that controls the tag and ots containment. The keys, and its values are the following:
21
+
17
22
  * '%' declares that the containment of the tag will be cleaned up, if it matches to the specified rule;
23
+
18
24
  * '-' a tag will be removed, if its containment matches to the specified rule;
25
+
19
26
  * '^' containment of a tag will be added to containment of the parent tag, if containment of the tag matches to the specified rule, or if the rule isn't defined.
27
+
20
28
  The keys are ranged according to priority their analysing. The '@' symbol necessarily outruns each of the keys.
21
29
 
22
30
  ## Примѣръ (Sample)
23
31
  Примѣрный шаблонъ файла рѣхи представленъ нижѣ:
32
+
24
33
  Sample reha template is described as follows:
25
34
 
26
35
  ---
@@ -39,26 +48,57 @@ Sample reha template is described as follows:
39
48
  @-: ^[.,:;!?\s]*$
40
49
 
41
50
  Поясненія:
42
- * Мѣта 'i' не имѣетъ допустимыхъ ключей, и они будутъ удалены изъ входного потока. Въ случаѣ, если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать.
43
- Примѣры:
44
- * <i id="i_id">Text</i> -> <i>Text</i>
45
- * <font>Text<i>?</i></font> -> <font>Text</font>
46
-
47
- * Допустимыми ключами для мѣты 'font' являются 'face' и 'size'. Въ случаѣ, если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать, а если правилу очищенія, то её содержимое станетъ порожнимъ.
48
- Примѣры:
49
- * <font size="5" color="blue">Text</font> -> <font size="5">Text</font>
50
- * <i>Text<font> </font></i> -> <i>Text</i>
51
- * <i>Text<font>??</font></i> -> <i>Text<font></font></i>
52
-
53
- * Допустимыя ключи для мѣты 'span' отсутствуютъ, и въ случаѣ ихъ обнаруженія въ входномъ потокѣ они будутъ вырѣзаны изъ него. Если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать какъ таковая. Въ остальныхъ же случаяхъ её содержимое будетъ добавлено къ мѣтѣ родительской.
54
- Примѣры:
55
- * <span id="span_id">Text</span> -> <span>Text</span>
56
- * <i>Text<span>?</span></i> -> <i>Text</i>
51
+
52
+ Мѣта 'i' не имѣетъ допустимыхъ ключей, и они будутъ удалены изъ входного потока. Въ случаѣ, если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать. Примѣры:
53
+
54
+ <i id="i_id">Text</i> -> <i>Text</i>
55
+ <font>Text<i>?</i></font> -> <font>Text</font>
56
+
57
+ Допустимыми ключами для мѣты 'font' являются 'face' и 'size'. Въ случаѣ, если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать, а если правилу очищенія, то её содержимое станетъ порожнимъ. Примѣры:
58
+
59
+ <font size="5" color="blue">Text</font> -> <font size="5">Text</font>
60
+ <i>Text<font> </font></i> -> <i>Text</i>
61
+ <i>Text<font>??</font></i> -> <i>Text<font></font></i>
62
+
63
+ Допустимыя ключи для мѣты 'span' отсутствуютъ, и въ случаѣ ихъ обнаруженія въ входномъ потокѣ они будутъ вырѣзаны изъ него. Если содержимое мѣты удовлѣтворяетъ правилу удаления, на выходѣ сія мѣта будетъ отсутствовать какъ таковая. Въ остальныхъ же случаяхъ её содержимое будетъ добавлено къ мѣтѣ родительской. Примѣры:
64
+
65
+ <span id="span_id">Text</span> -> <span>Text</span>
66
+ <i>Text<span>?</span></i> -> <i>Text</i>
57
67
 
58
68
  Descriptions:
59
- * Tag 'i' hasn't allowable attributes, so them will be removed from an output stream. In case, the tag containment meets a remove rule, the tag will be absent in the output;
60
- * Allowable attributes for the 'font' tag are 'face', and 'size'. In case, if the tag containment meets a remove rule, the tag will be absent in the output, and if meets a cleanup rule, the containment will be purged;
61
- * Tag 'span' hasn't allowable attributes, so them will be removed from an output stream. In case, the tag containment meets a remove rule, the tag will be absent in the output as it is. In other cases, its containment will be added to a parent tag.
69
+
70
+ Tag 'i' hasn't allowable attributes, so them will be removed from an output stream. In case, the tag containment meets a remove rule, the tag will be absent in the output;
71
+
72
+ Allowable attributes for the 'font' tag are 'face', and 'size'. In case, if the tag containment meets a remove rule, the tag will be absent in the output, and if meets a cleanup rule, the containment will be purged;
73
+
74
+ Tag 'span' hasn't allowable attributes, so them will be removed from an output stream. In case, the tag containment meets a remove rule, the tag will be absent in the output as it is. In other cases, its containment will be added to a parent tag.
75
+
76
+ ## Использованіе (Usage)
77
+ Суть 2 способа испозованія пакета въ ruby-приложеніяхъ.
78
+
79
+ ### Используя методъ экземпляра класса (Using the class instance method)
80
+ Создай экземпляръ класса, передавъ конструктору рѣху загруженную въ видѣ строки или IO-класса, а затѣмъ прорѣши HTML-документъ:
81
+
82
+ Make a class instance, passing a reha to its initialize function. The reha must be loaded as a String, or an IO class. Then filter a HTML:
83
+
84
+ рѣха = IO.read('.рѣха.yml.sample')
85
+ hs = HScrubber.new(рѣха)
86
+
87
+ html = IO.read('sample.html').gsub(/\r/, '')
88
+ new_html = hs.scrub_html(html)
89
+
90
+ puts html
91
+
92
+ ### Используя методъ класса (Using the class method)
93
+ Можно прорѣшить HTML-документъ и не создавая экземпляръ класса. Тогда дѣлай такъ:
94
+
95
+ We able to filter the HTML-document without a class instance creation. Do as follows:
96
+
97
+ рѣха = IO.read('.рѣха.yml.sample')
98
+ html = IO.read('sample.html').gsub(/\r/, '')
99
+ new_html = HScrubber.scrub_html(html, рѣха)
100
+
101
+ puts html
62
102
 
63
103
  # Права (Copyright)
64
104
 
@@ -1,3 +1,3 @@
1
1
  class HScrubber
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hscrubber
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - !binary |