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.
Files changed (4) hide show
  1. data/README.md +44 -0
  2. data/lib/jeanny/engine.rb +7 -6
  3. metadata +3 -3
  4. 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! /\[%(.*?)%\]/m do |tag|
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
- #unless tag =~ /^\s*(#|BLOCK|PROCESS|INCLUDE|INSERT)/im
450
- each_string :in => tag.dup do |string|
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.gsub! string, string_after
458
+ tag = tag.sub string, string_after
459
459
  end
460
+ tag
460
461
  end
461
- #end
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.96.3
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: 2009-12-01 00:00:00 +02:00
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
- ===Установка===