milk1000cc-tiny_css 0.11 → 0.12

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 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