jekyll-favicon 1.0.0.pre.1 → 1.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +1 -1
  3. data/.devcontainer/devcontainer.json +11 -4
  4. data/.github/workflows/test.yml +5 -5
  5. data/.gitignore +1 -2
  6. data/.reek.yml +25 -0
  7. data/.vscode/launch.json +16 -0
  8. data/.vscode/settings.json +7 -0
  9. data/.vscode/tasks.json +15 -0
  10. data/CHANGELOG.md +4 -0
  11. data/Gemfile +1 -1
  12. data/README.md +3 -3
  13. data/Rakefile +4 -4
  14. data/bin/debug +22 -0
  15. data/jekyll-favicon.gemspec +23 -23
  16. data/lib/jekyll-favicon.rb +5 -7
  17. data/lib/jekyll/favicon.rb +13 -16
  18. data/lib/jekyll/favicon/configuration.rb +11 -11
  19. data/lib/jekyll/favicon/configuration/defaults.rb +6 -6
  20. data/lib/jekyll/favicon/generator.rb +5 -6
  21. data/lib/jekyll/favicon/hooks.rb +4 -4
  22. data/lib/jekyll/favicon/static_data_file.rb +2 -2
  23. data/lib/jekyll/favicon/static_file.rb +18 -18
  24. data/lib/jekyll/favicon/static_file/convertible.rb +30 -27
  25. data/lib/jekyll/favicon/static_file/mutable.rb +16 -16
  26. data/lib/jekyll/favicon/static_file/referenceable.rb +2 -2
  27. data/lib/jekyll/favicon/static_file/sourceable.rb +7 -7
  28. data/lib/jekyll/favicon/static_file/taggable.rb +8 -14
  29. data/lib/jekyll/favicon/static_graphic_file.rb +2 -2
  30. data/lib/jekyll/favicon/tag.rb +9 -10
  31. data/lib/jekyll/favicon/utils.rb +24 -5
  32. data/lib/jekyll/favicon/utils/configuration/compact.rb +29 -32
  33. data/lib/jekyll/favicon/utils/configuration/merge.rb +41 -34
  34. data/lib/jekyll/favicon/utils/configuration/patch.rb +24 -23
  35. data/lib/jekyll/favicon/utils/convert.rb +15 -18
  36. data/lib/jekyll/favicon/utils/tag.rb +44 -28
  37. data/lib/jekyll/favicon/version.rb +1 -1
  38. metadata +7 -9
  39. data/gemfiles/jekyll36.gemfile +0 -6
  40. data/gemfiles/jekyll37.gemfile +0 -6
  41. data/gemfiles/jekyll38.gemfile +0 -6
  42. data/gemfiles/jekyll39.gemfile +0 -6
  43. data/gemfiles/jekyll40.gemfile +0 -6
  44. data/gemfiles/jekyll41.gemfile +0 -6
  45. data/gemfiles/jekyll42.gemfile +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bce096e0104da6d1dbb0dd00c66798a3f7dbc74ec88e5c1bcc5a84f5fa207341
4
- data.tar.gz: eb546cd9559ec82693208ec03e41fd160ed84699c8c1f9794fd0f2a4484233dc
3
+ metadata.gz: 19375fbd665cb27681d89f590ee75312136a775d623beec4303e42e974f60636
4
+ data.tar.gz: d72579b9e971436a3774bdcbf6d20bb1457f50f4e6e682648c85d6434efb3326
5
5
  SHA512:
6
- metadata.gz: b0581ae84881ec5129f0e0a702a6adcfe5f7b44f3f55679e67fe3530054c018d22d2e1e280a61d190062258279950b8e2306214402bd565c0ec4c0e8cac3e723
7
- data.tar.gz: 709e7773c529ea70e875387d0fa5af63f7feba4bba562c8f577f9642b9a1c9eae870834aa2d352efefccbef7e86ab7d7ff25226677261284931eb3f27a24dd9b
6
+ metadata.gz: efaf8c6a2e8e2a09ef3e52c7e3f128c5fa6cb3326dcc7a439b6aab4514e6e88d5581f218112e69dbe124a0d0434f49e12d9c92d25f892e4760193cbf5a77e30d
7
+ data.tar.gz: c21ad3577929122b8b83bd9befc63ed9abe58a6c48c949d6203acbe656fecb3303c15502982146bcb341d5a4bad4d14fc673ac1603d0ed723aaa21c792ccd77c
@@ -14,7 +14,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
14
14
  && apt-get -y install --no-install-recommends imagemagick librsvg2-bin
