rainpress 1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 856f9bd8013d0fcda82f0b0b15e9ea12b357a2b7
4
+ data.tar.gz: 50255e841952d798ab0c3d50bbb12cfc0f5ad3d6
5
+ SHA512:
6
+ metadata.gz: 225d2c42c001b63ab899044f3919a5061cc5fe116064ac48647681851028d70030a80d1d537ce6864222c73ce874e9abcd75924b62b422c72057116d1937257b
7
+ data.tar.gz: bed95a7cc99c4827c23972854e0a10fce10ccc59088a92eff43238861a713ea1401496436cc0d0fac2fb4ff5d9bc32aa8748b9487e8fb12d84190f57e89ad529
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'rake'
6
+ gem 'minitest'
@@ -0,0 +1,22 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rainpress (1.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ minitest (5.10.1)
10
+ rake (12.0.0)
11
+
12
+ PLATFORMS
13
+ ruby
14
+
15
+ DEPENDENCIES
16
+ bundler (~> 1.14)
17
+ minitest
18
+ rainpress!
19
+ rake
20
+
21
+ BUNDLED WITH
22
+ 1.14.5
data/NEWS.md ADDED
@@ -0,0 +1,9 @@
1
+ ## 1.0.1
2
+
3
+ Enhancements:
4
+
5
+ * Improved compatibility with recent versions of Ruby, Rubygems and Bundler
6
+
7
+ ## 1.0.0
8
+
9
+ Initial release.
@@ -0,0 +1,47 @@
1
+ [![Gem version](http://img.shields.io/gem/v/rainpress.svg)](http://rubygems.org/gems/rainpress)
2
+ [![Build status](http://img.shields.io/travis/ddfreyne/rainpress.svg)](https://travis-ci.org/ddfreyne/rainpress)
3
+
4
+ # Rainpress
5
+
6
+ Rainpress is a compressor for CSS, written in Ruby. It removes unnecessary characters and replaces some attributes with a shorter equivalent name.
7
+
8
+ ## Usage
9
+
10
+ ```ruby
11
+ require 'rainpress'
12
+ compressed_style_text = Rainpress.compress(style_text)
13
+ ```
14
+
15
+ Options:
16
+
17
+ * `:comments` — if set to false, comments will not be removed
18
+ * `:newlines` — if set to false, newlines will not be removed
19
+ * `:spaces` — if set to false, spaces will not be removed
20
+ * `:colors` — if set to false, colors will not be modified
21
+ * `:misc` — if set to false, miscellaneous compression parts will be skipped
22
+
23
+ ## License
24
+
25
+ Copyright (c) 2007–2008 Uwe L. Korn
26
+
27
+ Copyright (c) 20xx Jeff Smick
28
+
29
+ Copyright (c) 2017–… Denis Defreyne
30
+
31
+ Permission is hereby granted, free of charge, to any person obtaining a copy
32
+ of this software and associated documentation files (the "Software"), to deal
33
+ in the Software without restriction, including without limitation the rights
34
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
35
+ copies of the Software, and to permit persons to whom the Software is
36
+ furnished to do so, subject to the following conditions:
37
+
38
+ The above copyright notice and this permission notice shall be included in
39
+ all copies or substantial portions of the Software.
40
+
41
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
42
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
44
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
45
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
46
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
47
+ THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,18 +1,8 @@
1
- require 'echoe'
2
- require 'hanna/rdoctask'
1
+ require 'rake/testtask'
3
2
 
4
- Echoe.new('rainpress') do |p|
5
- p.author = ['Uwe L. Korn', 'Jeff Smick']
6
- p.email = 'sprsquish@gmail.com'
7
- p.url = 'http://github.com/sprsquish/rainpress/tree/master'
8
-
9
- p.project = 'squishtech'
10
- p.summary = 'A CSS compressor'
11
-
12
- p.rdoc_options += %w[-S -T hanna --main README.rdoc --exclude autotest]
13
-
14
- p.test_pattern = 'spec/*_spec.rb'
15
- p.rcov_options = ['--exclude \/Library\/Ruby\/Gems,spec\/', '--xrefs']
16
-
17
- p.retain_gemspec = true
3
+ Rake::TestTask.new do |t|
4
+ t.test_files = Dir['spec/**/*_spec.rb']
5
+ t.libs << 'spec'
18
6
  end
7
+
8
+ task default: :test
@@ -1,20 +1,4 @@
1
- # == Information
2
- #
3
- # This is the main class of Rainpress, create an instance of it to compress
4
- # your CSS-styles.
5
- #
6
- # Author:: Uwe L. Korn <uwelk@xhochy.org>
7
- #
8
- # <b>Options:</b>
9
- #
10
- # * <tt>:comments</tt> - if set to false, comments will not be removed
11
- # * <tt>:newlines</tt> - if set to false, newlines will not be removed
12
- # * <tt>:spaces</tt> - if set to false, spaces will not be removed
13
- # * <tt>:colors</tt> - if set to false, colors will not be modified
14
- # * <tt>:misc</tt> - if set to false, miscellaneous compression parts will be skipped
15
1
  class Rainpress
16
- # Quick-compress the styles.
17
- # This eliminates the need to create an instance of the class
18
2
  def self.compress(style, options = {})
19
3
  self.new(style, options).compress!
20
4
  end
@@ -47,7 +31,7 @@ class Rainpress
47
31
  # Attention: If you are doing css hacks for IE using the comment tricks,
48
32
  # they will be removed using this function. Please consider for IE css style
49
33
  # corrections the usage of conditionals comments in your (X)HTML document.
50
- def remove_comments!
34
+ def remove_comments!
51
35
  input = @style
52
36
  @style = ''
53
37
 
@@ -66,37 +50,37 @@ class Rainpress
66
50
  input = input[(pos+2)..-1]
67
51
  end
68
52
  end
69
- end
53
+ end
70
54
 
71
55
  # Remove all newline characters
72
56
  #
73
57
  # We take care of Windows(\r\n), Unix(\n) and Mac(\r) newlines.
74
- def remove_newlines!
75
- @style.gsub! /\n|\r/, ''
76
- end
58
+ def remove_newlines!
59
+ @style.gsub!(/\n|\r/, '')
60
+ end
77
61
 
78
- # Remove unneeded spaces
79
- #
62
+ # Remove unneeded spaces
63
+ #
80
64
  # 1. Turn mutiple spaces into a single
81
65
  # 2. Remove spaces around ;:{},
82
66
  # 3. Remove tabs
83
67
  def remove_spaces!
84
- @style.gsub! /\s*(\s|;|:|\}|\{|,)\s*/, '\1'
68
+ @style.gsub!(/\s*(\s|;|:|\}|\{|,)\s*/, '\1')
85
69
  @style.gsub! "\t", ''
86
- end
87
-
88
- # Replace color values with their shorter equivalent
89
- #
90
- # 1. Turn rgb(,,)-colors into #-values
91
- # 2. Shorten #AABBCC down to #ABC
92
- # 3. Replace names with their shorter hex-equivalent
93
- # * white -> #fff
70
+ end
71
+
72
+ # Replace color values with their shorter equivalent
73
+ #
74
+ # 1. Turn rgb(,,)-colors into #-values
75
+ # 2. Shorten #AABBCC down to #ABC
76
+ # 3. Replace names with their shorter hex-equivalent
77
+ # * white -> #fff
94
78
  # * black -> #000
95
- # 4. Replace #-values with their shorter name
96
- # * #f00 -> red
97
- def shorten_colors!
98
- # rgb(50,101,152) to #326598
99
- @style.gsub! /rgb\s*\(\s*([0-9,\s]+)\s*\)/ do |match|
79
+ # 4. Replace #-values with their shorter name
80
+ # * #f00 -> red
81
+ def shorten_colors!
82
+ # rgb(50,101,152) to #326598
83
+ @style.gsub!(/rgb\s*\(\s*([0-9,\s]+)\s*\)/) do |match|
100
84
  out = '#'
101
85
  $1.split(',').each do |num|
102
86
  out += '0' if num.to_i < 16
@@ -105,7 +89,7 @@ class Rainpress
105
89
  out
106
90
  end
107
91
  # Convert #AABBCC to #ABC, keep if preceed by a '='
108
- @style.gsub! /([^\"'=\s])(\s*)#([\da-f])\3([\da-f])\4([\da-f])\5/i, '\1#\3\4\5'
92
+ @style.gsub!(/([^\"'=\s])(\s*)#([\da-f])\3([\da-f])\4([\da-f])\5/i, '\1#\3\4\5')
109
93
 
110
94
  # At the moment we assume that colours only appear before ';' or '}' and
111
95
  # after a ':', if there could be an occurence of a color before or after
@@ -114,55 +98,55 @@ class Rainpress
114
98
 
115
99
  # shorten several names to numbers
116
100
  ## shorten white -> #fff
117
- @style.gsub! /:\s*white\s*(;|\})/, ':#fff\1'
101
+ @style.gsub!(/:\s*white\s*(;|\})/, ':#fff\1')
118
102
 
119
103
  ## shorten black -> #000
120
- @style.gsub! /:\s*black\s*(;|\})/, ':#000\1'
104
+ @style.gsub!(/:\s*black\s*(;|\})/, ':#000\1')
121
105
 
122
106
  # shotern several numbers to names
123
107
  ## shorten #f00 or #ff0000 -> red
124
- @style.gsub! /:\s*#f{1,2}0{2,4}(;|\})/i, ':red\1'
108
+ @style.gsub!(/:\s*#f{1,2}0{2,4}(;|\})/i, ':red\1')
125
109
  end
126
110
 
127
111
  # Do miscellaneous compression methods on the style.
128
112
  def do_misc!
129
113
  # Replace 0(pt,px,em,%) with 0 but only when preceded by : or a white-space
130
- @style.gsub! /([\s:]+)(0)(px|em|%|in|cm|mm|pc|pt|ex)/i, '\1\2'
114
+ @style.gsub!(/([\s:]+)(0)(px|em|%|in|cm|mm|pc|pt|ex)/i, '\1\2')
131
115
 
132
116
  # Replace :0 0 0 0(;|}) with :0(;|})
133
- @style.gsub! /:0 0 0 0(;|\})/, ':0\1'
117
+ @style.gsub!(/:0 0 0 0(;|\})/, ':0\1')
134
118
 
135
119
  # Replace :0 0 0(;|}) with :0(;|})
136
- @style.gsub! /:0 0 0(;|\})/, ':0\1'
120
+ @style.gsub!(/:0 0 0(;|\})/, ':0\1')
137
121
 
138
122
  # Replace :0 0(;|}) with :0(;|})
139
- @style.gsub! /:0 0(;|\})/, ':0\1'
123
+ @style.gsub!(/:0 0(;|\})/, ':0\1')
140
124
 
141
125
  # Replace background-position:0; with background-position:0 0;
142
126
  @style.gsub! 'background-position:0;', 'background-position:0 0;'
143
127
 
144
128
  # Replace 0.6 to .6, but only when preceded by : or a white-space
145
- @style.gsub! /[:\s]0+\.(\d+)/ do |match|
129
+ @style.gsub!(/[:\s]0+\.(\d+)/) do |match|
146
130
  match.sub '0', '' # only first '0' !!
147
131
  end
148
132
 
149
133
  # Replace multiple ';' with a single ';'
150
- @style.gsub! /[;]+/, ';'
134
+ @style.gsub!(/[;]+/, ';')
151
135
 
152
136
  # Replace ;} with }
153
137
  @style.gsub! ';}', '}'
154
138
 
155
139
  # Replace font-weight:normal; with 400
156
- @style.gsub! /font-weight[\s]*:[\s]*normal[\s]*(;|\})/i,'font-weight:400\1'
157
- @style.gsub! /font[\s]*:[\s]*normal[\s;\}]*/ do |match|
140
+ @style.gsub!(/font-weight[\s]*:[\s]*normal[\s]*(;|\})/i,'font-weight:400\1')
141
+ @style.gsub!(/font[\s]*:[\s]*normal[\s;\}]*/) do |match|
158
142
  match.sub 'normal', '400'
