phare 0.5.2 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|