15
15
 
16
16
  # [Optional] Uncomment this line to install additional gems.
17
- RUN gem install rubocop reek
17
+ RUN gem install reek standard webrick
18
18
 
19
19
  # [Optional] Uncomment this line to install global node packages.
20
20
  # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -14,8 +14,15 @@
14
14
  },
15
15
 
16
16
  // Set *default* container specific settings.json values on container create.
17
- "settings": {
18
- "terminal.integrated.shell.linux": "/bin/bash"
17
+ "settings": {
18
+ "terminal.integrated.profiles.linux": {
19
+ "zsh (login)": {
20
+ "path": "zsh",
21
+ "args": [
22
+ "-l"
23
+ ]
24
+ }
25
+ }
19
26
  },
20
27
 
21
28
  // Add the IDs of extensions you want installed when the container is created.
@@ -27,9 +34,9 @@
27
34
  // "forwardPorts": [],
28
35
 
29
36
  // Use 'postCreateCommand' to run commands after the container is created.
30
- // "postCreateCommand": "ruby --version",
37
+ "postCreateCommand": "bundle install",
31
38
 
32
39
  // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
33
40
  "remoteUser": "vscode"
34
41
 
35
- }
42
+ }
@@ -2,14 +2,14 @@ name: Test
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ $default-branch, next, update-ci ]
5
+ branches: [ main, next, update-ci ]
6
6
  pull_request:
7
- branches: [ $default-branch ]
7
+ branches: [ main ]
8
8
 
9
9
  jobs:
10
10
  test:
11
11
  env:
12
- BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
12
+ BUNDLE_GEMFILE: test/gemfiles/${{ matrix.gemfile }}.gemfile
13
13
 
14
14
  runs-on: ${{ matrix.os }}
15
15
 
@@ -33,6 +33,6 @@ jobs:
33
33
  - ruby-version: '3.0'
34
34
  gemfile: jekyll37
35
35
 
36
- gemfile: [ jekyll36, jekyll37, jekyll38, jekyll39, jekyll40, jekyll41 ]
36
+ gemfile: [ jekyll36, jekyll37, jekyll38, jekyll39, jekyll40, jekyll41, jekyll42 ]
37
37
  os: [ ubuntu-latest ]
38
- ruby-version: [ 2.5, 2.6, 2.7, '3.0' ]
38
+ ruby-version: [ 2.6, 2.7, '3.0' ]
data/.gitignore CHANGED
@@ -10,5 +10,4 @@
10
10
  .ruby-version
11
11
  *.gem
12
12
  Gemfile.lock