159
143
  end
160
144
 
161
145
  # Replace font-weight:bold; with 700
162
- @style.gsub! /font-weight[\s]*:[\s]*bold[\s]*(;|\})/,'font-weight:700\1'
163
- @style.gsub! /font[\s]*:[\s]*bold[\s;\}]*/ do |match|
146
+ @style.gsub!(/font-weight[\s]*:[\s]*bold[\s]*(;|\})/,'font-weight:700\1')
147
+ @style.gsub!(/font[\s]*:[\s]*bold[\s;\}]*/) do |match|
164
148
  match.sub 'bold', '700'
165
149
  end
166
150
  end
167
151
 
168
- end
152
+ end
@@ -0,0 +1,3 @@
1
+ class Rainpress
2
+ VERSION = '1.0.1'
3
+ end
@@ -1,37 +1,22 @@
1
- # -*- encoding: utf-8 -*-
1
+ require_relative 'lib/rainpress/version'
2
2
 
3
3
  Gem::Specification.new do |s|
4
- s.name = %q{rainpress}
5
- s.version = "1.0"
4
+ s.name = 'rainpress'
5
+ s.description = 'A CSS compressor'
6
+ s.summary = 'A CSS compressor'
7
+ s.version = Rainpress::VERSION
8
+ s.authors = ['Uwe L. Korn', 'Jeff Smick', 'Denis Defreyne']
9
+ s.email = 'denis@stoneship.org'
10
+ s.homepage = 'https://github.com/ddfreyne/rainpress'
11
+ s.license = 'MIT'
6
12
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Uwe L. Korn, Jeff Smick"]
9
- s.date = %q{2009-01-14}
10
- s.default_executable = %q{csspress}
11
- s.description = %q{A CSS compressor}
12
- s.email = %q{sprsquish@gmail.com}
13
+ s.files =
14
+ Dir['[A-Z]*'] +
15
+ Dir['{bin,lib,spec}/**/*'] +
16
+ Dir['*.gemspec']
13
17
  s.executables = ["csspress"]
