codeclimate-engine-rb 0.3.0 → 0.4.2

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
- SHA1:
3
- metadata.gz: 1685290f9566459a9ad7cdad9dcc0d1bff0bfcba
4
- data.tar.gz: 128d1a2ba43c826485b704d44bd67394360862d2
2
+ SHA256:
3
+ metadata.gz: 96bfcb4a51e27a6ecd8ae91d51a199ee12a0fc2150f241fba3adaecc2533bf2d
4
+ data.tar.gz: 953e685ef59776ad00b8caefe1902a4cd8f6c77d919d02d8ba513edad16cbbdf
5
5
  SHA512:
6
- metadata.gz: 47603434ec83b5f99f3e401ed1e1dc89a6d4f6288fa3152c47467207e0e5e15b5f0c4bf3d37eb9e530ba4c357d55a9e6e25c381b58588e137dd645fb8095ffa9
7
- data.tar.gz: 1a6d5a9cb272c72534221bde4bdaececf0c2170c413816df4aa4e044e15bfa88f84816af458151f3e3df24c54104e04d70284c533421ccae4aa708ffb2382d2a
6
+ metadata.gz: b4d1a6cbaa5b8dce90e17386bf701bb78d6174057e3d58ea1cebc60e03805683c5c63e8ce04dfbb8ed0e99e735341dcadd353bd49bbb2362c081de3f6d3293cb
7
+ data.tar.gz: a84b3c0821b6ee29417106c847bbac103b635df98b75858377e578d8999eca66d6af1066192c415f220262375138279fa96d72fe4afb543e35c7f15b3e6cb8e9
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
+ --require 'spec_helper'
data/README.md CHANGED
@@ -61,6 +61,10 @@ Code Climate requires that each issue is terminated with a null character.
61
61
  Calling `render` on an issue will output the issue's JSON, followed by a null
62
62
  character.
63
63
 
64
+ ## Code Climate engines using this gem
65
+
66
+ * [Reek](https://docs.codeclimate.com/docs/reek)
67
+
64
68
  ## Development
65
69
 
66
70
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -12,15 +12,15 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.summary = "JSON issue formatter for the Code Climate engine"
14
14
  spec.homepage = "https://github.com/andyw8/codeclimate-engine-rb"
15
+ spec.licenses = ["MIT"]
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
17
18
  spec.bindir = "exe"
18
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
20
  spec.require_paths = ["lib"]
20
21
 
21
- spec.add_development_dependency "bundler", "~> 1.9"
22
+ spec.add_development_dependency "bundler", ">= 1.9", "< 3.0"
22
23
  spec.add_development_dependency "rake", "~> 10.0"
23
24
  spec.add_development_dependency "rspec", "~> 3.3"
24
- spec.add_dependency "virtus", "~> 1.0"
25
25
  end
26
26
  # rubocop:enable Metrics/LineLength
@@ -25,7 +25,7 @@ module CCEngine
25
25
  private
26
26
 
27
27
  def parsed_json
28
- @parsed_json = JSON.parse(json_string)
28
+ @parsed_json ||= JSON.parse(json_string)
29
29
  end
30
30
  end
31
31
  end
@@ -1,16 +1,25 @@
1
- require "virtus"
2
1
  require "json"
3
2
 
4
3
  module CCEngine
5
4
  class Issue
6
- include Virtus.model(strict: true)
7
5
 
8
- attribute :check_name, String
9
- attribute :description, String
10
- attribute :categories, Array[String]
11
- attribute :location
12
- attribute :remediation_points
13
- attribute :content
6
+ def initialize(
7
+ check_name:,
8
+ description:,
9
+ categories:,
10
+ location:,
11
+ remediation_points:,
12
+ content:,
13
+ fingerprint:
14
+ )
15
+ @check_name = check_name
16
+ @description = description
17
+ @categories = categories
18
+ @location = location
19
+ @remediation_points = remediation_points
20
+ @content = content
21
+ @fingerprint = fingerprint
22
+ end
14
23
 
15
24
  def render
16
25
  to_hash.to_json + "\0"
@@ -27,7 +36,7 @@ module CCEngine
27
36
  description: description,
28
37
  categories: categories,
29
38
  location: location.to_hash
30
- }.merge(remediation_points_hash).merge(content_hash)
39
+ }.merge(remediation_points_hash).merge(content_hash).merge(fingerprint_hash)
31
40
  end
32
41
 
33
42
  private
@@ -44,10 +53,28 @@ module CCEngine
44
53
  return {} unless content
45
54
 