13
- gemfiles/*.gemfile.lock
14
- .vscode
13
+ *.gemfile.lock
data/.reek.yml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ detectors:
3
+ ControlParameter:
4
+ exclude:
5
+ - "Jekyll::Favicon::StaticFile::Convertible#write" # overrides Jekyll::StaticFile method
6
+ UtilityFunction:
7
+ exclude:
8
+ - "Jekyll::Favicon::Generator#generate" # overrides Jekyll::Generator method
9
+ - "Jekyll::Favicon::Tag#render" # overrides Liquid::Tag method
10
+ - "Jekyll::Favicon::Utils::Configuration::Compact::ClassMethods#compact" # TODO: refactor
11
+ - "Jekyll::Favicon::Utils::Configuration::Merge::ClassMethods#merge" # TODO: refactor
12
+ - "Jekyll::Favicon::Utils::Configuration::Patch::ClassMethods#patch" # TODO: refactor
13
+ - "Jekyll::Favicon::Utils::Convert::ClassMethods#convert" # TODO: refactor
14
+ - "Jekyll::Favicon::Utils::Tag::ClassMethods#build_element" # TODO: refactor
15
+ - "Jekyll::Favicon::Utils::Tag::ClassMethods#build_tag" # TODO: refactor
16
+ - "Jekyll::Favicon::Utils::Tag::ClassMethods#mutate_element" # TODO: refactor
17
+ NestedIterators:
18
+ exclude:
19
+ - "fixture"
20
+ directories:
21
+ "test/unit":
22
+ InstanceVariableAssumption:
23
+ enabled: false
24
+ TooManyMethods:
25
+ enabled: false
@@ -0,0 +1,16 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+
8
+ {
9
+ "name": "jekyll serve",
10
+ "type": "Ruby",
11
+ "cwd": "${workspaceRoot}",
12
+ "request": "launch",
13
+ "program": "bin/debug"
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ruby.lint": {
3
+ "reek": true,
4
+ "standard": true
5
+ },
6
+ "ruby.useLanguageServer": true
7
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "type": "rake",
6
+ "task": "test",
7
+ "group": {
8
+ "kind": "build",
9
+ "isDefault": true
10
+ },
11
+ "problemMatcher": [],
12
+ "label": "rake: test"
13
+ }
14
+ ]
15
+ }
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.0.pre.2] - 2021-06-11
10
+ ### Fixed
11
+ - mime time error when starting new project
12
+
9
13
  ## [1.0.0.pre.1] - 2021-05-26
10
14
  ### Removed
11
15
  - Delete Gemfile.lock
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
data/README.md CHANGED
@@ -34,7 +34,7 @@ Check the devcontainer's [Dockerfile](.devcontainer/Dockerfile) for more practic
34
34
  Add this line to your application's Gemfile:
35
35
 
36
36
  ```ruby
37
- gem 'jekyll-favicon', '~> 1.0.0.pre.1', group: :jekyll_plugins
37
+ gem 'jekyll-favicon', '~> 1.0.0.pre.2', group: :jekyll_plugins
38
38
  ```
39
39
 
40
40
  ## Usage
@@ -45,8 +45,8 @@ As [Github Pages](https://pages.github.com) build doesn't load custom plugins, t
45
45
 
46
46
  Tested with:
47
47
 
48
- - Jekyll 3.6 to 3.7, ruby 2.5 to 2.7
49
- - Jekyll 3.8 to 4.2, ruby 2.5 to 3.0
48
+ - Jekyll 3.6 to 3.7, ruby 2.6 to 2.7
49
+ - Jekyll 3.8 to 4.2, ruby 2.6 to 3.0
50
50
 
51
51
  ### Generator
52
52
 
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rake/testtask'
3
+ require "rake/testtask"
4
4
 
5
- desc 'run tests'
5
+ desc "run tests"
6
6
  task default: :test
7
7
 
8
8
  Rake::TestTask.new do |t|
9
- t.libs << ['test', 'test/spec', 'test/unit']
10
- t.test_files = FileList['test/**/*_spec.rb', 'test/**/test_*.rb']
9
+ t.libs << ["test", "test/spec", "test/unit"]
10
+ t.test_files = FileList["test/**/*_spec.rb", "test/**/test_*.rb"]
11
11
  t.warning = false
12
12
  end
data/bin/debug ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.expand_path("../../lib", __FILE__))
4
+
5
+ require "pathname"
6
+ require "tmpdir"
7
+ require "jekyll"
8
+ require "jekyll-favicon"
9
+
10
+ GEM_ROOT = Pathname.new "/workspaces/jekyll-favicon"
11
+
12
+ Dir.mktmpdir do |source|
13
+ %w[index.html favicon.svg].each do |basename|
14
+ template = GEM_ROOT.join "test/fixtures", basename
15
+ target = File.join source, basename
16
+ FileUtils.cp template, target
17
+ end
18
+ destination = File.join source, "_site"
19
+ options = {source: source, destination: destination}
20
+ Jekyll::Commands::Build.process options
21
+ Jekyll::Commands::Serve.process options
22
+ end
@@ -1,36 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'jekyll/favicon/version'
5
+ require "jekyll/favicon/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'jekyll-favicon'
9
- spec.version = Jekyll::Favicon::VERSION
10
- spec.authors = ['Alvaro Faundez']
11
- spec.email = ['alvaro@faundez.net']
8
+ spec.name = "jekyll-favicon"
9
+ spec.version = Jekyll::Favicon::VERSION
10
+ spec.authors = ["Alvaro Faundez"]
11
+ spec.email = ["alvaro@faundez.net"]
12
12
 
