Skip to content

Commit a0a9921

Browse files
benbalterjekyllbot
authored andcommitted
Add Rubocop (#59)
Merge pull request 59
1 parent a7db18f commit a0a9921

File tree

10 files changed

+73
-54
lines changed

10 files changed

+73
-54
lines changed

.gitignore

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
/vendor/gems
2-
.bundle
31
bin
2+
.bundle
43
/*.gem
5-
_site
64
Gemfile.lock
5+
/pkg
6+
_site
7+
/vendor/gems

.rspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
--color
2+
--require spec_helper

.rubocop.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
inherit_gem:
2+
jekyll: .rubocop.yml
3+
4+
AllCops:
5+
Exclude:
6+
- 'vendor/**/*'
7+
8+
9+
Metrics/BlockLength:
10+
Exclude:
11+
- spec/**/*

Rakefile

Lines changed: 0 additions & 10 deletions
This file was deleted.

jemoji.gemspec

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
Gem::Specification.new do |s|
2-
s.name = 'jemoji'
3-
s.summary = 'GitHub-flavored emoji plugin for Jekyll'
4-
s.version = '0.8.1'
5-
s.authors = ['GitHub, Inc.']
6-
s.email = 'support@github.com'
2+
s.name = "jemoji"
3+
s.summary = "GitHub-flavored emoji plugin for Jekyll"
4+
s.version = "0.8.1"
5+
s.authors = ["GitHub, Inc."]
6+
s.email = "support@github.com"
77

8-
s.homepage = 'https://github.com/jekyll/jemoji'
9-
s.licenses = ['MIT']
10-
s.files = [ 'lib/jemoji.rb' ]
8+
s.homepage = "https://github.com/jekyll/jemoji"
9+
s.licenses = ["MIT"]
10+
s.files = [ "lib/jemoji.rb" ]
1111

12-
s.add_dependency 'jekyll', '>= 3.0'
13-
s.add_dependency 'html-pipeline', '~> 2.2'
14-
s.add_dependency 'activesupport', '~> 4.0', '>= 4.2.9'
15-
s.add_dependency 'gemoji', '~> 3.0'
12+
s.add_dependency "jekyll", "~> 3.0"
13+
s.add_dependency "html-pipeline", "~> 2.2"
14+
s.add_dependency "activesupport", "~> 4.0", ">= 4.2.9"
15+
s.add_dependency "gemoji", "~> 3.0"
1616

17-
s.add_development_dependency 'rake'
18-
s.add_development_dependency 'rdoc'
19-
s.add_development_dependency 'rspec', '~> 3.0'
17+
s.add_development_dependency "rspec", "~> 3.0"
18+
s.add_development_dependency "rubocop", "~> 0.38"
2019
end

lib/jemoji.rb

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
require 'jekyll'
2-
require 'gemoji'
3-
require 'html/pipeline'
1+
require "jekyll"
2+
require "gemoji"
3+
require "html/pipeline"
44

55
module Jekyll
66
class Emoji
@@ -11,15 +11,12 @@ class Emoji
1111
class << self
1212
def emojify(doc)
1313
return unless doc.output =~ HTML::Pipeline::EmojiFilter.emoji_pattern
14-
src = emoji_src(doc.site.config)
15-
if doc.output.include? BODY_START_TAG
16-
parsed_doc = Nokogiri::HTML::Document.parse(doc.output)
17-
body = parsed_doc.at_css('body')
18-
body.children = filter_with_emoji(src).call(body.inner_html)[:output].to_s
19-
doc.output = parsed_doc.to_html
20-
else
21-
doc.output = filter_with_emoji(src).call(doc.output)[:output].to_s
22-
end
14+
doc.output = if doc.output.include? BODY_START_TAG
15+
replace_document_body(doc)
16+
else
17+
src = emoji_src(doc.site.config)
18+
filter_with_emoji(src).call(doc.output)[:output].to_s
19+
end
2320
end
2421

2522
# Public: Create or fetch the filter for the given {{src}} asset root.
@@ -29,8 +26,8 @@ def emojify(doc)
2926
# Returns an HTML::Pipeline instance for the given asset root.
3027
def filter_with_emoji(src)
3128
filters[src] ||= HTML::Pipeline.new([
32-
HTML::Pipeline::EmojiFilter
33-
], { :asset_root => src, img_attrs: { align: nil } })
29+
HTML::Pipeline::EmojiFilter,
30+
], { :asset_root => src, :img_attrs => { :align => nil } })
3431
end
3532

