milk1000cc-tiny_css 0.11 → 0.12

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -0,0 +1,62 @@
1
+ TinyCss
2
+ =======
3
+
4
+ a ruby module to read and write .css stylesheets
5
+
6
+
7
+ Usage
8
+ =====
9
+
10
+ # In your .css file
11
+ H1 { color: blue }
12
+ H2 { color: red; font-family: Arial }
13
+ .this, .that { color: yellow }
14
+
15
+ # In your program
16
+ require 'tiny_css'
17
+
18
+ # Create a CSS stylesheet
19
+ css = TinyCss.new
20
+
21
+ # Open a CSS stylesheet
22
+ css = css.read('style.css')
23
+
24
+ # Reading properties
25
+ # (key is coverted to string, so you can access same value by symbol)
26
+ header_color = css.style['h1']['color']
27
+ css.style['h2'].each { |property, value| p "#{ property }: #{ value }" }
28
+ this_color = css.style[:this][:color]
29
+ that_color = css.style[:that][:color]
30
+
31
+ # Changing styles and properties
32
+ css.style['.newstyle']['color'] = '#FFFFFF' # Add a style
33
+ css.style['h1']['color'] = 'black' # Change a property
34
+ css.style['h2'].delete # Delete a style
35
+
36
+ # Save a CSS stylesheet
37
+ css.write 'style.css' # Sort selectors and properties
38
+ css.write 'style.css', false # Don't sort
39
+
40
+
41
+ Install
42
+ =======
43
+
44
+ git clone git://github.com/milk1000cc/tiny_css.git
45
+
46
+ or
47
+
48
+ sudo gem install milk1000cc-tiny_css --source=http://gems.github.com
49
+
50
+
51
+ Caution
52
+ =======
53
+
54
+ TinyCss#style doesn't return Hash object but TinyCss::OrderedHash, and TinyCss::OrderedHash class doesn't inherit Hash object.
55
+
56
+ I'm Japanese, and I'm not goot at English and Ruby, so please see the source code and edit them.
57
+
58
+
59
+ Author
60
+ ======
61
+
62
+ milk1000cc <info@milk1000.cc>
@@ -22,6 +22,12 @@ module TinyCss
22
22
  self.keys << key unless self.keys.include?(key)
23
23
  end
24
24
 
25
+ def delete(key, &block)
26
+ key = key.to_s
27
+ self.keys.delete key
28
+ @hash.delete key, &block
29
+ end
30
+
25
31
  def dup
26
32
  dup = super
27
33
  dup.keys = self.keys.dup
@@ -1,6 +1,36 @@
1
1
  require File.dirname(__FILE__) + '/../lib/tiny_css'
2
2
  include TinyCss
3
3
 
4
+ describe Base, '削除に関して' do
5
+ before do
6
+ @css = TinyCss.new.read_string('h1, p { color: red; background: blue; }')
7
+ end
8
+
9
+ it 'セレクタを削除したら、style.keys にそのセレクタが含まれていないこと' do
10
+ @css.style.keys.should include('h1')
11
+ @css.style.delete 'h1'
12
+ @css.style.keys.should_not include('h1')
13
+ end
14
+
15
+ it 'セレクタを削除したら、write_string の結果にもそのセレクタが含まれていないこと' do
16
+ @css.style.delete 'h1'
17
+ @css.write_string.should == "p {\n\tbackground: blue;\n\tcolor: red;\n}\n"
18
+ end
19
+
20
+ it 'プロパティを削除したら、style[セレクタ].keys にそのプロパティが' +
21
+ '含まれていないこと' do
22
+ @css.style['h1'].keys.should include('color')
23
+ @css.style['h1'].delete 'color'
24
+ @css.style['h1'].keys.should_not include('color')
25
+ end
26
+
27
+ it 'プロパティを削除したら、write_string の結果にも反映されていること' do
28
+ @css.style['h1'].delete 'color'
29
+ @css.write_string.should == "p {\n\tbackground: blue;\n\tcolor: red;\n}\n" +
30
+ "h1 {\n\tbackground: blue;\n}\n"
31
+ end
32
+ end
33
+
4
34
  describe Base, 'CSS 文字列を指定してパースするとき' do
5
35
  before do
6
36
  @css1 = TinyCss.new.read_string('h3 { color: red; }')
@@ -62,6 +62,64 @@ describe OrderedHash, '#dup について' do
62
62
  end
63
63
  end
64
64
 