13
- spec.summary = 'Jekyll plugin for favicon tag generation.'
14
- spec.description = 'Jekyll-favicon is a jekyll plugin that adds the' \
15
- ' tag favicon, generating html tags for favicon.'
16
- spec.homepage = 'https://github.com/afaundez/jekyll-favicon'
17
- spec.license = 'MIT'
13
+ spec.summary = "Jekyll plugin for favicon tag generation."
14
+ spec.description = "Jekyll-favicon is a jekyll plugin that adds the" \
15
+ " tag favicon, generating html tags for favicon."
16
+ spec.homepage = "https://github.com/afaundez/jekyll-favicon"
17
+ spec.license = "MIT"
18
18
 
19
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  f.match(%r{^(test|spec|features)/})
21
21
  end
22
- spec.bindir = 'exe'
23
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
- spec.require_paths = ['lib']
22
+ spec.bindir = "exe"
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ["lib"]
25
25
 
26
- spec.required_ruby_version = '>= 2.5.0'
26
+ spec.required_ruby_version = ">= 2.5.0"
27
27
 
28
- spec.add_development_dependency 'minitest', '~> 5.8'
29
- spec.add_development_dependency 'minitest-hooks', '~> 1.5'
30
- spec.add_development_dependency 'minitest-reporters', '~> 1.4.3'
31
- spec.add_development_dependency 'rake', '~> 12.3'
28
+ spec.add_development_dependency "minitest", "~> 5.8"
29
+ spec.add_development_dependency "minitest-hooks", "~> 1.5"
30
+ spec.add_development_dependency "minitest-reporters", "~> 1.4.3"
31
+ spec.add_development_dependency "rake", "~> 12.3"
32
32
 
33
- spec.add_runtime_dependency 'jekyll', '>= 3.0', '< 5.0'
34
- spec.add_runtime_dependency 'mini_magick', '~> 4.11'
35
- spec.add_runtime_dependency 'rexml', '~> 3.2', '>= 3.2.5'
33
+ spec.add_runtime_dependency "jekyll", ">= 3.0", "< 5.0"
34
+ spec.add_runtime_dependency "mini_magick", "~> 4.11"
35
+ spec.add_runtime_dependency "rexml", "~> 3.2", ">= 3.2.5"
36
36
  end
@@ -1,9 +1,7 @@
1
- # rubocop:disable Naming/FileName
2
- # rubocop:enable Naming/FileName
3
1
  # frozen_string_literal: true
4
2
 
5
- require 'jekyll/favicon'
6
- require 'jekyll/favicon/generator'
7
- require 'jekyll/favicon/tag'
8
- require 'jekyll/favicon/hooks'
9
- require 'jekyll/favicon/version'
3
+ require "jekyll/favicon"
4
+ require "jekyll/favicon/generator"
5
+ require "jekyll/favicon/tag"
6
+ require "jekyll/favicon/hooks"
7
+ require "jekyll/favicon/version"
@@ -1,31 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yaml'
4
- require 'jekyll/favicon/configuration/defaults'
5
- require 'jekyll/favicon/configuration'
6
- require 'jekyll/favicon/static_data_file'
7
- require 'jekyll/favicon/static_graphic_file'
3
+ require "yaml"
4
+ require "jekyll/favicon/configuration/defaults"
5
+ require "jekyll/favicon/configuration"
6
+ require "jekyll/favicon/static_data_file"
7
+ require "jekyll/favicon/static_graphic_file"
8
8
 
9
9
  module Jekyll
10
10
  # Module for custom configurations and defaults
11
11
  module Favicon
12
12
  include Configuration::Defaults
13
13
 
14
- def self.configuration(site)
15
- Configuration.merged site
16
- end
17
-
18
14
  def self.assets(site)
19
- configuration(site).fetch('assets', [])
20
- .collect { |attributes| build_asset site, attributes }
21
- .compact
15
+ Configuration.merged(site)
16
+ .fetch("assets", [])
17
+ .collect { |attributes| build_asset site, attributes }
18
+ .compact
22
19
  end
23
20
 
24
21
  def self.build_asset(site, attributes)
