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 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