Add CI with static analysis for Ruby linting
Upon a quick search, one of the main tools seems to be Rubocop.
If I install that and run it against jekyll-fdroid
without any options, I get the output shown below.
Most of it seems pretty reasonable. Should I go ahead adding CI that uses this tool, then send through a couple of commits addressing most of their concerns?
Inspecting 10 files
CCCWCCCCCC
Offenses:
Gemfile:4:1: C: Use 2 (not 4) spaces for indentation.
gem 'rubocop', '~> 0.48.1'
^^^^
jekyll-fdroid.gemspec:21:28: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
s.add_runtime_dependency "nokogiri"
^^^^^^^^^^
jekyll-fdroid.gemspec:23:19: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
s.summary = "F-Droid - Free and Open Source Android App Repository"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
jekyll-fdroid.gemspec:24:19: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
s.description = "Browse packages of a F-Droid repository."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
jekyll-fdroid.gemspec:25:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
s.authors = ["Nico Alt"]
^^^^^^^^^^
jekyll-fdroid.gemspec:30:12: C: Unnecessary spacing detected.
s.license = 'AGPL-3.0'
^^^^^^
jekyll-fdroid.gemspec:30:19: C: Operator = should be surrounded by a single space.
s.license = 'AGPL-3.0'
^
lib/jekyll/FDroidPackageDetailPage.rb:1:1: C: The name of this source file (FDroidPackageDetailPage.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/FDroidPackageDetailPage.rb:19:1: C: Extra empty line detected at module body beginning.
lib/jekyll/FDroidPackageDetailPage.rb:20:1: C: Use 2 (not 1) spaces for indentation.
class FDroidPackageDetailPage < ReadYamlPage
^
lib/jekyll/FDroidPackageDetailPage.rb:20:1: C: Tab detected.
class FDroidPackageDetailPage < ReadYamlPage
^
lib/jekyll/FDroidPackageDetailPage.rb:20:2: C: Missing top-level class documentation comment.
class FDroidPackageDetailPage < ReadYamlPage
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:21:1: C: Tab detected.
def initialize(site, base, package)
^^
lib/jekyll/FDroidPackageDetailPage.rb:21:2: C: Use 2 (not 1) spaces for indentation.
def initialize(site, base, package)
^
lib/jekyll/FDroidPackageDetailPage.rb:22:1: C: Tab detected.
$package = package
^^^
lib/jekyll/FDroidPackageDetailPage.rb:22:3: C: Use 2 (not 1) spaces for indentation.
$package = package
^
lib/jekyll/FDroidPackageDetailPage.rb:22:4: C: Do not introduce global variables.
$package = package
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:23:1: C: Tab detected.
@site = site
^^^
lib/jekyll/FDroidPackageDetailPage.rb:24:1: C: Tab detected.
@base = base
^^^
lib/jekyll/FDroidPackageDetailPage.rb:25:1: C: Tab detected.
@dir = "packages"
^^^
lib/jekyll/FDroidPackageDetailPage.rb:25:11: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
@dir = "packages"
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:26:1: C: Tab detected.
@name = $package.at_xpath('id').content + "/index.html"
^^^
lib/jekyll/FDroidPackageDetailPage.rb:26:12: C: Do not introduce global variables.
@name = $package.at_xpath('id').content + "/index.html"
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:26:46: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
@name = $package.at_xpath('id').content + "/index.html"
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:28:1: C: Tab detected.
self.process(@name)
^^^
lib/jekyll/FDroidPackageDetailPage.rb:28:4: C: Redundant self detected.
self.process(@name)
^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:29:1: C: Tab detected.
self.read_yaml((File.expand_path "../../_layouts", File.dirname(__FILE__)), 'package.html')
^^^
lib/jekyll/FDroidPackageDetailPage.rb:29:4: C: Redundant self detected.
self.read_yaml((File.expand_path "../../_layouts", File.dirname(__FILE__)), 'package.html')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:29:37: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.read_yaml((File.expand_path "../../_layouts", File.dirname(__FILE__)), 'package.html')
^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:29:81: C: Line is too long. [94/80]
self.read_yaml((File.expand_path "../../_layouts", File.dirname(__FILE__)), 'package.html')
^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:30:1: C: Tab detected.
getGeneralFrontMatterData
^^^
lib/jekyll/FDroidPackageDetailPage.rb:31:1: C: Tab detected.
getPackagesFrontMatterData
^^^
lib/jekyll/FDroidPackageDetailPage.rb:32:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailPage.rb:34:1: C: Tab detected.
def getGeneralFrontMatterData
^^
lib/jekyll/FDroidPackageDetailPage.rb:34:3: C: Method has too many lines. [25/10]
def getGeneralFrontMatterData ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:34:7: C: Use snake_case for method names.
def getGeneralFrontMatterData
^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:35:1: C: Tab detected.
# Hash with relation between Jekyll and XML variable name
^^^
lib/jekyll/FDroidPackageDetailPage.rb:36:1: C: Tab detected.
assignments = {
^^^
lib/jekyll/FDroidPackageDetailPage.rb:36:3: C: Use 2 (not 1) spaces for indentation.
assignments = {
^
lib/jekyll/FDroidPackageDetailPage.rb:37:1: C: Tab detected.
"added" => "added",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:37:5: C: Use 2 spaces for indentation in a hash, relative to the start of the line where the left curly brace is.
"added" => "added",
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:37:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"added" => "added",
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:37:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"added" => "added",
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:38:1: C: Tab detected.
"antifeatures" => "antifeatures",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:38:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"antifeatures" => "antifeatures",
^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:38:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"antifeatures" => "antifeatures",
^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:39:1: C: Tab detected.
"bitcoin" => "bitcoin",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:39:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"bitcoin" => "bitcoin",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:39:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"bitcoin" => "bitcoin",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:40:1: C: Tab detected.
"categories" => "categories",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:40:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"categories" => "categories",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:40:21: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"categories" => "categories",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:41:1: C: Tab detected.
"changelog" => "changelog",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:41:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"changelog" => "changelog",
^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:41:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"changelog" => "changelog",
^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:42:1: C: Tab detected.
"description" => "desc",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:42:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"description" => "desc",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:42:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"description" => "desc",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:43:1: C: Tab detected.
"donate" => "donate",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:43:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"donate" => "donate",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:43:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"donate" => "donate",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:44:1: C: Tab detected.
"flattr" => "flattr",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:44:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"flattr" => "flattr",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:44:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"flattr" => "flattr",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:45:1: C: Tab detected.
"icon" => "icon",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:45:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"icon" => "icon",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:45:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"icon" => "icon",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:46:1: C: Tab detected.
"issueTracker" => "tracker",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:46:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"issueTracker" => "tracker",
^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:46:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"issueTracker" => "tracker",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:47:1: C: Tab detected.
"lastUpdated" => "lastupdated",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:47:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"lastUpdated" => "lastupdated",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:47:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"lastUpdated" => "lastupdated",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:48:1: C: Tab detected.
"license" => "license",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:48:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"license" => "license",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:48:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"license" => "license",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:49:1: C: Tab detected.
"suggestedVersionCode" => "marketvercode",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:49:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"suggestedVersionCode" => "marketvercode",
^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:49:31: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"suggestedVersionCode" => "marketvercode",
^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:50:1: C: Tab detected.
"suggestedVersion" => "marketversion",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:50:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"suggestedVersion" => "marketversion",
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:50:27: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"suggestedVersion" => "marketversion",
^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:51:1: C: Tab detected.
"package" => "id",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:51:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"package" => "id",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:51:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"package" => "id",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:52:1: C: Tab detected.
"sourceCode" => "source",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:52:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sourceCode" => "source",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:52:21: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sourceCode" => "source",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:53:1: C: Tab detected.
"summary" => "summary",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:53:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"summary" => "summary",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:53:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"summary" => "summary",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:54:1: C: Tab detected.
"title" => "name",
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:54:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"title" => "name",
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:54:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"title" => "name",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:55:1: C: Tab detected.
"webSite" => "web"
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:55:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"webSite" => "web"
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:55:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"webSite" => "web"
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:56:1: C: Tab detected.
}
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:56:5: C: Indent the right brace the same as the start of the line where the left brace is.
}
^
lib/jekyll/FDroidPackageDetailPage.rb:57:1: C: Tab detected.
# Add information from XML to front matter
^^^
lib/jekyll/FDroidPackageDetailPage.rb:58:1: C: Tab detected.
assignments.each do |jekyll, xml|
^^^
lib/jekyll/FDroidPackageDetailPage.rb:59:1: C: Tab detected.
addGeneralFrontMatterData(jekyll, xml)
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:59:4: C: Use 2 (not 1) spaces for indentation.
addGeneralFrontMatterData(jekyll, xml)
^
lib/jekyll/FDroidPackageDetailPage.rb:60:1: C: Tab detected.
end
^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:1: C: Tab detected.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:4: C: Redundant self detected.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:32: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:47: C: Redundant self detected.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:61:57: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.data["beautifulURL"] = "/packages/" + self.data["package"]
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:62:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailPage.rb:64:1: C: Tab detected.
def addGeneralFrontMatterData(jekyll, xml)
^^
lib/jekyll/FDroidPackageDetailPage.rb:64:7: C: Use snake_case for method names.
def addGeneralFrontMatterData(jekyll, xml)
^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:65:1: C: Tab detected.
xmlData = $package.at_xpath(xml)
^^^
lib/jekyll/FDroidPackageDetailPage.rb:65:3: C: Use 2 (not 1) spaces for indentation.
xmlData = $package.at_xpath(xml)
^
lib/jekyll/FDroidPackageDetailPage.rb:65:4: C: Use snake_case for variable names.
xmlData = $package.at_xpath(xml)
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:65:14: C: Do not introduce global variables.
xmlData = $package.at_xpath(xml)
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:66:1: C: Tab detected.
if xmlData != nil
^^^
lib/jekyll/FDroidPackageDetailPage.rb:66:4: C: Use a guard clause instead of wrapping the code inside a conditional expression.
if xmlData != nil
^^
lib/jekyll/FDroidPackageDetailPage.rb:66:4: C: Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
if xmlData != nil
^^
lib/jekyll/FDroidPackageDetailPage.rb:66:15: C: Prefer !expression.nil? over expression != nil.
if xmlData != nil
^^
lib/jekyll/FDroidPackageDetailPage.rb:67:1: C: Tab detected.
self.data[jekyll] = xmlData.content
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:67:4: C: Use 2 (not 1) spaces for indentation.
self.data[jekyll] = xmlData.content
^
lib/jekyll/FDroidPackageDetailPage.rb:67:5: C: Redundant self detected.
self.data[jekyll] = xmlData.content
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:68:1: C: Tab detected.
end
^^^
lib/jekyll/FDroidPackageDetailPage.rb:69:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailPage.rb:71:1: C: Tab detected.
# Hash with relation between Jekyll and XML variable names for the package metadata
^^
lib/jekyll/FDroidPackageDetailPage.rb:71:81: C: Line is too long. [85/80]
# Hash with relation between Jekyll and XML variable names for the package metadata
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:72:1: C: Tab detected.
@@jekyllToXmlPackageAssignments = {
^^
lib/jekyll/FDroidPackageDetailPage.rb:72:3: C: Replace class var @@jekyllToXmlPackageAssignments with a class instance var.
@@jekyllToXmlPackageAssignments = {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:72:3: C: Use snake_case for variable names.
@@jekyllToXmlPackageAssignments = {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:73:1: C: Tab detected.
"added" => "added",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:73:4: C: Use 2 spaces for indentation in a hash, relative to the start of the line where the left curly brace is.
"added" => "added",
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:73:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"added" => "added",
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:73:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"added" => "added",
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:74:1: C: Tab detected.
"apkName" => "apkname",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:74:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"apkName" => "apkname",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:74:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"apkName" => "apkname",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:75:1: C: Tab detected.
"hash" => "hash",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:75:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"hash" => "hash",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:75:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"hash" => "hash",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:76:1: C: Tab detected.
"nativeCode" => "nativecode",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:76:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"nativeCode" => "nativecode",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:76:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"nativeCode" => "nativecode",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:77:1: C: Tab detected.
"maxSDKVersion" => "maxsdkver",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:77:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"maxSDKVersion" => "maxsdkver",
^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:77:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"maxSDKVersion" => "maxsdkver",
^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:78:1: C: Tab detected.
"permissions" => "permissions",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:78:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"permissions" => "permissions",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:78:21: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"permissions" => "permissions",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:79:1: C: Tab detected.
"sdkVersion" => "sdkver",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:79:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sdkVersion" => "sdkver",
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:79:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sdkVersion" => "sdkver",
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:80:1: C: Tab detected.
"sig" => "sig",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:80:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sig" => "sig",
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:80:13: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"sig" => "sig",
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:81:1: C: Tab detected.
"size" => "size",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:81:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"size" => "size",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:81:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"size" => "size",
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:82:1: C: Tab detected.
"srcName" => "srcname",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:82:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"srcName" => "srcname",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:82:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"srcName" => "srcname",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:83:1: C: Tab detected.
"targetSdkVersion" => "targetSdkVersion",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:83:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"targetSdkVersion" => "targetSdkVersion",
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:83:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"targetSdkVersion" => "targetSdkVersion",
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:84:1: C: Tab detected.
"version" => "version",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:84:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"version" => "version",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:84:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"version" => "version",
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:85:1: C: Tab detected.
"versionCode" => "versioncode",
^^^
lib/jekyll/FDroidPackageDetailPage.rb:85:4: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"versionCode" => "versioncode",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:85:21: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
"versionCode" => "versioncode",
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:85:34: C: Avoid comma after the last item of a hash.
"versionCode" => "versioncode",
^
lib/jekyll/FDroidPackageDetailPage.rb:86:1: C: Tab detected.
}
^^
lib/jekyll/FDroidPackageDetailPage.rb:88:1: C: Tab detected.
def getPackagesFrontMatterData
^^
lib/jekyll/FDroidPackageDetailPage.rb:88:7: C: Use snake_case for method names.
def getPackagesFrontMatterData
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:89:1: C: Tab detected.
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^^^
lib/jekyll/FDroidPackageDetailPage.rb:89:3: C: Use 2 (not 1) spaces for indentation.
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^
lib/jekyll/FDroidPackageDetailPage.rb:89:4: C: Redundant self detected.
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:89:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:89:28: C: Do not introduce global variables.
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:89:81: C: Line is too long. [97/80]
self.data["packages"] = $package.xpath('package').map { |package| getPackageFromXml(package) }
^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:90:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailPage.rb:92:1: C: Tab detected.
def getPackageFromXml(packageXml)
^^
lib/jekyll/FDroidPackageDetailPage.rb:92:3: C: Method has too many lines. [13/10]
def getPackageFromXml(packageXml) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:92:7: C: Use snake_case for method names.
def getPackageFromXml(packageXml)
^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:92:25: C: Use snake_case for variable names.
def getPackageFromXml(packageXml)
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:93:1: C: Tab detected.
packageInformation = Hash.new
^^^
lib/jekyll/FDroidPackageDetailPage.rb:93:3: C: Use 2 (not 1) spaces for indentation.
packageInformation = Hash.new
^
lib/jekyll/FDroidPackageDetailPage.rb:93:4: C: Use snake_case for variable names.
packageInformation = Hash.new
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:93:25: C: Use hash literal {} instead of Hash.new.
packageInformation = Hash.new
^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:94:1: C: Tab detected.
lib/jekyll/FDroidPackageDetailPage.rb:94:1: C: Trailing whitespace detected.
lib/jekyll/FDroidPackageDetailPage.rb:95:1: C: Tab detected.
# Add information from XML to front matter
^^^
lib/jekyll/FDroidPackageDetailPage.rb:96:1: C: Tab detected.
@@jekyllToXmlPackageAssignments.each do |jekyll, xml|
^^^
lib/jekyll/FDroidPackageDetailPage.rb:97:1: C: Tab detected.
xmlData = packageXml.at_xpath(xml)
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:97:4: C: Use 2 (not 1) spaces for indentation.
xmlData = packageXml.at_xpath(xml)
^
lib/jekyll/FDroidPackageDetailPage.rb:97:5: C: Use snake_case for variable names.
xmlData = packageXml.at_xpath(xml)
^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:98:1: C: Tab detected.
if xmlData == nil
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:98:5: C: Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
if xmlData == nil
^^
lib/jekyll/FDroidPackageDetailPage.rb:98:16: C: Prefer the use of the nil? predicate.
if xmlData == nil
^^
lib/jekyll/FDroidPackageDetailPage.rb:99:1: C: Tab detected.
next
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:99:5: C: Use 2 (not 1) spaces for indentation.
next
^
lib/jekyll/FDroidPackageDetailPage.rb:100:1: C: Tab detected.
end
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:102:1: C: Tab detected.
# nativeCode and permissions can be comma separated arrays
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:103:1: C: Tab detected.
if ["nativeCode", "permissions"].include? jekyll
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:103:8: C: Use %w or %W for an array of words.
if ["nativeCode", "permissions"].include? jekyll
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:103:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
if ["nativeCode", "permissions"].include? jekyll
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:103:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
if ["nativeCode", "permissions"].include? jekyll
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:104:1: C: Tab detected.
packageInformation[jekyll] = xmlData.content.split(",")
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:104:5: C: Use 2 (not 1) spaces for indentation.
packageInformation[jekyll] = xmlData.content.split(",")
^
lib/jekyll/FDroidPackageDetailPage.rb:104:57: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
packageInformation[jekyll] = xmlData.content.split(",")
^^^
lib/jekyll/FDroidPackageDetailPage.rb:105:1: C: Tab detected.
else
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:106:1: C: Tab detected.
packageInformation[jekyll] = xmlData.content
^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:106:5: C: Use 2 (not 1) spaces for indentation.
packageInformation[jekyll] = xmlData.content
^
lib/jekyll/FDroidPackageDetailPage.rb:107:1: C: Tab detected.
end
^^^^
lib/jekyll/FDroidPackageDetailPage.rb:108:1: C: Tab detected.
end
^^^
lib/jekyll/FDroidPackageDetailPage.rb:110:1: C: Tab detected.
return packageInformation
^^^
lib/jekyll/FDroidPackageDetailPage.rb:110:4: C: Redundant return detected.
return packageInformation
^^^^^^
lib/jekyll/FDroidPackageDetailPage.rb:111:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailPage.rb:112:1: C: Tab detected.
end
^
lib/jekyll/ReadYamlPage.rb:1:1: C: The name of this source file (ReadYamlPage.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/ReadYamlPage.rb:21:1: C: Extra empty line detected at module body beginning.
lib/jekyll/ReadYamlPage.rb:22:1: C: Use 2 (not 1) spaces for indentation.
class ReadYamlPage < Page
^
lib/jekyll/ReadYamlPage.rb:22:1: C: Tab detected.
class ReadYamlPage < Page
^
lib/jekyll/ReadYamlPage.rb:22:2: C: Missing top-level class documentation comment.
class ReadYamlPage < Page
^^^^^
lib/jekyll/ReadYamlPage.rb:23:1: C: Tab detected.
# We need do define it ourself because the templates are in the plugin's directory
^^
lib/jekyll/ReadYamlPage.rb:23:81: C: Line is too long. [84/80]
# We need do define it ourself because the templates are in the plugin's directory
^^^^
lib/jekyll/ReadYamlPage.rb:24:1: C: Tab detected.
def read_yaml(base, name, opts = {})
^^
lib/jekyll/ReadYamlPage.rb:24:2: C: Use 2 (not 1) spaces for indentation.
def read_yaml(base, name, opts = {})
^
lib/jekyll/ReadYamlPage.rb:24:3: C: Assignment Branch Condition size for read_yaml is too high. [24.92/15]
def read_yaml(base, name, opts = {})
^^^
lib/jekyll/ReadYamlPage.rb:24:3: C: Method has too many lines. [12/10]
def read_yaml(base, name, opts = {}) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/ReadYamlPage.rb:25:1: C: Tab detected.
begin
^^^
lib/jekyll/ReadYamlPage.rb:25:3: C: Use 2 (not 1) spaces for indentation.
begin
^
lib/jekyll/ReadYamlPage.rb:26:1: C: Tab detected.
self.content = File.read(File.join(base.to_s, name.to_s), (site ? site.file_read_opts : {}).merge(opts))
^^^^
lib/jekyll/ReadYamlPage.rb:26:4: C: Use 2 (not 1) spaces for indentation.
self.content = File.read(File.join(base.to_s, name.to_s), (site ? site.file_read_opts : {}).merge(opts))
^
lib/jekyll/ReadYamlPage.rb:26:81: C: Line is too long. [108/80]
self.content = File.read(File.join(base.to_s, name.to_s), (site ? site.file_read_opts : {}).merge(opts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/ReadYamlPage.rb:27:1: C: Tab detected.
if content =~ /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
^^^^
lib/jekyll/ReadYamlPage.rb:28:1: C: Tab detected.
self.content = $POSTMATCH
^^^^^
lib/jekyll/ReadYamlPage.rb:28:5: C: Use 2 (not 1) spaces for indentation.
self.content = $POSTMATCH
^
lib/jekyll/ReadYamlPage.rb:29:1: C: Tab detected.
self.data = SafeYAML.load($1)
^^^^^
lib/jekyll/ReadYamlPage.rb:29:32: C: Avoid the use of Perl-style backrefs.
self.data = SafeYAML.load($1)
^^
lib/jekyll/ReadYamlPage.rb:30:1: C: Tab detected.
end
^^^^
lib/jekyll/ReadYamlPage.rb:31:1: C: Tab detected.
rescue SyntaxError => e
^^^^
lib/jekyll/ReadYamlPage.rb:31:5: C: rescue at 31, 4 is not aligned with end at 35, 3.
rescue SyntaxError => e
^^^^^^
lib/jekyll/ReadYamlPage.rb:32:1: C: Tab detected.
Jekyll.logger.warn "YAML Exception reading #{File.join(base.to_s, name.to_s)}: #{e.message}"
^^^^^
lib/jekyll/ReadYamlPage.rb:32:5: C: Use 2 (not 1) spaces for indentation.
Jekyll.logger.warn "YAML Exception reading #{File.join(base.to_s, name.to_s)}: #{e.message}"
^
lib/jekyll/ReadYamlPage.rb:32:81: C: Line is too long. [97/80]
Jekyll.logger.warn "YAML Exception reading #{File.join(base.to_s, name.to_s)}: #{e.message}"
^^^^^^^^^^^^^^^^^
lib/jekyll/ReadYamlPage.rb:33:1: C: Tab detected.
rescue Exception => e
^^^^
lib/jekyll/ReadYamlPage.rb:33:5: W: Avoid rescuing the Exception class. Perhaps you meant to rescue StandardError?
rescue Exception => e ...
^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/ReadYamlPage.rb:33:5: C: rescue at 33, 4 is not aligned with end at 35, 3.
rescue Exception => e
^^^^^^
lib/jekyll/ReadYamlPage.rb:34:1: C: Tab detected.
Jekyll.logger.warn "Error reading file #{File.join(base.to_s, name.to_s)}: #{e.message}"
^^^^^
lib/jekyll/ReadYamlPage.rb:34:5: C: Use 2 (not 1) spaces for indentation.
Jekyll.logger.warn "Error reading file #{File.join(base.to_s, name.to_s)}: #{e.message}"
^
lib/jekyll/ReadYamlPage.rb:34:81: C: Line is too long. [93/80]
Jekyll.logger.warn "Error reading file #{File.join(base.to_s, name.to_s)}: #{e.message}"
^^^^^^^^^^^^^
lib/jekyll/ReadYamlPage.rb:35:1: C: Tab detected.
end
^^^
lib/jekyll/ReadYamlPage.rb:37:1: C: Tab detected.
self.data ||= {}
^^^
lib/jekyll/ReadYamlPage.rb:38:1: C: Tab detected.
end
^^
lib/jekyll/ReadYamlPage.rb:39:1: C: Tab detected.
end
^
lib/jekyll/FDroidLatestPackagesTag.rb:1:1: C: The name of this source file (FDroidLatestPackagesTag.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/FDroidLatestPackagesTag.rb:19:1: C: Extra empty line detected at module body beginning.
lib/jekyll/FDroidLatestPackagesTag.rb:20:1: C: Use 2 (not 1) spaces for indentation.
class FDroidLatestPackagesTag < Liquid::Tag
^
lib/jekyll/FDroidLatestPackagesTag.rb:20:1: C: Tab detected.
class FDroidLatestPackagesTag < Liquid::Tag
^
lib/jekyll/FDroidLatestPackagesTag.rb:20:2: C: Missing top-level class documentation comment.
class FDroidLatestPackagesTag < Liquid::Tag
^^^^^
lib/jekyll/FDroidLatestPackagesTag.rb:21:1: C: Extra empty line detected at class body beginning.
lib/jekyll/FDroidLatestPackagesTag.rb:22:1: C: Tab detected.
def initialize(tag_name, text, tokens)
^^
lib/jekyll/FDroidLatestPackagesTag.rb:22:2: C: Use 2 (not 1) spaces for indentation.
def initialize(tag_name, text, tokens)
^
lib/jekyll/FDroidLatestPackagesTag.rb:23:1: C: Tab detected.
super
^^^
lib/jekyll/FDroidLatestPackagesTag.rb:23:3: C: Use 2 (not 1) spaces for indentation.
super
^
lib/jekyll/FDroidLatestPackagesTag.rb:24:1: C: Tab detected.
end
^^
lib/jekyll/FDroidLatestPackagesTag.rb:26:1: C: Tab detected.
def render(context)
^^
lib/jekyll/FDroidLatestPackagesTag.rb:27:1: C: Tab detected.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-latest-packages.html", File.dirname(__FILE__))))
^^^
lib/jekyll/FDroidLatestPackagesTag.rb:27:3: C: Use 2 (not 1) spaces for indentation.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-latest-packages.html", File.dirname(__FILE__))))
^
lib/jekyll/FDroidLatestPackagesTag.rb:27:64: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-latest-packages.html", File.dirname(__FILE__))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidLatestPackagesTag.rb:27:81: C: Line is too long. [135/80]
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-latest-packages.html", File.dirname(__FILE__))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidLatestPackagesTag.rb:28:1: C: Tab detected.
template.render(context)
^^^
lib/jekyll/FDroidLatestPackagesTag.rb:29:1: C: Tab detected.
end
^^
lib/jekyll/FDroidLatestPackagesTag.rb:30:1: C: Tab detected.
end
^
lib/jekyll/FDroidLatestPackagesTag.rb:33:81: C: Line is too long. [93/80]
Liquid::Template.register_tag('fdroid_show_latest_packages', Jekyll::FDroidLatestPackagesTag)
^^^^^^^^^^^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:1:1: C: The name of this source file (FDroidLastUpdatedPackagesTag.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:19:1: C: Extra empty line detected at module body beginning.
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:20:1: C: Use 2 (not 1) spaces for indentation.
class FDroidLastUpdatedPackagesTag < Liquid::Tag
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:20:1: C: Tab detected.
class FDroidLastUpdatedPackagesTag < Liquid::Tag
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:20:2: C: Missing top-level class documentation comment.
class FDroidLastUpdatedPackagesTag < Liquid::Tag
^^^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:21:1: C: Extra empty line detected at class body beginning.
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:22:1: C: Tab detected.
def initialize(tag_name, text, tokens)
^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:22:2: C: Use 2 (not 1) spaces for indentation.
def initialize(tag_name, text, tokens)
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:23:1: C: Tab detected.
super
^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:23:3: C: Use 2 (not 1) spaces for indentation.
super
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:24:1: C: Tab detected.
end
^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:26:1: C: Tab detected.
def render(context)
^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:27:1: C: Tab detected.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-lastupdated-packages.html", File.dirname(__FILE__))))
^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:27:3: C: Use 2 (not 1) spaces for indentation.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-lastupdated-packages.html", File.dirname(__FILE__))))
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:27:64: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-lastupdated-packages.html", File.dirname(__FILE__))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:27:81: C: Line is too long. [140/80]
template = Liquid::Template.parse(IO.read((File.expand_path "../../_layouts/sidebar-lastupdated-packages.html", File.dirname(__FILE__))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:28:1: C: Tab detected.
template.render(context)
^^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:29:1: C: Tab detected.
end
^^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:30:1: C: Tab detected.
end
^
lib/jekyll/FDroidLastUpdatedPackagesTag.rb:33:81: C: Line is too long. [104/80]
Liquid::Template.register_tag('fdroid_show_last_updated_packages', Jekyll::FDroidLastUpdatedPackagesTag)
^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:1:1: C: The name of this source file (FDroidPackageDetailGenerator.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/FDroidPackageDetailGenerator.rb:19:1: C: Extra empty line detected at module body beginning.
lib/jekyll/FDroidPackageDetailGenerator.rb:20:1: C: Use 2 (not 1) spaces for indentation.
class FDroidPackagesGenerator < Generator
^
lib/jekyll/FDroidPackageDetailGenerator.rb:20:1: C: Tab detected.
class FDroidPackagesGenerator < Generator
^
lib/jekyll/FDroidPackageDetailGenerator.rb:20:2: C: Missing top-level class documentation comment.
class FDroidPackagesGenerator < Generator
^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:21:1: C: Tab detected.
attr_accessor :alreadyBuilt
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:21:2: C: Use 2 (not 1) spaces for indentation.
attr_accessor :alreadyBuilt
^
lib/jekyll/FDroidPackageDetailGenerator.rb:23:1: C: Tab detected.
safe true
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:24:1: C: Tab detected.
priority :highest
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:26:1: C: Tab detected.
def generate(site)
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:26:3: C: Assignment Branch Condition size for generate is too high. [31.06/15]
def generate(site)
^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:26:3: C: Method has too many lines. [16/10]
def generate(site) ...
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:27:1: C: Tab detected.
# generator will only run on first build, not because of auto-regeneration
^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:28:1: C: Tab detected.
if @alreadyBuilt != true
^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:28:3: C: Use 2 (not 1) spaces for indentation.
if @alreadyBuilt != true
^
lib/jekyll/FDroidPackageDetailGenerator.rb:28:4: C: Use a guard clause instead of wrapping the code inside a conditional expression.
if @alreadyBuilt != true
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:29:1: C: Tab detected.
@alreadyBuilt = true
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:29:4: C: Use 2 (not 1) spaces for indentation.
@alreadyBuilt = true
^
lib/jekyll/FDroidPackageDetailGenerator.rb:29:5: C: Use snake_case for variable names.
@alreadyBuilt = true
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:31:1: C: Tab detected.
# Add plugin's SASS directory so site's list of SASS directories
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:32:1: C: Tab detected.
site.config["sass"] = Hash.new
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:32:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.config["sass"] = Hash.new
^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:32:27: C: Use hash literal {} instead of Hash.new.
site.config["sass"] = Hash.new
^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:1: C: Tab detected.
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:25: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:42: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:69: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:33:81: C: Line is too long. [107/80]
site.config["sass"]["load_paths"] = ["_sass", (File.expand_path "../../_sass", File.dirname(__FILE__))]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:35:1: C: Tab detected.
packages = FDroidIndex.new.getIndex(site.config["fdroid-repo"])
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:35:53: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
packages = FDroidIndex.new.getIndex(site.config["fdroid-repo"])
^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:36:1: C: Tab detected.
# Generate detail page for every package
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:37:1: C: Tab detected.
packagesCollection = Collection.new(site, "packages")
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:37:5: C: Use snake_case for variable names.
packagesCollection = Collection.new(site, "packages")
^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:37:47: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
packagesCollection = Collection.new(site, "packages")
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:38:1: C: Tab detected.
site.collections["packages"] = packagesCollection
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:38:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.collections["packages"] = packagesCollection
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:39:1: C: Tab detected.
packages.each do |package|
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:40:1: C: Tab detected.
myPage = FDroidPackageDetailPage.new(site, site.source, package)
^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:40:5: C: Use 2 (not 1) spaces for indentation.
myPage = FDroidPackageDetailPage.new(site, site.source, package)
^
lib/jekyll/FDroidPackageDetailGenerator.rb:40:6: C: Use snake_case for variable names.
myPage = FDroidPackageDetailPage.new(site, site.source, package)
^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:41:1: C: Tab detected.
site.pages << myPage
^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:42:1: C: Tab detected.
site.collections["packages"].docs << myPage
^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:42:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.collections["packages"].docs << myPage
^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:43:1: C: Tab detected.
end
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:44:1: C: Tab detected.
# Generate browsing pages
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:45:1: C: Tab detected.
site.includes_load_paths << (File.expand_path "../../_includes", File.dirname(__FILE__))
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:45:51: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
site.includes_load_paths << (File.expand_path "../../_includes", File.dirname(__FILE__))
^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:45:81: C: Line is too long. [92/80]
site.includes_load_paths << (File.expand_path "../../_includes", File.dirname(__FILE__))
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:46:1: C: Tab detected.
browsingPage = FDroidBrowsingPage.new(site, site.source)
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:46:5: C: Use snake_case for variable names.
browsingPage = FDroidBrowsingPage.new(site, site.source)
^^^^^^^^^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:47:1: C: Tab detected.
site.pages << browsingPage
^^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:48:1: C: Tab detected.
end
^^^
lib/jekyll/FDroidPackageDetailGenerator.rb:49:1: C: Tab detected.
end
^^
lib/jekyll/FDroidPackageDetailGenerator.rb:50:1: C: Tab detected.
end
^
lib/jekyll/FDroidBrowsingPage.rb:1:1: C: The name of this source file (FDroidBrowsingPage.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll/FDroidBrowsingPage.rb:19:1: C: Extra empty line detected at module body beginning.
lib/jekyll/FDroidBrowsingPage.rb:20:1: C: Use 2 (not 1) spaces for indentation.
class FDroidBrowsingPage < ReadYamlPage
^
lib/jekyll/FDroidBrowsingPage.rb:20:1: C: Tab detected.
class FDroidBrowsingPage < ReadYamlPage
^
lib/jekyll/FDroidBrowsingPage.rb:20:2: C: Missing top-level class documentation comment.
class FDroidBrowsingPage < ReadYamlPage
^^^^^
lib/jekyll/FDroidBrowsingPage.rb:21:1: C: Tab detected.
def initialize(site, base)
^^
lib/jekyll/FDroidBrowsingPage.rb:21:2: C: Use 2 (not 1) spaces for indentation.
def initialize(site, base)
^
lib/jekyll/FDroidBrowsingPage.rb:22:1: C: Tab detected.
@site = site
^^^
lib/jekyll/FDroidBrowsingPage.rb:22:3: C: Use 2 (not 1) spaces for indentation.
@site = site
^
lib/jekyll/FDroidBrowsingPage.rb:23:1: C: Tab detected.
@base = base
^^^
lib/jekyll/FDroidBrowsingPage.rb:24:1: C: Tab detected.
@dir = "packages"
^^^
lib/jekyll/FDroidBrowsingPage.rb:24:11: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
@dir = "packages"
^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:25:1: C: Tab detected.
@name = "index.html"
^^^
lib/jekyll/FDroidBrowsingPage.rb:25:12: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
@name = "index.html"
^^^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:27:1: C: Tab detected.
self.process(@name)
^^^
lib/jekyll/FDroidBrowsingPage.rb:27:4: C: Redundant self detected.
self.process(@name)
^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:28:1: C: Tab detected.
self.read_yaml((File.expand_path "../../_pages", File.dirname(__FILE__)), 'browse.html')
^^^
lib/jekyll/FDroidBrowsingPage.rb:28:4: C: Redundant self detected.
self.read_yaml((File.expand_path "../../_pages", File.dirname(__FILE__)), 'browse.html')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:28:37: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
self.read_yaml((File.expand_path "../../_pages", File.dirname(__FILE__)), 'browse.html')
^^^^^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:28:81: C: Line is too long. [91/80]
self.read_yaml((File.expand_path "../../_pages", File.dirname(__FILE__)), 'browse.html')
^^^^^^^^^^^
lib/jekyll/FDroidBrowsingPage.rb:29:1: C: Tab detected.
end
^^
lib/jekyll/FDroidBrowsingPage.rb:30:1: C: Tab detected.
end
^
lib/jekyll-fdroid.rb:1:1: C: The name of this source file (jekyll-fdroid.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/jekyll-fdroid.rb:18:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "fdroid/FDroidIndex"
^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:19:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/ReadYamlPage"
^^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:20:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/FDroidBrowsingPage"
^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:21:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/FDroidLastUpdatedPackagesTag"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:22:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/FDroidLatestPackagesTag"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:23:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/FDroidPackageDetailGenerator"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/jekyll-fdroid.rb:24:9: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
require "jekyll/FDroidPackageDetailPage"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/fdroid/FDroidIndex.rb:1:1: C: The name of this source file (FDroidIndex.rb) should use snake_case.
# F-Droid's Jekyll Plugin
^
lib/fdroid/FDroidIndex.rb:21:1: C: Missing top-level class documentation comment.
class FDroidIndex
^^^^^
lib/fdroid/FDroidIndex.rb:22:1: C: Use 2 (not 1) spaces for indentation.
def getIndex(repo)
^
lib/fdroid/FDroidIndex.rb:22:1: C: Tab detected.
def getIndex(repo)
^
lib/fdroid/FDroidIndex.rb:22:6: C: Use snake_case for method names.
def getIndex(repo)
^^^^^^^^
lib/fdroid/FDroidIndex.rb:23:1: C: Tab detected.
index = open(URI.parse(repo + '/index.xml')).read
^^
lib/fdroid/FDroidIndex.rb:23:2: C: Use 2 (not 1) spaces for indentation.
index = open(URI.parse(repo + '/index.xml')).read
^
lib/fdroid/FDroidIndex.rb:24:1: C: Tab detected.
Nokogiri::XML(index).xpath('fdroid').xpath('application')
^^
lib/fdroid/FDroidIndex.rb:25:1: C: Tab detected.
end
^
10 files inspected, 391 offenses detected