white 0.1.0 → 0.2.1
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/Gemfile +13 -0
- data/Gemfile.lock +16 -0
- data/Rakefile +12 -2
- data/VERSION +1 -1
- data/lib/white.rb +19 -4
- data/white.gemspec +53 -0
- metadata +42 -10
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
# gem "shoulda", ">= 0"
|
10
|
+
gem "bundler", "~> 1.0.0"
|
11
|
+
gem "jeweler", "~> 1.6.4"
|
12
|
+
# gem "rcov", ">= 0"
|
13
|
+
end
|
data/Gemfile.lock
ADDED
data/Rakefile
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
2
12
|
require 'rake'
|
3
13
|
|
4
14
|
require 'jeweler'
|
5
15
|
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
6
17
|
gem.name = "white"
|
7
18
|
gem.homepage = "http://github.com/andreyvit/white"
|
8
19
|
gem.license = "MIT"
|
@@ -10,7 +21,6 @@ Jeweler::Tasks.new do |gem|
|
|
10
21
|
gem.description = %Q{Run from your project folder before committing to Git to avoid whitespace errors}
|
11
22
|
gem.email = "andreyvit@gmail.com"
|
12
23
|
gem.authors = ["Andrey Tarantsov"]
|
24
|
+
# dependencies defined in Gemfile
|
13
25
|
end
|
14
26
|
Jeweler::RubygemsDotOrgTasks.new
|
15
|
-
|
16
|
-
task :default => :test
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1
|
1
|
+
0.2.1
|
data/lib/white.rb
CHANGED
@@ -3,13 +3,14 @@ require 'optparse'
|
|
3
3
|
class White
|
4
4
|
|
5
5
|
def self.run args
|
6
|
-
extensions = %w/rb java xml md coffee js html css less yml php info install module h m txt/
|
6
|
+
extensions = %w/rb java xml md markdown coffee js eco html haml css less styl yml php info install module h m c txt/
|
7
7
|
names = %w/Rakefile Cakefile/
|
8
8
|
default_tab_size = nil
|
9
9
|
tab_sizes = {
|
10
10
|
}
|
11
|
-
exclusions = ['**/.git/**']
|
11
|
+
exclusions = ['**/.git/**', '**/node_modules/**/*']
|
12
12
|
verbose = false
|
13
|
+
dry_run = false
|
13
14
|
|
14
15
|
opts = OptionParser.new do |opts|
|
15
16
|
opts.banner = "Usage: white [options]"
|
@@ -28,13 +29,17 @@ class White
|
|
28
29
|
extensions << v
|
29
30
|
end
|
30
31
|
|
31
|
-
opts.on("-
|
32
|
+
opts.on("-i", "--name=NAME", "Include files with the given name (e.g. -n Cakefile)") do |v|
|
32
33
|
names << v
|
33
34
|
end
|
34
35
|
|
35
36
|
opts.separator ""
|
36
37
|
opts.separator "Common options:"
|
37
38
|
|
39
|
+
opts.on("-n", "--dry-run", "Don't actually change anything on disk") do
|
40
|
+
dry_run = true
|
41
|
+
end
|
42
|
+
|
38
43
|
opts.on("-v", "--verbose", "Show a full list of processed files") do
|
39
44
|
verbose = true
|
40
45
|
end
|
@@ -54,6 +59,8 @@ class White
|
|
54
59
|
files -= Dir[exclusion]
|
55
60
|
end
|
56
61
|
|
62
|
+
files -= Dir['**/.keepwhitespace'].map { |f| Dir[File.join(File.dirname(f), '**/*')] }.flatten
|
63
|
+
|
57
64
|
files_with_tabs = []
|
58
65
|
|
59
66
|
files.each do |file|
|
@@ -65,10 +72,18 @@ class White
|
|
65
72
|
text = File.read(file)
|
66
73
|
original = text.dup
|
67
74
|
|
75
|
+
prev = text.dup
|
76
|
+
text.gsub! /\r/, ''
|
77
|
+
errors << "Windows line breaks" if text != prev
|
78
|
+
|
68
79
|
prev = text.dup
|
69
80
|
text.gsub! /[ \t]+$/, ''
|
70
81
|
errors << "trailing whitespace" if text != prev
|
71
82
|
|
83
|
+
prev = text.dup
|
84
|
+
text.gsub! /\r/, ''
|
85
|
+
errors << "Windows line breaks" if text != prev
|
86
|
+
|
72
87
|
if text =~ /^ *?\t[\t ]*/
|
73
88
|
if default_tab_size == nil
|
74
89
|
files_with_tabs << file unless files_with_tabs.include?(file)
|
@@ -89,7 +104,7 @@ class White
|
|
89
104
|
|
90
105
|
if text != original
|
91
106
|
puts "#{file} (#{errors.join(', ')})"
|
92
|
-
File.open(file, 'w') { |f| f.write text }
|
107
|
+
File.open(file, 'w') { |f| f.write text } unless dry_run
|
93
108
|
else
|
94
109
|
puts "#{file} OK" if verbose
|
95
110
|
end
|
data/white.gemspec
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{white}
|
8
|
+
s.version = "0.2.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Andrey Tarantsov}]
|
12
|
+
s.date = %q{2011-12-15}
|
13
|
+
s.description = %q{Run from your project folder before committing to Git to avoid whitespace errors}
|
14
|
+
s.email = %q{andreyvit@gmail.com}
|
15
|
+
s.executables = [%q{white}]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE.txt",
|
18
|
+
"README.md"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".document",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"bin/white",
|
29
|
+
"lib/white.rb",
|
30
|
+
"white.gemspec"
|
31
|
+
]
|
32
|
+
s.homepage = %q{http://github.com/andreyvit/white}
|
33
|
+
s.licenses = [%q{MIT}]
|
34
|
+
s.require_paths = [%q{lib}]
|
35
|
+
s.rubygems_version = %q{1.8.6}
|
36
|
+
s.summary = %q{Fix whitespace errors before committing to Git}
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
s.specification_version = 3
|
40
|
+
|
41
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
43
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
44
|
+
else
|
45
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
46
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
47
|
+
end
|
48
|
+
else
|
49
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
50
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: white
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 21
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 2
|
8
9
|
- 1
|
9
|
-
|
10
|
-
version: 0.1.0
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrey Tarantsov
|
@@ -15,10 +15,40 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
date: 2011-12-15 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 23
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 0
|
30
|
+
- 0
|
31
|
+
version: 1.0.0
|
32
|
+
type: :development
|
33
|
+
requirement: *id001
|
34
|
+
prerelease: false
|
35
|
+
name: bundler
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ~>
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 7
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 6
|
46
|
+
- 4
|
47
|
+
version: 1.6.4
|
48
|
+
type: :development
|
49
|
+
requirement: *id002
|
50
|
+
prerelease: false
|
51
|
+
name: jeweler
|
22
52
|
description: Run from your project folder before committing to Git to avoid whitespace errors
|
23
53
|
email: andreyvit@gmail.com
|
24
54
|
executables:
|
@@ -30,13 +60,15 @@ extra_rdoc_files:
|
|
30
60
|
- README.md
|
31
61
|
files:
|
32
62
|
- .document
|
63
|
+
- Gemfile
|
64
|
+
- Gemfile.lock
|
33
65
|
- LICENSE.txt
|
34
66
|
- README.md
|
35
67
|
- Rakefile
|
36
68
|
- VERSION
|
37
69
|
- bin/white
|
38
70
|
- lib/white.rb
|
39
|
-
|
71
|
+
- white.gemspec
|
40
72
|
homepage: http://github.com/andreyvit/white
|
41
73
|
licenses:
|
42
74
|
- MIT
|
@@ -66,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
98
|
requirements: []
|
67
99
|
|
68
100
|
rubyforge_project:
|
69
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.8.6
|
70
102
|
signing_key:
|
71
103
|
specification_version: 3
|
72
104
|
summary: Fix whitespace errors before committing to Git
|