0.0
The project is in a healthy, maintained state
RuboCop runner for Ruby code embedded in Slim.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.0
 Project Readme

SlimEmbedCop

Gem Version CI RubyDoc

RuboCop runner for Ruby code embedded in Slim.

Installation

SlimEmbedCop's installation is pretty standard:

% gem install slimembedcop

If you'd rather install SlimEmbedCop using bundler, add a line for it in your Gemfile (but set the require option to false, as it is a standalone tool):

gem 'slimembedcop', require: false

Usage

Use slimembedcop executable to check offenses and autocorrect them. RuboCop's cop or any custom cop you create can also be used with slimembedcop.

% exe/slimembedcop --help
Usage: slimembedcop [options] [file1, file2, ...]
    -v, --version                    Display version.
    -a, --autocorrect                Autocorrect offenses.
    -c, --config=                    Specify configuration file.
        --[no-]color                 Force color output on or off.
    -d, --debug                      Display debug info.

Example

You have a Slim file like this:

ruby:
  message = "world"
html
  head
    title Slim Samples
  body
    ruby:
      if some_var = true
        do_something
      end
    h1 Hello, #{message}
ruby:
  do_something /pattern/i

When executed, it outputs the following offenses:

% slimembedcop dummy.slim
Inspecting 1 file
W

Offenses:

dummy.slim:2:13: C: [Correctable] Style/StringLiterals: Prefer single-quoted strings when you don't need string interpolation or special symbols.
  message = "world"
            ^^^^^^^
dummy.slim:8:19: W: [Correctable] Lint/AssignmentInCondition: Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition.
      if some_var = true
                  ^
dummy.slim:13:16: W: [Correctable] Lint/AmbiguousRegexpLiteral: Ambiguous regexp literal. Parenthesize the method arguments if it's surely a regexp literal, or add a whitespace to the right of the / if it should be a division.
  do_something /pattern/i
               ^

1 file inspected, 3 offenses detected, 3 offenses autocorrectable

Configuration

The behavior of RuboCop can be controlled via the .rubocop.yml configuration file. The behavior of SlimEmbedCop can be controlled by the .slimembedcop.yml configuration file. It makes it possible to enable/disable certain cops (checks) and to alter their behavior if they accept any parameters. The file can be placed in your home directory, XDG config directory, or in some project directory.

The file has the following format:

inherit_from: ../.rubocop.yml

Style/Encoding:
  Enabled: false

Layout/LineLength:
  Max: 99

NOTE: It is basically the same as RuboCop's. Please check Configuration for details.

License

The gem is available as open source under the terms of the MIT License.