jeanny 0.96 → 0.96.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README +35 -0
- data/lib/jeanny/engine.rb +6 -7
- metadata +3 -3
- data/README.md +0 -44
data/README
ADDED
@@ -0,0 +1,35 @@
|
|
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
|
+
===Установка===
|
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! /\[%(.*?)%\]/ do |tag|
|
438
|
+
@code.gsub! /\[%(.*?)%\]/m 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
|
-
unless tag =~ /^\s*(#|BLOCK|PROCESS|INCLUDE|INSERT
|
450
|
-
each_string :in => tag do |string|
|
449
|
+
#unless tag =~ /^\s*(#|BLOCK|PROCESS|INCLUDE|INSERT)/im
|
450
|
+
each_string :in => tag.dup 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,11 +455,10 @@ module Jeanny
|
|
455
455
|
string_after[pos, full_class.length] = short_class
|
456
456
|
end
|
457
457
|
end
|
458
|
-
tag
|
458
|
+
tag.gsub! string, string_after
|
459
459
|
end
|
460
|
-
tag
|
461
460
|
end
|
462
|
-
end
|
461
|
+
#end
|
463
462
|
tag
|
464
463
|
end
|
465
464
|
|
@@ -481,7 +480,7 @@ module Jeanny
|
|
481
480
|
|
482
481
|
value = ''
|
483
482
|
status = :in_code
|
484
|
-
scanner = StringScanner.new args[:in]
|
483
|
+
scanner = StringScanner.new args[:in] || ''
|
485
484
|
|
486
485
|
until scanner.eos?
|
487
486
|
|
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:
|
4
|
+
version: 0.96.3
|
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: 2009-12-01 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
|
26
26
|
- lib/jeanny.rb
|
27
27
|
- lib/jeanny/engine.rb
|
28
28
|
- lib/jeanny/sugar.rb
|
data/README.md
DELETED
@@ -1,44 +0,0 @@
|
|
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
|