fixbraces 0.9.0 → 1.1.0
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.md +8 -0
- data/bin/fixbraces +8 -1
- data/features/fixbraces.feature +3 -0
- data/features/step_definitions/fixbraces_steps.rb +11 -0
- data/fixbraces.gemspec +5 -5
- data/lib/fixbraces/version.rb +1 -1
- data/lib/fixbraces.rb +26 -8
- data/spec/fixbraces_spec.rb +2 -2
- metadata +18 -18
data/README.md
CHANGED
@@ -43,6 +43,14 @@ or a number of files:
|
|
43
43
|
|
44
44
|
Run `fixbraces --help` for details.
|
45
45
|
|
46
|
+
## Disclaimer
|
47
|
+
|
48
|
+
I have tests, you can see them for yourself. The script works, but I'm
|
49
|
+
aggressive about using version control, so if anything did get messed up I'm
|
50
|
+
not left in an unrecoverable state.
|
51
|
+
|
52
|
+
I suggest you do the same.
|
53
|
+
|
46
54
|
## Contributing
|
47
55
|
|
48
56
|
1. Fork it
|
data/bin/fixbraces
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "fixbraces"
|
4
4
|
require "trollop"
|
5
|
+
require "pathname"
|
5
6
|
|
6
7
|
opts = Trollop::options do
|
7
8
|
version "v#{Fixbraces::VERSION}"
|
@@ -32,5 +33,11 @@ ARGV.each do |f|
|
|
32
33
|
end
|
33
34
|
|
34
35
|
source_files.flatten.each do |f|
|
35
|
-
Fixbraces.process_file f
|
36
|
+
changed_file = Fixbraces.process_file f
|
37
|
+
|
38
|
+
if changed_file
|
39
|
+
path_name = Pathname.new changed_file
|
40
|
+
relative_path_name = path_name.relative_path_from Pathname.pwd
|
41
|
+
puts "Corrected: #{relative_path_name}"
|
42
|
+
end
|
36
43
|
end
|
data/features/fixbraces.feature
CHANGED
@@ -6,6 +6,7 @@ Feature: The binary interface for fixbraces works
|
|
6
6
|
Given a single source file called MasterViewController.m
|
7
7
|
When I run `fixbraces MasterViewController.m`
|
8
8
|
Then MasterViewController.m should be formatted correctly
|
9
|
+
Then the output should contain "MasterViewController.m"
|
9
10
|
And the exit status should be 0
|
10
11
|
|
11
12
|
Scenario: Run the app on a directory
|
@@ -18,5 +19,7 @@ Feature: The binary interface for fixbraces works
|
|
18
19
|
Given an Xcode project
|
19
20
|
When I run `"fixbraces FixbracesTestProject/*.m"`
|
20
21
|
Then the .m files in that directory are changed
|
22
|
+
And the changed files should be listed
|
23
|
+
And there should not be any .h files listed
|
21
24
|
And the .h files in that directory are unchanged
|
22
25
|
And the exit status should be 0
|
@@ -38,6 +38,17 @@ Then /^the \.m files in that directory are changed$/ do
|
|
38
38
|
expect(result).to eq ""
|
39
39
|
end
|
40
40
|
|
41
|
+
Then /^the changed files should be listed$/ do
|
42
|
+
step %(the output should contain "AppDelegate.m")
|
43
|
+
step %(the output should contain "DetailViewController.m")
|
44
|
+
step %(the output should contain "MasterViewController.m")
|
45
|
+
step %(the output should contain "main.m")
|
46
|
+
end
|
47
|
+
|
48
|
+
Then /^there should not be any .h files listed$/ do
|
49
|
+
step %(the output should not contain "AppDelegate.h")
|
50
|
+
end
|
51
|
+
|
41
52
|
Then /^the \.h files in that directory are unchanged$/ do
|
42
53
|
base_dir = File.join @working_dir, "FixbracesTestProject"
|
43
54
|
# We're looking fore unchanged files, so comparing them against the input not expected
|
data/fixbraces.gemspec
CHANGED
@@ -14,15 +14,15 @@ Xcode, and people I collaborate with are inconsistent about the placement
|
|
14
14
|
of the opening brace. This corrects it for a file or a directory.
|
15
15
|
DESC
|
16
16
|
gem.summary = "Puts the opening brace on the same line"
|
17
|
-
gem.homepage = "
|
17
|
+
gem.homepage = "http://abizern.org/fixbraces/"
|
18
18
|
|
19
19
|
gem.files = `git ls-files`.split($/)
|
20
20
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
21
21
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
22
22
|
gem.require_paths = ["lib"]
|
23
23
|
|
24
|
-
gem.add_dependency "trollop"
|
25
|
-
gem.add_development_dependency "rspec"
|
26
|
-
gem.add_development_dependency "cucumber"
|
27
|
-
gem.add_development_dependency "aruba"
|
24
|
+
gem.add_dependency "trollop" , "~> 2.0"
|
25
|
+
gem.add_development_dependency "rspec", "~> 2.12"
|
26
|
+
gem.add_development_dependency "cucumber", "~> 1.2"
|
27
|
+
gem.add_development_dependency "aruba", "~> 0.5"
|
28
28
|
end
|
data/lib/fixbraces/version.rb
CHANGED
data/lib/fixbraces.rb
CHANGED
@@ -3,23 +3,41 @@ require "tempfile"
|
|
3
3
|
|
4
4
|
module Fixbraces
|
5
5
|
def Fixbraces.fixbraces(text)
|
6
|
+
text_changed = false
|
7
|
+
|
6
8
|
# Move the opening brace to the same line as the opening clause
|
7
|
-
|
9
|
+
if text.gsub!(/\n[ \t]*\{[ \t]*$/, " {")
|
10
|
+
text_changed = true
|
11
|
+
end
|
8
12
|
|
9
13
|
# If there are a pair of braces on their own line move them both up to the
|
10
14
|
# same line as the opening line
|
11
|
-
|
15
|
+
if text.gsub!(/\n[\s]*\{\}[\s]*$/, " {}")
|
16
|
+
text_changed = true
|
17
|
+
end
|
18
|
+
|
19
|
+
text_changed ? text : nil
|
12
20
|
end
|
13
21
|
|
14
22
|
def Fixbraces.process_file(file)
|
15
|
-
|
23
|
+
corrected_text = ""
|
24
|
+
|
25
|
+
# Read in the text and pass it to the method that corrects it.
|
16
26
|
File.open(file, "r") do |f|
|
17
27
|
contents = f.read
|
18
|
-
|
19
|
-
temp_file.write new_contents
|
28
|
+
corrected_text = fixbraces contents
|
20
29
|
end
|
21
|
-
|
22
|
-
|
23
|
-
|
30
|
+
|
31
|
+
if corrected_text
|
32
|
+
# Write the text to a temp file before overwriting the original file.
|
33
|
+
temp_file = Tempfile.new "fixbraces"
|
34
|
+
temp_file.write corrected_text
|
35
|
+
temp_file.close
|
36
|
+
|
37
|
+
FileUtils.cp temp_file.path, file
|
38
|
+
end
|
39
|
+
|
40
|
+
# Return the file path or nil if no changes were made
|
41
|
+
corrected_text ? file : nil
|
24
42
|
end
|
25
43
|
end
|
data/spec/fixbraces_spec.rb
CHANGED
@@ -27,8 +27,8 @@ describe Fixbraces do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "doesn't change text that is correctly formatted" do
|
30
|
-
expect(Fixbraces.fixbraces corrected_split_braces).to
|
31
|
-
expect(Fixbraces.fixbraces corrected_paired_braces).to
|
30
|
+
expect(Fixbraces.fixbraces corrected_split_braces).to be_nil
|
31
|
+
expect(Fixbraces.fixbraces corrected_paired_braces).to be_nil
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixbraces
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,65 +16,65 @@ dependencies:
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
21
|
+
version: '2.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
29
|
+
version: '2.0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rspec
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
37
|
+
version: '2.12'
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
45
|
+
version: '2.12'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: cucumber
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '1.2'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.2'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: aruba
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
69
|
+
version: '0.5'
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
77
|
+
version: '0.5'
|
78
78
|
description: ! 'I prefer my opening braces to be on the same line as the opening clause.
|
79
79
|
|
80
80
|
Xcode, and people I collaborate with are inconsistent about the placement
|
@@ -153,7 +153,7 @@ files:
|
|
153
153
|
- spec/fixtures/input/MasterViewController.h
|
154
154
|
- spec/fixtures/input/MasterViewController.m
|
155
155
|
- spec/fixtures/sample_text.rb
|
156
|
-
homepage:
|
156
|
+
homepage: http://abizern.org/fixbraces/
|
157
157
|
licenses: []
|
158
158
|
post_install_message:
|
159
159
|
rdoc_options: []
|