25
- asset_class = case File.extname attributes['name']
26
- when '.ico', '.png', '.svg' then StaticGraphicFile
27
- when '.webmanifest', '.json', '.xml' then StaticDataFile
28
- end
22
+ asset_class = case File.extname attributes["name"]
23
+ when ".ico", ".png", ".svg" then StaticGraphicFile
24
+ when ".webmanifest", ".json", ".xml" then StaticDataFile
25
+ end
29
26
  asset_class&.new site, attributes
30
27
  end
31
28
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'jekyll/utils'
3
+ require "jekyll/utils"
4
4
 
5
5
  module Jekyll
6
6
  module Favicon
@@ -11,12 +11,12 @@ module Jekyll
11
11
 
12
12
  user_overrides = unlegacify user_overrides
13
13
  user_merged = Jekyll::Utils.deep_merge_hashes from_defaults,
14
- user_overrides
14
+ user_overrides
15
15
  standardize user_merged
16
16
  end
17
17
 
18
18
  def self.from_user(site)
19
- site&.config&.fetch 'favicon', {}
19
+ site&.config&.fetch "favicon", {}
20
20
  end
21
21
 
22
22
  def self.from_defaults
@@ -26,7 +26,7 @@ module Jekyll
26
26
  def self.standardize(config)
27
27
  return unless config
28
28
 
29
- config.merge 'source' => standardize_source(config['source'])
29
+ config.merge "source" => standardize_source(config["source"])
30
30
  end
31
31
 
32
32
  def self.standardize_source(source)
@@ -40,16 +40,16 @@ module Jekyll
40
40
 
41
41
  def self.standardize_source_string(source)
42
42
  dir, name = File.split source
43
- { 'name' => name, 'dir' => dir }
43
+ {"name" => name, "dir" => dir}
44
44
  end
45
45
 
46
46
  private_class_method :standardize_source_string
47
47
 
48
48
  def self.standardize_source_hash(source)
49
- name_dir, name = File.split source['name']
50
- dir = source['dir']
49
+ name_dir, name = File.split source["name"]
50
+ dir = source["dir"]
51
51
  source_dir = dir && !dir.empty? ? dir : nil
52
- { 'name' => name, 'dir' => standardize_pathname(source_dir, name_dir) }
52
+ {"name" => name, "dir" => standardize_pathname(source_dir, name_dir)}
53
53
  end
54
54
 
55
55
  private_class_method :standardize_source_hash
@@ -61,9 +61,9 @@ module Jekyll
61
61
  private_class_method :standardize_source_string
62
62
 
63
63
  def self.unlegacify(config)
64
- options = config.slice 'source', 'dir', 'background', 'assets'
65
- path = options['path']
66
- options['dir'] ||= path if path
64
+ options = config.slice "source", "dir", "background", "assets"
65
+ path = options["path"]
66
+ options["dir"] ||= path if path
67
67
  options
68
68
  end
69
69
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yaml'
3
+ require "yaml"
4
4
 
5
5
  module Jekyll
6
6
  module Favicon
@@ -18,7 +18,7 @@ module Jekyll
18
18
  end
19
19
 
20
20
  def self.load_defaults(*parts)
21
- load_file 'config', *parts
21
+ load_file "config", *parts
22
22
  end
23
23
 
24
24
  def self.load_file(*parts)
@@ -28,20 +28,20 @@ module Jekyll
28
28
  end
29
29
 
30
30
  def self.define_defaults(base, method_name, &block)
31
- base.define_singleton_method('defaults', &block)
31
+ base.define_singleton_method("defaults", &block)
32
32
  define_method(method_name, &block)
33
33
  end
34
34
 
35
35
  def self.base_name_to_parts(name)
36
- name.split('::').collect do |module_or_class|
36
+ name.split("::").collect do |module_or_class|
37
37
  camelcase_to_snakecase module_or_class
38
38
  end
39
39
  end
40
40
 
41
41
  def self.camelcase_to_snakecase(camelcase)
42
42
  camelcase.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
43
- .gsub(/([a-z\d])([A-Z])/, '\1_\2')
44
- .downcase
43
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
44
+ .downcase
45
45
  end
46
46
  end
47
47
  end