jeanny 0.96.3 → 0.98
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.
- data/README.md +44 -0
- data/lib/jeanny/engine.rb +7 -6
- metadata +3 -3
- data/README +0 -35
data/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#Jeanny
|
|
2
|
+
|
|
3
|
+
Библиотека для сокращения имён css классов.
|
|
4
|
+
|
|
5
|
+
##Пример использования
|
|
6
|
+
|
|
7
|
+
#!/usr/bin/env ruby
|
|
8
|
+
|
|
9
|
+
require 'rubygems'
|
|
10
|
+
require 'jeanny'
|
|
11
|
+
|
|
12
|
+
include Jeanny::Sugar
|
|
13
|
+
|
|
14
|
+
analyze('serp/css/_*.css', :compare_with => 'classes.saved') and save
|
|
15
|
+
|
|
16
|
+
group :html, :title => 'replacing in template files' do
|
|
17
|
+
replace :in => 'serp/static/*.html'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
group :css, :title => 'replacing in stylesheets' do
|
|
21
|
+
replace :include => ['serp/css/_*.css', 'serp/block/*/*.css']
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
group :js, :title => 'replacing in scripts' do
|
|
25
|
+
replace :in => 'serp/js/_serp.js'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
##Ещё один пример
|
|
29
|
+
#!/usr/bin/env ruby
|
|
30
|
+
|
|
31
|
+
require 'rubygems'
|
|
32
|
+
require 'jeanny'
|
|
33
|
+
|
|
34
|
+
j = Jeanny::Engine.new
|
|
35
|
+
j.analyze '.l-head { ... } .l-head__l, .l-head__r { ... } .z-colors { ololo } .z-colors__text { blah-blah-blah... }'
|
|
36
|
+
|
|
37
|
+
data = '<div class = "l-head"><div class = "l-head__l">Left</div><div class = "l-head__r">Right</div></div><div class = "z-colors"><div class = "z-colors__text">Colors Wizard</div></div>'
|
|
38
|
+
puts j.replace data, :html
|
|
39
|
+
|
|
40
|
+
# На выходе будет:
|
|
41
|
+
# => <div class="a"><div class="d">Left</div><div class="e">Right</div></div><div class="b"><div class="f">Colors Wizard</div></div>
|
|
42
|
+
|
|
43
|
+
##Установка
|
|
44
|
+
sudo gem sources -a http://gemcutter.org && sudo gem install jeanny
|
data/lib/jeanny/engine.rb
CHANGED
|
@@ -435,7 +435,7 @@ module Jeanny
|
|
|
435
435
|
def replace classes
|
|
436
436
|
|
|
437
437
|
tags = []
|
|
438
|
-
@code.gsub! /\[%(.*?)%\]/
|
|
438
|
+
@code.gsub! /\[%(.*?)%\]/ do |tag|
|
|
439
439
|
tags << $1
|
|
440
440
|
|
|
441
441
|
"__tt2-tag__#{tags.length}__"
|
|
@@ -446,8 +446,8 @@ module Jeanny
|
|
|
446
446
|
tags.map! do |tag|
|
|
447
447
|
|
|
448
448
|
# Пропускаем конструкции в которых точно ничего нет
|
|
449
|
-
|
|
450
|
-
each_string :in => tag
|
|
449
|
+
unless tag =~ /^\s*(#|BLOCK|PROCESS|INCLUDE|INSERT|END\s*$|ELSE\s*$)/im
|
|
450
|
+
each_string :in => tag do |string|
|
|
451
451
|
unless string =~ /\.(tt2|css|js|png|jpg|gif)\s*$/
|
|
452
452
|
string_after = string.dup
|
|
453
453
|
classes.each do |full_class, short_class|
|
|
@@ -455,10 +455,11 @@ module Jeanny
|
|
|
455
455
|
string_after[pos, full_class.length] = short_class
|
|
456
456
|
end
|
|
457
457
|
end
|
|
458
|
-
tag.
|
|
458
|
+
tag = tag.sub string, string_after
|
|
459
459
|
end
|
|
460
|
+
tag
|
|
460
461
|
end
|
|
461
|
-
|
|
462
|
+
end
|
|
462
463
|
tag
|
|
463
464
|
end
|
|
464
465
|
|
|
@@ -480,7 +481,7 @@ module Jeanny
|
|
|
480
481
|
|
|
481
482
|
value = ''
|
|
482
483
|
status = :in_code
|
|
483
|
-
scanner = StringScanner.new args[:in] || ''
|
|
484
|
+
scanner = StringScanner.new args[:in].dup || ''
|
|
484
485
|
|
|
485
486
|
until scanner.eos?
|
|
486
487
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jeanny
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: "0.98"
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- gfranco
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date:
|
|
12
|
+
date: 2010-02-02 00:00:00 +02:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|
|
@@ -22,7 +22,7 @@ extensions: []
|
|
|
22
22
|
extra_rdoc_files: []
|
|
23
23
|
|
|
24
24
|
files:
|
|
25
|
-
- README
|
|
25
|
+
- README.md
|
|
26
26
|
- lib/jeanny.rb
|
|
27
27
|
- lib/jeanny/engine.rb
|
|
28
28
|
- lib/jeanny/sugar.rb
|
data/README
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Jeanny GEM
|
|
2
|
-
---------------------
|
|
3
|
-
|
|
4
|
-
Usage:
|
|
5
|
-
|
|
6
|
-
#!/usr/bin/env ruby
|
|
7
|
-
|
|
8
|
-
require 'rubygems'
|
|
9
|
-
require 'jeanny'
|
|
10
|
-
|
|
11
|
-
include Jeanny::Sugar
|
|
12
|
-
|
|
13
|
-
analyze('serp/css/_*.css', :compare_with => 'classes.saved') and save
|
|
14
|
-
|
|
15
|
-
group :css, :title => 'replacing in stylesheets' do
|
|
16
|
-
replace :include => ['serp/css/_*.css', 'serp/block/*/*.css']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
group :js, :title => 'replacing in scripts' do
|
|
20
|
-
replace :in => 'serp/js/_serp.js'
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
group :html, :title => 'replacing in template files' do
|
|
24
|
-
replace :in => 'serp/static/*.html'
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
===О чём речь?===
|
|
29
|
-
Jeanny — библиотека для обфускации имен css классов. Следует учесть, что это именно библиотека, а не отдельная тулза, т.е. jeanny сама по себе ничего не делает.
|
|
30
|
-
Чтобы заставить её работать, необходимо написать скрипт в котором будет указано, что и где она (jeanny) должна делать.
|
|
31
|
-
|
|
32
|
-
Библиотека написана на Ruby, следовательно на "машине" должен быть установлен его интерпретатор. На MacOS X все установлено по-умолчанию.
|
|
33
|
-
В unix-like операционных системах тоже можно легко установить Ruby (TODO: написать как устанавливать). Для Windows существует One-click installer.
|
|
34
|
-
|
|
35
|
-
===Установка===
|