46
55
  {
47
- body: {
48
- content: content
56
+ content: {
57
+ body: content
49
58
  }
50
59
  }
51
60
  end
61
+
62
+ def fingerprint_hash
63
+ return {} unless fingerprint
64
+
65
+ {
66
+ fingerprint: fingerprint
67
+ }
68
+ end
69
+
70
+ private
71
+
72
+ attr_reader :check_name,
73
+ :description,
74
+ :categories,
75
+ :location,
76
+ :remediation_points,
77
+ :content,
78
+ :fingerprint
52
79
  end
53
80
  end
@@ -1,12 +1,10 @@
1
- require "virtus"
2
-
3
1
  module CCEngine
4
2
  module Location
5
3
  class LineRange
6
- include Virtus.model(strict: true)
7
-
8
- attribute :path, String
9
- attribute :line_range, Range
4
+ def initialize(path:, line_range:)
5
+ @path = path
6
+ @line_range = line_range
7
+ end
10
8
 
11
9
  def to_hash
12
10
  {
@@ -17,6 +15,10 @@ module CCEngine
17
15
  }
18
16
  }
19
17
  end
18
+
19
+ private
20
+
21
+ attr_reader :path, :line_range
20
22
  end
21
23
  end
22
24
  end
@@ -1,13 +1,11 @@
1
- require "virtus"
2
-
3
1
  module CCEngine
4
2
  module Location
5
3
  class Position
6
- include Virtus.model(strict: true)
7
-
8
- attribute :path, String
9
- attribute :start_position
10
- attribute :end_position
4
+ def initialize(path:, start_position:, end_position:)
5
+ @path = path
6
+ @start_position = start_position
7
+ @end_position = end_position
8
+ end
11
9
 
12
10
  def to_hash
13
11
  {
@@ -18,6 +16,10 @@ module CCEngine
18
16
  }
19
17
  }
20
18
  end
19
+
20
+ private
21
+
22
+ attr_reader :path, :start_position, :end_position
21
23
  end
22
24
  end
23
25
  end
@@ -1,12 +1,10 @@
1
- require "virtus"
2
-
3
1
  module CCEngine
4
2
  module Position
5
3
  class Grid
6
- include Virtus.model(strict: true)
7
-
8
- attribute :line, Integer
9
- attribute :column, Integer
4
+ def initialize(line:, column:)
5
+ @line = line
6
+ @column = column
7
+ end
10
8
 
11
9
  def to_hash
12
10
  {
@@ -14,6 +12,8 @@ module CCEngine
14
12
  column: column
15
13
  }
16
14
  end
15
+
16
+ attr_reader :line, :column
17
17
  end
18
18
  end
19
19
  end
@@ -1,17 +1,19 @@
1
- require "virtus"
2
-
3
1
  module CCEngine
4
2
  module Position
5
3
  class Offset
6
- include Virtus.model(strict: true)
7
-
8
- attribute :offset, Integer
4
+ def initialize(offset:)
5
+ @offset = offset
6
+ end
9
7
 
10
8
  def to_hash
11
9
  {
12
10
  offset: offset
13
11
  }
14
12
  end
13
+
14
+ private
15
+
16
+ attr_reader :offset
15
17
  end
16
18
  end
17
19
  end
@@ -1,3 +1,3 @@
1
1
  module CCEngine
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeclimate-engine-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Waite
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2021-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.9'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.9'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,21 +58,7 @@ dependencies:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
60
  version: '3.3'
55
- - !ruby/object:Gem::Dependency
56
- name: virtus
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
- description:
61
+ description:
70
62
  email:
71
63
  - github.aw@andywaite.com
72
64
  executables: []
@@ -95,9 +87,10 @@ files:
95
87
  - lib/cc_engine/version.rb
96
88
  - lib/codeclimate_engine.rb
97
89
  homepage: https://github.com/andyw8/codeclimate-engine-rb
98
- licenses: []
90
+ licenses:
91
+ - MIT
99
92
  metadata: {}
100
- post_install_message:
93
+ post_install_message:
101
94
  rdoc_options: []
102
95
  require_paths:
103
96
  - lib
@@ -112,10 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
105
  - !ruby/object:Gem::Version
113
106
  version: '0'
114
107
  requirements: []
115
- rubyforge_project:
116
- rubygems_version: 2.5.1
117
- signing_key:
108
+ rubygems_version: 3.1.6
109
+ signing_key:
118
110
  specification_version: 4
119
111
  summary: JSON issue formatter for the Code Climate engine
120
112
  test_files: []
121
- has_rdoc: