codegrade 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5db65c0710cb981a6a70470a77af6483a0003067
4
- data.tar.gz: fa8eb37af5f94816e754f3d114c993b72fc9152b
3
+ metadata.gz: ed941c70ebef8e4a85be978419dca1675e9e3c1f
4
+ data.tar.gz: d08d06ffcb554a7babe0f18bd336a58699ead4dd
5
5
  SHA512:
6
- metadata.gz: ed5a8224328dc6347e910839b9b93ad444dfa5add89fdb0d8ee3c5eecc324e627415ca8e95c4277b6c426045373bf1081f8f1fe9238fdba483367bc6c7bd202b
7
- data.tar.gz: b4722a0199d9084dcaca7695113061cd116edc40dda13b2e13a3eccb5059c40349bd9ef8fa733a58ee96508e008595cc9b116d4854001bd3102da370d9796dfc
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
- rspec
40
- rubocop
41
- rugged
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
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency('rspec', '~> 3.1')
24
24
  spec.add_runtime_dependency('rubocop', '~> 0.27')
25
25
  spec.add_runtime_dependency('rugged', '~> 0.21')
26
+ spec.add_runtime_dependency('jshintrb', '~> 0.2')
26
27
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Codegrade
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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