14
- s.extra_rdoc_files = ["bin/csspress", "CHANGELOG", "lib/autotest/discover.rb", "lib/autotest/spec.rb", "lib/rainpress.rb", "README.rdoc"]
15
- s.files = ["bin/csspress", "CHANGELOG", "lib/autotest/discover.rb", "lib/autotest/spec.rb", "lib/rainpress.rb", "Manifest", "rainpress.gemspec", "Rakefile", "README.rdoc", "spec/build_safe.rb", "spec/rainpress_spec.rb"]
16
- s.has_rdoc = true
17
- s.homepage = %q{http://github.com/sprsquish/rainpress/tree/master}
18
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rainpress", "--main", "README.rdoc", "-S", "-T", "hanna", "--main", "README.rdoc", "--exclude", "autotest"]
18
+ s.default_executable = %q{csspress}
19
19
  s.require_paths = ["lib"]
20
- s.rubyforge_project = %q{squishtech}
21
- s.rubygems_version = %q{1.3.1}
22
- s.summary = %q{A CSS compressor}
23
- s.test_files = ["spec/rainpress_spec.rb"]
24
-
25
- if s.respond_to? :specification_version then
26
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
- s.specification_version = 2
28
20
 
29
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
30
- s.add_development_dependency(%q<echoe>, [">= 0"])
31
- else
32
- s.add_dependency(%q<echoe>, [">= 0"])
33
- end
34
- else
35
- s.add_dependency(%q<echoe>, [">= 0"])
36
- end
21
+ s.add_development_dependency('bundler', '~> 1.14')
37
22
  end
@@ -1,12 +1,8 @@
1
- ENV['MINISPEC'] = 'true'
2
-
3
- require File.join(File.dirname(__FILE__), *%w[.. lib rainpress])
4
- require 'rubygems'
1
+ require 'rainpress'
2
+ require 'minitest'
5
3
  require 'minitest/spec'
6
4
 
7
- include MiniTest
8
-
9
- Unit.autorun
5
+ Minitest.autorun
10
6
 
11
7
  describe 'Rainpress module' do
12
8
  it 'removes comments' do
metadata CHANGED
@@ -1,89 +1,70 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rainpress
3
- version: !ruby/object:Gem::Version
4
- version: "1.0"
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
5
  platform: ruby
6
- authors:
7
- - Uwe L. Korn, Jeff Smick
6
+ authors:
7
+ - Uwe L. Korn
8
+ - Jeff Smick
9
+ - Denis Defreyne
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
-
12
- date: 2009-01-14 00:00:00 -08:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: echoe
13
+ date: 2017-03-04 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.14'
17
22
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.14'
25
29
  description: A CSS compressor
26
- email: sprsquish@gmail.com
27
- executables:
30
+ email: denis@stoneship.org
31
+ executables:
28
32
  - csspress
29
33
  extensions: []
30
-
31
- extra_rdoc_files:
32
- - bin/csspress
33
- - CHANGELOG
34
- - lib/autotest/discover.rb
35
- - lib/autotest/spec.rb
36
- - lib/rainpress.rb
37
- - README.rdoc
38
- files:
34
+ extra_rdoc_files: []
35
+ files:
36
+ - Gemfile
37
+ - Gemfile.lock
38
+ - NEWS.md
39
+ - README.md
40
+ - Rakefile
39
41
  - bin/csspress
40
- - CHANGELOG
41
- - lib/autotest/discover.rb
42
- - lib/autotest/spec.rb
43
42
  - lib/rainpress.rb
44
- - Manifest
43
+ - lib/rainpress/version.rb
45
44
  - rainpress.gemspec
46
- - Rakefile
47
- - README.rdoc
48
- - spec/build_safe.rb
49
45
  - spec/rainpress_spec.rb
50
- has_rdoc: true
51
- homepage: http://github.com/sprsquish/rainpress/tree/master
46
+ homepage: https://github.com/ddfreyne/rainpress
47
+ licenses:
48
+ - MIT
49
+ metadata: {}
52
50
  post_install_message:
53
- rdoc_options:
54
- - --line-numbers
55
- - --inline-source
56
- - --title
57
- - Rainpress
58
- - --main
59
- - README.rdoc
60
- - -S
61
- - -T
62
- - hanna
63
- - --main
64
- - README.rdoc
65
- - --exclude
66
- - autotest
67
- require_paths:
51
+ rdoc_options: []
52
+ require_paths:
68
53
  - lib
69
- required_ruby_version: !ruby/object:Gem::Requirement
70
- requirements:
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
71
56
  - - ">="
72
- - !ruby/object:Gem::Version
73
- version: "0"
74
- version:
75
- required_rubygems_version: !ruby/object:Gem::Requirement
76
- requirements:
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
77
61
  - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "1.2"
80
- version:
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
81
64
  requirements: []
82
-
83
- rubyforge_project: squishtech
84
- rubygems_version: 1.3.1
65
+ rubyforge_project:
66
+ rubygems_version: 2.6.10
85
67
  signing_key:
86
- specification_version: 2
68
+ specification_version: 4
87
69
  summary: A CSS compressor
88
- test_files:
89
- - spec/rainpress_spec.rb
70
+ test_files: []
data/CHANGELOG DELETED
@@ -1 +0,0 @@
1
- v1.0 Initial release
data/Manifest DELETED
@@ -1,11 +0,0 @@
1
- bin/csspress
2
- CHANGELOG
3
- lib/autotest/discover.rb
4
- lib/autotest/spec.rb
5
- lib/rainpress.rb
6
- Manifest
7
- rainpress.gemspec
8
- Rakefile
9
- README.rdoc
10
- spec/build_safe.rb
11
- spec/rainpress_spec.rb
@@ -1,52 +0,0 @@
1
- == About
2
-
3
- Rainpress is a compressor for CSS. It's written in ruby, but should not be
4
- limited to ruby projects.
5
-
6
- Rainpress does not apply common compression algorithms like gzip, it removes
7
- unnecessary characters and replaces some attributes with a shorter equivalent
8
- name.
9
-
10
- == Simple Usage
11
-
12
- require 'rubygems'
13
- require 'rainpress'
14
- compressed_style_text = Rainpress.compress style_text
15
-
16
- == License
17
-
18
- Copyright (c) 2007-2008 Uwe L. Korn
19
-
20
- Permission is hereby granted, free of charge, to any person obtaining a copy
21
- of this software and associated documentation files (the "Software"), to deal
22
- in the Software without restriction, including without limitation the rights
23
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24
- copies of the Software, and to permit persons to whom the Software is
25
- furnished to do so, subject to the following conditions:
26
-
27
- The above copyright notice and this permission notice shall be included in
28
- all copies or substantial portions of the Software.
29
-
30
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
36
- THE SOFTWARE.
37
-
38
- Remark(not part of the license text): This is a MIT-style license
39
-
40
- == Links
41
-
42
- * {Rainpress Website}[http://rainpress.xhochy.com/]
43
- * {SVN repository}[http://code.google.com/p/rainpress/source]
44
- * {Bugtracker}[https://bugs.launchpad.net/rainpress/]
45
- * {Wiki}[http://code.google.com/p/rainpress/w/list]
46
- * {Translations}[https://translations.launchpad.net/rainpress/]
47
- * {XhochY Weblog (for Announcements about Rainpress)}[http://xhochy.org/en/]
48
- * {Mailinglist}[http://groups.google.com/group/xy-oss-projects-discussion]
49
- * {Continous Integration Builds and Tests}[http://cruisecontrol-rb.xhochy.com/builds/rainpress]
50
- * {Freshmeat Record}[http://freshmeat.net/projects/rainpress]
51
- * {Ohloh listing}[http://www.ohloh.net/projects/12620/]
52
- * {GitHub}[http://github.com/sprsquish/rainpress/tree/master]
@@ -1 +0,0 @@
1
- Autotest.add_discovery { 'spec' if File.directory?('spec') && ENV['MINISPEC'] }
@@ -1,60 +0,0 @@
1
- require 'autotest'
2
-
3
- Autotest.add_hook :initialize do |at|
4
- at.clear_mappings
5
- # watch out: Ruby bug (1.8.6):
6
- # %r(/) != /\//
7
- at.add_mapping(%r%^spec/.*_spec.rb$%) { |filename, _|
8
- filename
9
- }
10
- at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
11
- ["spec/#{m[1]}_spec.rb"]
12
- }
13
- at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) {
14
- at.files_matching %r%^spec/.*_spec\.rb$%
15
- }
16
- end
17
-
18
- BAR = "=" * 78
19
- REDCODE = 31
20
- GREENCODE = 32
21
-
22
- Autotest.add_hook :ran_command do |at|
23
- at.results.last =~ /^.* (\d+) failures, (\d+) errors/
24
-
25
- code = ($1 == "0" and $2 == "0") ? GREENCODE : REDCODE
26
- puts "\e[#{ code }m#{ BAR }\e[0m\n\n"
27
- end
28
-
29
- class Autotest::Spec < Autotest
30
- def path_to_classname(s)
31
- sep = File::SEPARATOR
32
- f = s.sub(/spec#{sep}/, '').sub(/(spec)?\.rb$/, '').split(sep)
33
- f = f.map { |path| path.split(/_|(\d+)/).map { |seg| seg.capitalize }.join }
34
- f = f.delete_if { |path| path == 'Core' }
35
- f.join
36
- end
37
-
38
- ##
39
- # Returns a hash mapping a file name to the known failures for that
40
- # file.
41
-
42
- def consolidate_failures(failed)
43
- filters = new_hash_of_arrays
44
-
45
- class_map = Hash[*self.find_order.grep(/^spec/).map { |f| # TODO: ugly
46
- [path_to_classname(f), f]
47
- }.flatten]
48
- class_map.merge!(self.extra_class_map)
49
-
50
- failed.each do |method, klass|
51
- if class_map.has_key? klass then
52
- filters[class_map[klass]] << method
53
- else
54
- output.puts "Unable to map class #{klass} to a file"
55
- end
56
- end
57
-
58
- return filters
59
- end
60
- end
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'yaml'
3
-
4
- if ARGV.size < 1
5
- puts "Usage: build_save.rb my-project.gemspec"
6
- exit
7
- end
8
-
9
- require 'rubygems/specification'
10
- data = File.read(ARGV[0])
11
- spec = nil
12
-
13
- if data !~ %r{!ruby/object:Gem::Specification}
14
- Thread.new { spec = eval("$SAFE = 3\n#{data}") }.join
15
- else
16
- spec = YAML.load(data)
17
- end
18
-
19
- puts spec
20
- puts "OK"