codegrade 0.0.2 → 0.0.3
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/Gemfile.lock +19 -3
- data/README.md +38 -0
- data/codegrade.gemspec +1 -0
- data/lib/codegrade/grader/jshintrb.rb +23 -0
- data/lib/codegrade/version.rb +1 -1
- data/lib/codegrade.rb +2 -0
- data/spec/models/grader/commit_message_spec.rb +0 -15
- data/spec/models/grader/jshintrb_spec.rb +33 -0
- data/spec/spec_helper.rb +15 -0
- metadata +18 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed941c70ebef8e4a85be978419dca1675e9e3c1f
|
4
|
+
data.tar.gz: d08d06ffcb554a7babe0f18bd336a58699ead4dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0ad5baf525492fb258d847ee5903082a25f9ed3ad5dc7a26e0d5f784c2d057238b71391adfb1cff44c2651effb392d8a64b51a87a625d668d6397854eeb8346
|
7
|
+
data.tar.gz: de9fd150d25a7ff7423a6a8ec27c37e17abd705d05a1fc027a50a21d4aa505a923344676522c5a910187a2bc1f11ef30e6e756b9a9fc10cecc7dd01806f62edc
|
data/Gemfile.lock
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
codegrade (0.0.1)
|
5
|
+
jshintrb (~> 0.2)
|
6
|
+
rubocop (~> 0.27)
|
7
|
+
rugged (~> 0.21)
|
8
|
+
|
1
9
|
GEM
|
2
10
|
remote: https://rubygems.org/
|
3
11
|
specs:
|
@@ -5,11 +13,18 @@ GEM
|
|
5
13
|
astrolabe (1.3.0)
|
6
14
|
parser (>= 2.2.0.pre.3, < 3.0)
|
7
15
|
diff-lcs (1.2.5)
|
16
|
+
execjs (2.2.2)
|
17
|
+
jshintrb (0.2.4)
|
18
|
+
execjs
|
19
|
+
multi_json (>= 1.3)
|
20
|
+
rake
|
21
|
+
multi_json (1.10.1)
|
8
22
|
parser (2.2.0.pre.8)
|
9
23
|
ast (>= 1.1, < 3.0)
|
10
24
|
slop (~> 3.4, >= 3.4.5)
|
11
25
|
powerpack (0.0.9)
|
12
26
|
rainbow (2.0.0)
|
27
|
+
rake (10.3.2)
|
13
28
|
rspec (3.1.0)
|
14
29
|
rspec-core (~> 3.1.0)
|
15
30
|
rspec-expectations (~> 3.1.0)
|
@@ -36,6 +51,7 @@ PLATFORMS
|
|
36
51
|
ruby
|
37
52
|
|
38
53
|
DEPENDENCIES
|
39
|
-
|
40
|
-
|
41
|
-
|
54
|
+
bundler (~> 1.7)
|
55
|
+
codegrade!
|
56
|
+
rake (~> 10.0)
|
57
|
+
rspec (~> 3.1)
|
data/README.md
CHANGED
@@ -5,3 +5,41 @@
|
|
5
5
|
CMake is required to build Rugged gem. On Mac you can install it with command:
|
6
6
|
|
7
7
|
brew install cmake
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'codegrade'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install codegrade
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
Run `codegrade` with no arguments to check your last git commit:
|
28
|
+
|
29
|
+
codegrade
|
30
|
+
|
31
|
+
Pass commit sha to check this specific commit:
|
32
|
+
|
33
|
+
codegrade 08ffde9e7100f27462cf24259ab89a9ed813a14d
|
34
|
+
|
35
|
+
or
|
36
|
+
|
37
|
+
codegrade 08ffde
|
38
|
+
|
39
|
+
## Contributing
|
40
|
+
|
41
|
+
1. Fork it ( https://github.com/[my-github-username]/test/fork )
|
42
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
43
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
44
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
45
|
+
5. Create a new Pull Request
|
data/codegrade.gemspec
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Codegrade
|
2
|
+
module Grader
|
3
|
+
class Jshintrb
|
4
|
+
attr_reader :offenses
|
5
|
+
|
6
|
+
def initialize(content)
|
7
|
+
@content = content
|
8
|
+
end
|
9
|
+
|
10
|
+
def grade
|
11
|
+
@offenses = ::Jshintrb.lint(@content).collect do |data|
|
12
|
+
category = data['raw'].downcase.gsub(
|
13
|
+
/\W/, '_').gsub(/_+/, '_').gsub(/_$/, '')
|
14
|
+
|
15
|
+
Codegrade::Offense.new(
|
16
|
+
:category => category,
|
17
|
+
:line_number => data['line'],
|
18
|
+
:column_number => data['character'])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/codegrade/version.rb
CHANGED
data/lib/codegrade.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
require 'rubocop'
|
3
3
|
require 'rugged'
|
4
|
+
require 'jshintrb'
|
4
5
|
|
5
6
|
require 'codegrade/commit'
|
6
7
|
require 'codegrade/formatter'
|
@@ -8,3 +9,4 @@ require 'codegrade/offense'
|
|
8
9
|
require 'codegrade/grader/commit_message'
|
9
10
|
require 'codegrade/grader/grader'
|
10
11
|
require 'codegrade/grader/rubocop'
|
12
|
+
require 'codegrade/grader/jshintrb'
|
@@ -1,21 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Codegrade::Grader::CommitMessage do
|
4
|
-
def find_offense(grader, conditions = {})
|
5
|
-
grader.offenses.find do |error|
|
6
|
-
all_met = true
|
7
|
-
|
8
|
-
conditions.each do |key, value|
|
9
|
-
if error[key] != value
|
10
|
-
all_met = false
|
11
|
-
break
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
all_met
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
4
|
context 'proper reference commit' do
|
20
5
|
let(:message) do
|
21
6
|
"Implement perfect commit
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Codegrade::Grader::Jshintrb do
|
4
|
+
context 'unnamed function' do
|
5
|
+
let(:content) do
|
6
|
+
"\n\nfunction () { }"
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'returns relevant error' do
|
10
|
+
grader = Codegrade::Grader::Jshintrb.new(content)
|
11
|
+
grader.grade
|
12
|
+
|
13
|
+
expect(find_offense(grader,
|
14
|
+
:category => 'missing_name_in_function_declaration',
|
15
|
+
:line_number => 3)).not_to be_nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'missing semicolon' do
|
20
|
+
let(:content) do
|
21
|
+
"function f1 () {\n x = 1;\n y = 2 \n}"
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns relevant error' do
|
25
|
+
grader = Codegrade::Grader::Jshintrb.new(content)
|
26
|
+
grader.grade
|
27
|
+
|
28
|
+
expect(find_offense(grader,
|
29
|
+
:category => 'missing_semicolon',
|
30
|
+
:line_number => 3)).not_to be_nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -9,3 +9,18 @@ RSpec.configure do |config|
|
|
9
9
|
mocks.verify_partial_doubles = true
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
def find_offense(grader, conditions = {})
|
14
|
+
grader.offenses.find do |error|
|
15
|
+
all_met = true
|
16
|
+
|
17
|
+
conditions.each do |key, value|
|
18
|
+
if error[key] != value
|
19
|
+
all_met = false
|
20
|
+
break
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
all_met
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codegrade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michał Młoźniak
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0.21'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: jshintrb
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0.2'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0.2'
|
84
98
|
description: This tool grades your commit messages and all changes files
|
85
99
|
email:
|
86
100
|
- contact@visuality.pl
|
@@ -103,11 +117,13 @@ files:
|
|
103
117
|
- lib/codegrade/formatter.rb
|
104
118
|
- lib/codegrade/grader/commit_message.rb
|
105
119
|
- lib/codegrade/grader/grader.rb
|
120
|
+
- lib/codegrade/grader/jshintrb.rb
|
106
121
|
- lib/codegrade/grader/rubocop.rb
|
107
122
|
- lib/codegrade/offense.rb
|
108
123
|
- lib/codegrade/version.rb
|
109
124
|
- spec/models/grader/commit_message_spec.rb
|
110
125
|
- spec/models/grader/grader_spec.rb
|
126
|
+
- spec/models/grader/jshintrb_spec.rb
|
111
127
|
- spec/models/grader/rubocop_spec.rb
|
112
128
|
- spec/spec_helper.rb
|
113
129
|
homepage: http://www.visuality.pl
|
@@ -137,5 +153,6 @@ summary: Grade your git commits
|
|
137
153
|
test_files:
|
138
154
|
- spec/models/grader/commit_message_spec.rb
|
139
155
|
- spec/models/grader/grader_spec.rb
|
156
|
+
- spec/models/grader/jshintrb_spec.rb
|
140
157
|
- spec/models/grader/rubocop_spec.rb
|
141
158
|
- spec/spec_helper.rb
|