phare 0.5.2 → 0.6
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -6
- data/.travis.yml +1 -0
- data/README.md +27 -2
- data/bin/phare +1 -1
- data/lib/phare.rb +7 -0
- data/lib/phare/check.rb +3 -3
- data/lib/phare/check/jscs.rb +3 -5
- data/lib/phare/check/jshint.rb +3 -5
- data/lib/phare/check/rubocop.rb +1 -3
- data/lib/phare/check/scss_lint.rb +3 -5
- data/lib/phare/check_suite.rb +2 -2
- data/lib/phare/cli.rb +47 -21
- data/lib/phare/git.rb +3 -3
- data/lib/phare/version.rb +1 -1
- data/phare.gemspec +5 -4
- data/spec/phare/check/jscs_spec.rb +4 -2
- data/spec/phare/check/jshint_spec.rb +4 -2
- data/spec/phare/check/rubocop_spec.rb +2 -0
- data/spec/phare/check/scss_lint_spec.rb +3 -1
- data/spec/phare/check_suite_spec.rb +3 -1
- data/spec/phare/cli_spec.rb +16 -1
- data/spec/phare/git_spec.rb +3 -1
- data/spec/spec_helper.rb +6 -2
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15b3ee8b4694a9fa9c68c084483509a79b514186
|
4
|
+
data.tar.gz: 96bc1409085eb987dc81f520cbc47e44381dfc2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16c1bf55cf413dfaabce005af9eec64770dfe3eb7640f2f02f7650b60d9dbbfacb3954384f75eec7e77b534bc64207235ad2fefd9fa86cbb3eefdac27bc16e46
|
7
|
+
data.tar.gz: fb2e07dff0f5bd49d282039497ac74cf8c9eafb2f41947bea26af8c75585a01eb0998c523caf176f7f31ba58f7a54438c4f58bdb1687ec6fd015e384c575edff
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
AllCops:
|
2
|
-
|
3
|
-
-
|
4
|
-
- config.ru
|
5
|
-
- Gemfile
|
2
|
+
Include:
|
3
|
+
- phare.gemspec
|
6
4
|
|
7
5
|
Documentation:
|
8
6
|
Enabled: false
|
@@ -13,6 +11,9 @@ Encoding:
|
|
13
11
|
LineLength:
|
14
12
|
Max: 200
|
15
13
|
|
14
|
+
ClassLength:
|
15
|
+
Max: 200
|
16
|
+
|
16
17
|
AccessModifierIndentation:
|
17
18
|
EnforcedStyle: outdent
|
18
19
|
|
@@ -42,8 +43,11 @@ Lambda:
|
|
42
43
|
RegexpLiteral:
|
43
44
|
Enabled: false
|
44
45
|
|
45
|
-
|
46
|
+
AssignmentInCondition:
|
47
|
+
Enabled: false
|
48
|
+
|
49
|
+
ClassAndModuleChildren:
|
46
50
|
Enabled: false
|
47
51
|
|
48
|
-
|
52
|
+
GuardClause:
|
49
53
|
Enabled: false
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -5,8 +5,9 @@
|
|
5
5
|
<br />
|
6
6
|
Phare looks into your files and check for coding style errors.
|
7
7
|
<br /><br />
|
8
|
-
<a href="https://rubygems.org/gems/phare"><img src="
|
9
|
-
<a href="https://travis-ci.org/mirego/phare"><img src="
|
8
|
+
<a href="https://rubygems.org/gems/phare"><img src="http://img.shields.io/gem/v/phare.svg" /></a>
|
9
|
+
<a href="https://travis-ci.org/mirego/phare"><img src="http://img.shields.io/travis/mirego/phare.svg" /></a>
|
10
|
+
<a href="https://codeclimate.com/github/mirego/phare"><img src="http://img.shields.io/codeclimate/github/mirego/phare.svg" /></a>
|
10
11
|
</p>
|
11
12
|
|
12
13
|
## Installation
|
@@ -37,6 +38,8 @@ Phare provides an executable named `phare`. You can just use it as is:
|
|
37
38
|
$ phare
|
38
39
|
```
|
39
40
|
|
41
|
+
### Version control hook
|
42
|
+
|
40
43
|
One of the best ways to use Phare is by hooking it to your version control commit process. For example, with `git`:
|
41
44
|
|
42
45
|
```bash
|
@@ -44,6 +47,28 @@ $ bundle binstubs phare
|
|
44
47
|
$ ln -s "`pwd`/bin/phare" .git/hooks/pre-commit
|
45
48
|
```
|
46
49
|
|
50
|
+
### Options
|
51
|
+
|
52
|
+
#### Command-line
|
53
|
+
|
54
|
+
| Option | Description
|
55
|
+
|-------------|-------------------------------------------------------------------------------------------------------------------------
|
56
|
+
| `directory` | The directory in which to run the checks (default is the current directory
|
57
|
+
| `only` | The specific checks to run (e.g. `--only=rubocup,jscs`)
|
58
|
+
| `skip` | The checks to skip (e.g. `--skip=scsslint`)
|
59
|
+
|
60
|
+
#### `.phare.yml`
|
61
|
+
|
62
|
+
Instead of using command-line arguments when running the `phare` command, you
|
63
|
+
can create a `.phare.yml` file at the root of your project and hard-code options
|
64
|
+
in that file.
|
65
|
+
|
66
|
+
```yaml
|
67
|
+
skip:
|
68
|
+
- scsslint
|
69
|
+
- jshint
|
70
|
+
```
|
71
|
+
|
47
72
|
## Contributors
|
48
73
|
|
49
74
|
* [@remiprev](https://github.com/remiprev)
|
data/bin/phare
CHANGED
data/lib/phare.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'English'
|
2
2
|
require 'optparse'
|
3
|
+
require 'yaml'
|
3
4
|
require 'phare/version'
|
4
5
|
|
5
6
|
require 'phare/cli'
|
@@ -29,4 +30,10 @@ module Phare
|
|
29
30
|
def self.puts(*args)
|
30
31
|
STDOUT.puts(*args)
|
31
32
|
end
|
33
|
+
|
34
|
+
def self.banner(string)
|
35
|
+
Phare.puts '-' * string.length
|
36
|
+
Phare.puts string
|
37
|
+
Phare.puts '-' * string.length
|
38
|
+
end
|
32
39
|
end
|
data/lib/phare/check.rb
CHANGED
@@ -2,7 +2,7 @@ module Phare
|
|
2
2
|
class Check
|
3
3
|
attr_reader :status, :command, :tree
|
4
4
|
|
5
|
-
def initialize(
|
5
|
+
def initialize(_directory, options = {})
|
6
6
|
@tree = Git.new(@extensions, options)
|
7
7
|
end
|
8
8
|
|
@@ -28,11 +28,11 @@ module Phare
|
|
28
28
|
should_run = binary_exists?
|
29
29
|
|
30
30
|
[:configuration_exists?, :arguments_exists?].each do |condition|
|
31
|
-
should_run
|
31
|
+
should_run &&= send(condition) if respond_to?(condition, true)
|
32
32
|
end
|
33
33
|
|
34
34
|
if @options[:diff]
|
35
|
-
should_run
|
35
|
+
should_run &&= @tree.changed?
|
36
36
|
end
|
37
37
|
|
38
38
|
should_run
|
data/lib/phare/check/jscs.rb
CHANGED
@@ -28,17 +28,15 @@ module Phare
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def configuration_exists?
|
31
|
-
File.
|
31
|
+
File.exist?(@config)
|
32
32
|
end
|
33
33
|
|
34
34
|
def argument_exists?
|
35
|
-
@tree.changed? || Dir.
|
35
|
+
@tree.changed? || Dir.exist?(@path)
|
36
36
|
end
|
37
37
|
|
38
38
|
def print_banner
|
39
|
-
Phare.
|
40
|
-
Phare.puts 'Running JSCS to check for JavaScript style…'
|
41
|
-
Phare.puts '---------------------------------------------'
|
39
|
+
Phare.banner 'Running JSCS to check for JavaScript style…'
|
42
40
|
end
|
43
41
|
end
|
44
42
|
end
|
data/lib/phare/check/jshint.rb
CHANGED
@@ -29,17 +29,15 @@ module Phare
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def configuration_exists?
|
32
|
-
File.
|
32
|
+
File.exist?(@config)
|
33
33
|
end
|
34
34
|
|
35
35
|
def arguments_exists?
|
36
|
-
@tree.changed? || Dir.
|
36
|
+
@tree.changed? || Dir.exist?(@path)
|
37
37
|
end
|
38
38
|
|
39
39
|
def print_banner
|
40
|
-
Phare.
|
41
|
-
Phare.puts 'Running JSHint to check for JavaScript style…'
|
42
|
-
Phare.puts '---------------------------------------------'
|
40
|
+
Phare.banner 'Running JSHint to check for JavaScript style…'
|
43
41
|
end
|
44
42
|
end
|
45
43
|
end
|
data/lib/phare/check/rubocop.rb
CHANGED
@@ -25,9 +25,7 @@ module Phare
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def print_banner
|
28
|
-
Phare.
|
29
|
-
Phare.puts 'Running Rubocop to check for Ruby style…'
|
30
|
-
Phare.puts '----------------------------------------'
|
28
|
+
Phare.banner 'Running Rubocop to check for Ruby style…'
|
31
29
|
end
|
32
30
|
end
|
33
31
|
end
|
@@ -6,7 +6,7 @@ module Phare
|
|
6
6
|
|
7
7
|
def initialize(directory, options = {})
|
8
8
|
@path = File.expand_path("#{directory}app/assets/stylesheets", __FILE__)
|
9
|
-
@extensions = %w(.
|
9
|
+
@extensions = %w(.scss)
|
10
10
|
@options = options
|
11
11
|
|
12
12
|
super
|
@@ -27,13 +27,11 @@ module Phare
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def arguments_exists?
|
30
|
-
@tree.changed? || Dir.
|
30
|
+
@tree.changed? || Dir.exist?(@path)
|
31
31
|
end
|
32
32
|
|
33
33
|
def print_banner
|
34
|
-
Phare.
|
35
|
-
Phare.puts 'Running SCSS-Lint to check for SCSS style…'
|
36
|
-
Phare.puts '------------------------------------------'
|
34
|
+
Phare.banner 'Running SCSS-Lint to check for SCSS style…'
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|
data/lib/phare/check_suite.rb
CHANGED
@@ -23,9 +23,9 @@ module Phare
|
|
23
23
|
checks = DEFAULT_CHECKS.keys
|
24
24
|
|
25
25
|
if @options[:only].any?
|
26
|
-
checks
|
26
|
+
checks &= @options[:only]
|
27
27
|
elsif @options[:skip]
|
28
|
-
checks
|
28
|
+
checks -= @options[:skip]
|
29
29
|
else
|
30
30
|
checks
|
31
31
|
end
|
data/lib/phare/cli.rb
CHANGED
@@ -5,59 +5,85 @@ module Phare
|
|
5
5
|
|
6
6
|
def initialize(env, argv)
|
7
7
|
@env = env
|
8
|
-
@
|
9
|
-
parse_options
|
8
|
+
@options = parsed_options(argv)
|
10
9
|
|
11
10
|
@suite = Phare::CheckSuite.new(@options)
|
12
11
|
end
|
13
12
|
|
14
13
|
def run
|
15
14
|
if @env['SKIP_CODE_CHECK']
|
16
|
-
Phare.
|
17
|
-
Phare.puts 'Skipping code style checking… Really? Well alright then…'
|
18
|
-
Phare.puts '--------------------------------------------------------'
|
19
|
-
|
15
|
+
Phare.banner 'Skipping code style checking… Really? Well alright then…'
|
20
16
|
exit 0
|
21
17
|
else
|
22
18
|
if @suite.tap(&:run).status == 0
|
23
|
-
Phare.
|
24
|
-
Phare.puts 'Everything looks good, keep on committing!'
|
25
|
-
Phare.puts '------------------------------------------'
|
26
|
-
|
19
|
+
Phare.banner 'Everything looks good, keep on committing!'
|
27
20
|
exit 0
|
28
21
|
else
|
29
|
-
Phare.
|
30
|
-
Phare.puts 'Something’s wrong with your code style. Please fix it before committing.'
|
31
|
-
Phare.puts '------------------------------------------------------------------------'
|
32
|
-
|
22
|
+
Phare.banner 'Something’s wrong with your code style. Please fix it before committing.'
|
33
23
|
exit 1
|
34
24
|
end
|
35
25
|
end
|
36
26
|
end
|
37
27
|
|
38
|
-
|
39
|
-
|
28
|
+
protected
|
29
|
+
|
30
|
+
def parsed_options(argv)
|
31
|
+
options = { directory: Dir.getwd }
|
32
|
+
options.merge! parsed_options_from_yaml(File.join(options[:directory], '.phare.yml'))
|
33
|
+
options.merge! parsed_options_from_arguments(argv)
|
34
|
+
symbolize_options!(options)
|
35
|
+
|
36
|
+
options
|
37
|
+
end
|
38
|
+
|
39
|
+
def symbolize_options!(options)
|
40
|
+
options[:skip].map!(&:to_sym) if options[:skip]
|
41
|
+
options[:only].map!(&:to_sym) if options[:only]
|
42
|
+
|
43
|
+
options
|
44
|
+
end
|
45
|
+
|
46
|
+
def parsed_options_from_arguments(argv)
|
47
|
+
options_to_merge = {}
|
40
48
|
|
41
49
|
OptionParser.new do |opts|
|
42
50
|
opts.banner = 'Usage: phare [options]'
|
43
51
|
|
44
52
|
opts.on('--directory', 'The directory in which to run the checks (default is the current directory') do |directory|
|
45
|
-
|
53
|
+
options_to_merge[:directory] = directory
|
46
54
|
end
|
47
55
|
|
48
56
|
opts.on('--skip x,y,z', 'Skip checks') do |checks|
|
49
|
-
|
57
|
+
options_to_merge[:skip] = checks.split(',')
|
50
58
|
end
|
51
59
|
|
52
60
|
opts.on('--only x,y,z', 'Only run the specified checks') do |checks|
|
53
|
-
|
61
|
+
options_to_merge[:only] = checks.split(',')
|
54
62
|
end
|
55
63
|
|
56
64
|
opts.on('--diff', 'Only run checks on modified files') do
|
57
|
-
|
65
|
+
options_to_merge[:diff] = true
|
58
66
|
end
|
59
67
|
|
60
|
-
end.parse!
|
68
|
+
end.parse! argv
|
69
|
+
|
70
|
+
options_to_merge
|
71
|
+
end
|
72
|
+
|
73
|
+
def parsed_options_from_yaml(file)
|
74
|
+
options_to_merge = {}
|
75
|
+
|
76
|
+
if File.exist?(file)
|
77
|
+
# Load YAML content
|
78
|
+
content = YAML.load(File.read(file))
|
79
|
+
|
80
|
+
# Symbolize keys
|
81
|
+
options_to_merge = content.reduce({}) do |memo, (key, value)|
|
82
|
+
memo.merge! key.to_sym => value
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
options_to_merge
|
61
87
|
end
|
62
88
|
end
|
63
89
|
end
|
data/lib/phare/git.rb
CHANGED
@@ -10,14 +10,14 @@ module Phare
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def changes
|
13
|
-
@changes ||= Phare.system_output('git status -s').split("\n").
|
13
|
+
@changes ||= Phare.system_output('git status -s').split("\n").each_with_object([]) do |diff, memo|
|
14
14
|
filename = diff.split(' ').last
|
15
15
|
|
16
16
|
if diff =~ /^[^D]{2}/ && @extensions.include?(File.extname(filename))
|
17
17
|
memo << filename
|
18
|
+
else
|
19
|
+
next
|
18
20
|
end
|
19
|
-
|
20
|
-
memo
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
data/lib/phare/version.rb
CHANGED
data/phare.gemspec
CHANGED
@@ -7,18 +7,19 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = 'phare'
|
8
8
|
spec.version = Phare::VERSION
|
9
9
|
spec.authors = ['Rémi Prévost']
|
10
|
-
spec.email = ['
|
10
|
+
spec.email = ['rprevost@mirego.com']
|
11
11
|
spec.description = 'Phare looks into your files and check for (Ruby, JavaScript and SCSS) coding style errors.'
|
12
12
|
spec.summary = spec.description
|
13
13
|
spec.homepage = 'https://github.com/mirego/phare'
|
14
14
|
spec.license = 'BSD 3-Clause'
|
15
15
|
|
16
|
-
spec.files = `git ls-files`.split(
|
16
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
22
|
spec.add_development_dependency 'rake'
|
23
|
-
spec.add_development_dependency 'rspec', '~> 3.0.0.
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.0.0.rc1'
|
24
|
+
spec.add_development_dependency 'rubocop', '0.22'
|
24
25
|
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::Check::JSCS do
|
4
|
+
let(:described_class) { Phare::Check::JSCS }
|
5
|
+
|
4
6
|
describe :should_run? do
|
5
7
|
let(:check) { described_class.new('.') }
|
6
8
|
before do
|
7
9
|
expect(Phare).to receive(:system_output).with('which jscs').and_return(which_output)
|
8
|
-
allow(File).to receive(:
|
9
|
-
allow(Dir).to receive(:
|
10
|
+
allow(File).to receive(:exist?).with(check.config).and_return(config_exists?)
|
11
|
+
allow(Dir).to receive(:exist?).with(check.path).and_return(path_exists?)
|
10
12
|
end
|
11
13
|
|
12
14
|
context 'with found jscs command' do
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::Check::JSHint do
|
4
|
+
let(:described_class) { Phare::Check::JSHint }
|
5
|
+
|
4
6
|
describe :should_run? do
|
5
7
|
let(:check) { described_class.new('.') }
|
6
8
|
before do
|
7
9
|
expect(Phare).to receive(:system_output).with('which jshint').and_return(which_output)
|
8
|
-
allow(File).to receive(:
|
9
|
-
allow(Dir).to receive(:
|
10
|
+
allow(File).to receive(:exist?).with(check.config).and_return(config_exists?)
|
11
|
+
allow(Dir).to receive(:exist?).with(check.path).and_return(path_exists?)
|
10
12
|
end
|
11
13
|
|
12
14
|
context 'with found jshint command' do
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::Check::Rubocop do
|
4
|
+
let(:described_class) { Phare::Check::Rubocop }
|
5
|
+
|
4
6
|
describe :should_run? do
|
5
7
|
let(:check) { described_class.new('.') }
|
6
8
|
before { expect(Phare).to receive(:system_output).with('which rubocop').and_return(which_output) }
|
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::Check::ScssLint do
|
4
|
+
let(:described_class) { Phare::Check::ScssLint }
|
5
|
+
|
4
6
|
describe :should_run? do
|
5
7
|
let(:check) { described_class.new('.') }
|
6
8
|
before do
|
7
9
|
expect(Phare).to receive(:system_output).with('which scss-lint').and_return(which_output)
|
8
|
-
allow(Dir).to receive(:
|
10
|
+
allow(Dir).to receive(:exist?).with(check.path).and_return(path_exists?)
|
9
11
|
end
|
10
12
|
|
11
13
|
context 'with found scss-lint command' do
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::CheckSuite do
|
4
|
+
let(:described_class) { Phare::CheckSuite }
|
5
|
+
|
4
6
|
describe :run do
|
5
7
|
let(:options) { { directory: '.' } }
|
6
8
|
let(:suite) { described_class.new(options) }
|
@@ -30,7 +32,7 @@ describe Phare::CheckSuite do
|
|
30
32
|
end
|
31
33
|
|
32
34
|
context 'with no failing check' do
|
33
|
-
let(:exit_status_proc) { proc {
|
35
|
+
let(:exit_status_proc) { proc { 0 } }
|
34
36
|
|
35
37
|
it { expect { suite.run }.to change { suite.status }.to(0) }
|
36
38
|
end
|
data/spec/phare/cli_spec.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::CLI do
|
4
|
+
let(:described_class) { Phare::CLI }
|
5
|
+
|
4
6
|
let(:cli) { described_class.new(env, argv) }
|
5
7
|
let(:argv) { [] }
|
6
8
|
let(:run!) { cli.run }
|
9
|
+
let(:env) { {} }
|
7
10
|
|
8
|
-
describe :
|
11
|
+
describe :run do
|
9
12
|
context 'with code check skipping' do
|
10
13
|
let(:env) { { 'SKIP_CODE_CHECK' => '1' } }
|
11
14
|
it { expect { run! }.to exit_with_code(0) }
|
@@ -33,4 +36,16 @@ describe Phare::CLI do
|
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end
|
39
|
+
|
40
|
+
describe :parsed_options do
|
41
|
+
let(:parsed_options) { cli.send(:parsed_options, argv) }
|
42
|
+
|
43
|
+
before do
|
44
|
+
expect(cli).to receive(:parsed_options_from_yaml).and_return(skip: ['scsslint'])
|
45
|
+
expect(cli).to receive(:parsed_options_from_arguments).and_return(skip: ['rubocop'])
|
46
|
+
end
|
47
|
+
|
48
|
+
it { expect(parsed_options[:directory]).to eql Dir.pwd }
|
49
|
+
it { expect(parsed_options[:skip]).to eql [:rubocop] }
|
50
|
+
end
|
36
51
|
end
|
data/spec/phare/git_spec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Phare::Git do
|
4
|
+
let(:described_class) { Phare::Git }
|
5
|
+
|
4
6
|
let(:extensions) { ['.rb'] }
|
5
7
|
let(:options) { { diff: true } }
|
6
8
|
let(:git) { described_class.new(extensions, options) }
|
@@ -39,7 +41,7 @@ describe Phare::Git do
|
|
39
41
|
end
|
40
42
|
|
41
43
|
context 'with untracked file' do
|
42
|
-
let(:tree) {
|
44
|
+
let(:tree) { '?? foo.rb' }
|
43
45
|
|
44
46
|
it { expect(git.changes).to eq(['foo.rb']) }
|
45
47
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -29,12 +29,16 @@ RSpec::Matchers.define :exit_with_code do |expected_code|
|
|
29
29
|
actual && actual == expected_code
|
30
30
|
end
|
31
31
|
|
32
|
-
|
32
|
+
supports_block_expectations do
|
33
|
+
true
|
34
|
+
end
|
35
|
+
|
36
|
+
failure_message do
|
33
37
|
"expected block to call exit(#{expected_code}) but exit" +
|
34
38
|
(actual.nil? ? ' not called' : "(#{actual}) was called")
|
35
39
|
end
|
36
40
|
|
37
|
-
failure_message_when_negated do
|
41
|
+
failure_message_when_negated do
|
38
42
|
"expected block not to call exit(#{expected_code})"
|
39
43
|
end
|
40
44
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phare
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rémi Prévost
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,18 +44,32 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.0.0.
|
47
|
+
version: 3.0.0.rc1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.0.0.
|
54
|
+
version: 3.0.0.rc1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.22'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.22'
|
55
69
|
description: Phare looks into your files and check for (Ruby, JavaScript and SCSS)
|
56
70
|
coding style errors.
|
57
71
|
email:
|
58
|
-
-
|
72
|
+
- rprevost@mirego.com
|
59
73
|
executables:
|
60
74
|
- phare
|
61
75
|
extensions: []
|