65
+ describe OrderedHash, '#delete について' do
66
+ before(:each) do
67
+ @oh = OrderedHash.new
68
+ @oh['foo'] = 3
69
+ end
70
+
71
+ it '存在するキーに対する関連を取り除いた場合は、取り除かれた値を返すこと' do
72
+ result = @oh.delete('foo')
73
+ result.should == 3
74
+ end
75
+
76
+ it '存在するキーに対する関連を取り除いた場合は、取り除かれた値を返すこと' +
77
+ '(シンボルでキーを指定した場合も)' do
78
+ result = @oh.delete(:foo)
79
+ result.should == 3
80
+ end
81
+
82
+ it '存在するキーに対する関連を取り除いた場合は、keys からそのキーがなくなっていること' do
83
+ @oh.keys.should include('foo')
84
+ @oh.delete 'foo'
85
+ @oh.keys.should_not include('foo')
86
+ end
87
+
88
+ it '存在するキーに対する関連を取り除いた場合は、keys からそのキーがなくなっていること' +
89
+ '(シンボルでキーを指定した場合も)' do
90
+ @oh.keys.should include('foo')
91
+ @oh.delete :foo
92
+ @oh.keys.should_not include('foo')
93
+ end
94
+
95
+ it '存在しないキーを指定された場合は、nil が返ること' do
96
+ result = @oh.delete('none')
97
+ result.should == nil
98
+
99
+ result = @oh.delete(:none)
100
+ result.should be_nil
101
+ end
102
+
103
+ it 'ブロックが与えられたときは、key にマッチするものがなかった時に評価して、' +
104
+ 'その結果を返すこと' do
105
+ result = @oh.delete('foo') { |key| key + 'no' }
106
+ result.should == 3
107
+
108
+ result = @oh.delete('none') { |key| key + 'no' }
109
+ result.should == 'noneno'
110
+ end
111
+
112
+ it 'ブロックが与えられて、シンボルの key が与えられたときは' +
113
+ 'key にマッチするものがなかった時にブロックを評価して、その結果を返すこと ' +
114
+ '(ブロックには文字列のキーが渡される)' do
115
+ result = @oh.delete(:foo) { |key| key + 'no' }
116
+ result.should == 3
117
+
118
+ result = @oh.delete(:none) { |key| key + 'no' }
119
+ result.should == 'noneno'
120
+ end
121
+ end
122
+
65
123
  describe OrderedHash, '#each について' do
66
124
  before do
67
125
  @oh1, @oh2 = OrderedHash.new, OrderedHash.new
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "tiny_css"
3
- s.version = "0.11"
4
- s.date = "2008-07-06"
3
+ s.version = "0.12"
4
+ s.date = "2008-07-10"
5
5
  s.summary = ""
6
6
  s.email = "info@milk1000.cc"
7
7
  s.homepage = "http://github.com/milk1000cc/tiny_css"
8
8
  s.description = ""
9
9
  s.has_rdoc = false
10
10
  s.authors = ["milk1000cc"]
11
- s.files = [".DS_Store", "README", "lib/.DS_Store", "lib/tiny_css.rb", "lib/tiny_css/base.rb", "lib/tiny_css/ordered_hash.rb", "spec/base_spec.rb", "spec/ordered_hash_spec.rb", "spec/style.css", "tiny_css.gemspec"]
11
+ s.files = ["README", "lib/tiny_css.rb", "lib/tiny_css/base.rb", "lib/tiny_css/ordered_hash.rb", "spec/base_spec.rb", "spec/ordered_hash_spec.rb", "spec/spec.opts", "spec/style.css", "tiny_css.gemspec"]
12
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milk1000cc-tiny_css
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.11"
4
+ version: "0.12"
5
5
  platform: ruby
6
6
  authors:
7
7
  - milk1000cc
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-06 00:00:00 -07:00
12
+ date: 2008-07-10 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -22,14 +22,13 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - .DS_Store
26
25
  - README
27
- - lib/.DS_Store
28
26
  - lib/tiny_css.rb
29
27
  - lib/tiny_css/base.rb
30
28
  - lib/tiny_css/ordered_hash.rb
31
29
  - spec/base_spec.rb
32
30
  - spec/ordered_hash_spec.rb
31
+ - spec/spec.opts
33
32
  - spec/style.css
34
33
  - tiny_css.gemspec
35
34
  has_rdoc: false
data/.DS_Store DELETED
Binary file
Binary file