3633
# Public: Filters hash where the key is the asset root source.
@@ -78,10 +75,18 @@ def default_asset_root
7875
"#{GITHUB_DOT_COM_ASSET_HOST_URL}#{ASSET_PATH}"
7976
end
8077
end
78+
79+
def replace_document_body(doc)
80+
src = emoji_src(doc.site.config)
81+
parsed_doc = Nokogiri::HTML::Document.parse(doc.output)
82+
body = parsed_doc.at_css("body")
83+
body.children = filter_with_emoji(src).call(body.inner_html)[:output].to_s
84+
parsed_doc.to_html
85+
end
8186
end
8287
end
8388
end
8489

85-
Jekyll::Hooks.register [:pages, :documents], :post_render do |doc|
90+
Jekyll::Hooks.register %i[pages documents], :post_render do |doc|
8691
Jekyll::Emoji.emojify(doc) if Jekyll::Emoji.emojiable?(doc)
8792
end

script/cibuild

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#! /bin/sh
22

3-
bundle exec rspec --color --require spec_helper $@
3+
bundle exec rspec $@
4+
script/fmt -S -D
5+
bundle exec gem build jemoji.gemspec

script/fmt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
bundle exec rubocop $@

spec/jemoji_spec.rb

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
1-
require 'spec_helper'
1+
# frozen_string_literal: true
2+
3+
require "spec_helper"
24

35
RSpec.describe(Jekyll::Emoji) do
46
Jekyll.logger.log_level = :error
57

68
let(:config_overrides) { {} }
79
let(:configs) do
810
Jekyll.configuration(config_overrides.merge({
9-
'skip_config_files' => false,
10-
'collections' => { 'docs' => { 'output' => true }, 'secret' => {} },
11-
'source' => fixtures_dir,
12-
'destination' => fixtures_dir('_site')
11+
"skip_config_files" => false,
12+
"collections" => { "docs" => { "output" => true }, "secret" => {} },
13+
"source" => fixtures_dir,
14+
"destination" => fixtures_dir("_site"),
1315
}))
1416
end
1517
let(:emoji) { described_class }
1618
let(:site) { Jekyll::Site.new(configs) }
1719
let(:default_src) { "https://assets-cdn.github.com/images/icons/" }
18-
let(:result) { "<img class=\"emoji\" title=\":+1:\" alt=\":+1:\" src=\"#{default_src}emoji/unicode/1f44d.png\" height=\"20\" width=\"20\">" }
20+
let(:result) do
21+
<<-STR.strip
22+
<img class="emoji" title=":+1:" alt=":+1:" src="#{default_src}emoji/unicode/1f44d.png" height="20" width="20">
23+
STR
24+
end
1925

2026
let(:posts) { site.posts.docs }
2127
let(:basic_post) { find_by_title(posts, "Refactor") }
@@ -88,7 +94,7 @@ def para(content)
8894
let(:emoji_src) { "http://mine.club/" }
8995
let(:config_overrides) do
9096
{
91-
"emoji" => { "src" => emoji_src }
97+
"emoji" => { "src" => emoji_src },
9298
}
9399
end
94100

spec/spec_helper.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
require File.expand_path('../lib/jemoji.rb', __dir__)
1+
require File.expand_path("../lib/jemoji.rb", __dir__)
22

33
RSpec.configure do |config|
4-
FIXTURES_DIR = File.expand_path('fixture_site', __dir__)
4+
FIXTURES_DIR = File.expand_path("fixture_site", __dir__)
5+
56
def fixtures_dir(*paths)
67
File.join(FIXTURES_DIR, *paths)
78
end
89

910
def find_by_title(docs, title)
10-
docs.find { |d| d.title == title }
11+
docs.find { |d| d.data["title"] == title }
1112
end
1213

1314
def index_fixture

0 commit comments

Comments
 (0)