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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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