Ruby
This section covers configuration specific to the ruby
analyzer.
Code Analysis
.deepsource.toml
This section covers .deepsource.toml
configuration specific to the go
analyzer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of the analyzer.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this analyzer should be run.
- Example:
meta
- Type: Table
- Presence: optional
- Description: Any supported metadata to pass to the analyzer.
- Example:
skip_doc_coverage
- Type: Array
- Presence: optional
- Description: Specify which artifacts to skip when calculating documentation coverage.
- Available Values:
class
,module
,method
,singleton_method
class
- Ignore documentation coverage for class definitionsmodule
- Ignore documentation coverage for module definitionsmethod
- Ignore documentation coverage for method definitionssingleton_method
- Ignore documentation coverage for singleton method definitions
- Default Value: []
- Example:
cyclomatic_complexity_threshold
- Type: String
- Presence: optional
- Description: Specify the acceptable risk category for your project as the threshold. All functions with complexity beyond this threshold will raise an issue. For example, setting the threshold to
low
will flag all functions that have a cyclomatic complexity of more than5
, while setting the threshold tocritical
will not flag any function. - Available Values:
low
,medium
,high
,very-high
andcritical
Risk category | Cyclomatic complexity range | Recommended action |
---|---|---|
low | 1-5 | No action is needed. |
medium | 6-15 | Review and monitor. |
high | 16-25 | Review and refactor. Recommended to add detailed comments if the function absolutely needs to be kept as it is. |
very-high | 26-50 | Refactor to reduce the complexity. |
critical | >50 | Must refactor this. This can make the code untestable and very difficult to understand. |
- Default Value:
medium
- Example:
Sample config
We currently support Ruby 2.0 and above.
Code Coverage
SimpleCov
First, install simplecov
if it is not already installed:
Follow these steps to generate a test coverage report:
- Add the following lines to the
spec_helper.rb
file inside thetests
folder of your project:
- Add
--require spec_helper.rb
to the.rspec
file. - Run rspec using
bundle exec rake rspec
to generate a coverage report. - The coverage report will be available inside the
coverage
folder.
Once you have a coverage report, you can upload it to DeepSource:
SimpleCov writes coverage results to a .resultset.json
file. This is what you need to upload to DeepSource.
Code Formatter (Transformer)
RuboCop
Format all incoming Ruby code with RuboCop.
This section covers .deepsource.toml
configuration specific to the rubocop
transformer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this transformer.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this transformer should be run.
- Example:
StandardRB
Format all incoming Ruby code with StandardRB.
This section covers .deepsource.toml
configuration specific to the standardrb
transformer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this transformer.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this transformer should be run.
- Example:
Vulnerability Scanning
Supported target files:
Gemfile
Gemfile.lock