Skip to content

Commit 287bc45

Browse files
authored
Use rubocop-jekyll to enforce Jekyll's styles (#497)
To stop inheriting `rubocop.yml` from the *latest* version of Jekyll as that may cause false CI failures for PRs in this project. Miscellaneous developmental changes include: - adding support for Bundler 2.0 - dropping test coverage for EOL Ruby 2.3 and older.
1 parent e170d87 commit 287bc45

22 files changed

+55
-51
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
_site/
2+
.gems/
23
.sass-cache/
34
.jekyll-metadata
45
/.bundle/

.rubocop.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1+
require: 'rubocop-jekyll'
12
inherit_gem:
2-
jekyll: .rubocop.yml
3+
rubocop-jekyll: '.rubocop.yml'
34

45
AllCops:
56
Exclude:
67
- lib/jekyll-admin/public/**/*
78
- src/**/*
89
- node_modules/**/*
9-
- Gemfile
10-
- jekyll-admin.gemspec
1110

1211
Metrics/BlockLength:
1312
Enabled: false

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
language: ruby
2-
rvm: 2.2
2+
rvm: 2.4
33
before_install:
44
- nvm install 6
5+
- gem update --system --no-document
56
install: script/bootstrap
67
script: script/cibuild
78
cache:
89
bundler: true
910
yarn: true
1011
directories:
1112
- node_modules
12-
sudo: false
1313
env:
1414
matrix:
1515
- TEST_SUITE=node

Gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
source 'https://rubygems.org'
1+
source "https://rubygems.org"
22

33
# Specify your gem's dependencies in jekyll-admin.gemspec
44
gemspec
55

66
# Site dependencies
7-
gem 'jekyll-seo-tag'
8-
gem 'jekyll-sitemap'
7+
gem "jekyll-seo-tag"
8+
gem "jekyll-sitemap"

jekyll-admin.gemspec

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,39 @@
1-
# coding: utf-8
2-
lib = File.expand_path('../lib', __FILE__)
1+
lib = File.expand_path("lib", __dir__)
32
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4-
require 'jekyll-admin/version'
3+
require "jekyll-admin/version"
54

65
Gem::Specification.new do |spec|
76
spec.name = "jekyll-admin"
87
spec.version = JekyllAdmin::VERSION
98
spec.authors = ["Mert Kahyaoğlu", "GitHub Open Source"]
109
1110

12-
spec.summary = %q{wp-admin for Jekyll, but better}
13-
spec.description = %q{Jekyll::Admin is a drop in administrative framework for Jekyll sites.}
11+
spec.summary = "wp-admin for Jekyll, but better"
12+
spec.description = "Jekyll::Admin is a drop in administrative framework for Jekyll sites."
1413
spec.homepage = "https://github.com/jekyll/jekyll-admin"
1514
spec.license = "MIT"
1615

1716
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
1817
# to allow pushing to a single host or delete this section to allow pushing to any host.
1918
if spec.respond_to?(:metadata)
20-
spec.metadata['allowed_push_host'] = "https://rubygems.org"
19+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
2120
else
2221
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
2322
end
2423

2524
spec.files = Dir.glob("lib/**/*").concat(%w(LICENSE README.md))
2625
spec.bindir = "exe"
27-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26+
spec.executables = spec.files.grep(%r!^exe/!) { |f| File.basename(f) }
2827
spec.require_paths = ["lib"]
2928

3029
spec.add_dependency "jekyll", "~> 3.3"
3130
spec.add_dependency "sinatra", "~> 1.4"
3231
spec.add_dependency "sinatra-contrib", "~> 1.4"
33-
spec.add_dependency "addressable", "~> 2.4"
3432

35-
spec.add_development_dependency "bundler", "~> 1.7"
33+
spec.add_development_dependency "bundler", ">= 1.7"
34+
spec.add_development_dependency "gem-release", "~> 0.7"
3635
spec.add_development_dependency "rake", "~> 10.0"
3736
spec.add_development_dependency "rspec", "~> 3.4"
38-
spec.add_development_dependency "rubocop", "~> 0.57.2"
37+
spec.add_development_dependency "rubocop-jekyll", "~> 0.10.0"
3938
spec.add_development_dependency "sinatra-cross_origin", "~> 0.3"
40-
spec.add_development_dependency "gem-release", "~> 0.7"
4139
end

lib/jekyll-admin/apiable.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ module JekyllAdmin
22
# Abstract module to be included in Convertible and Document to provide
33
# additional, API-specific functionality without duplicating logic
44
module APIable
5-
65
CONTENT_FIELDS = %w(next previous content excerpt).freeze
76

87
# Returns a hash suitable for use as an API response.
@@ -48,9 +47,7 @@ def to_api(include_content: false)
4847
output["name"] = basename
4948
end
5049

51-
if is_a?(Jekyll::StaticFile)
52-
output["from_theme"] = from_theme_gem?
53-
end
50+
output["from_theme"] = from_theme_gem? if is_a?(Jekyll::StaticFile)
5451

5552
output
5653
end
@@ -89,6 +86,7 @@ def file_read_options
8986

9087
def front_matter
9188
return unless file_exists?
89+
9290
@front_matter ||= if file_contents =~ Jekyll::Document::YAML_FRONT_MATTER_REGEXP
9391
SafeYAML.load(Regexp.last_match(1))
9492
else
@@ -98,6 +96,7 @@ def front_matter
9896

9997
def raw_content
10098
return unless file_exists?
99+
101100
@raw_content ||= if file_contents =~ Jekyll::Document::YAML_FRONT_MATTER_REGEXP
102101
$POSTMATCH
103102
else
@@ -111,6 +110,7 @@ def encoded_content
111110

112111
def file_exists?
113112
return @file_exists if defined? @file_exists
113+
114114
@file_exists = File.exist?(file_path)
115115
end
116116

@@ -153,6 +153,7 @@ def content_fields
153153

154154
def url_fields
155155
return {} unless respond_to?(:http_url) && respond_to?(:api_url)
156+
156157
{
157158
"http_url" => http_url,
158159
"api_url" => api_url,

lib/jekyll-admin/data_file.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class DataFile
1414
#
1515
# id - the file ID as passed from the API. This may or may not have an extension
1616
def initialize(id)
17-
@id ||= File.extname(id).empty? ? "#{id}.yml" : id
17+
@id = File.extname(id).empty? ? "#{id}.yml" : id
1818
end
1919
alias_method :relative_path, :id
2020

lib/jekyll-admin/directory.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def directories
6363
path.entries.map do |entry|
6464
next if [".", ".."].include? entry.to_s
6565
next unless path.join(entry).directory?
66+
6667
self.class.new(
6768
path.join(entry),
6869
:base => base, :content_type => content_type, :splat => splat

lib/jekyll-admin/file_helper.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module JekyllAdmin
22
module FileHelper
3-
43
# The file the user requested in the URL
54
def requested_file
65
find_by_path(path)

lib/jekyll-admin/path_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def relative_write_path
4545
# Is this request renaming a file?
4646
def renamed?
4747
return false unless request_payload["path"]
48+
4849
ensure_leading_slash(request_payload["path"]) != relative_path
4950
end
5051

@@ -68,6 +69,7 @@ def directory_path
6869

6970
def ensure_leading_slash(input)
7071
return input if input.nil? || input.empty? || input.start_with?("/")
72+
7173
"/#{input}"
7274
end
7375

0 commit comments

Comments
 (0)