jekyll-data 1.0.0 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b58db9039555a41b84b5c3d663b9bc689267f10a
4
- data.tar.gz: 24db34fd2650c035b8a07a11ecf30cd47b152675
2
+ SHA256:
3
+ metadata.gz: 95e3f9216da63cda9e38c9affb6abd7670f39a29918adc7c7e11ee8f2be2053f
4
+ data.tar.gz: 60732d8194aa06c2bf12ce37d05beeb097e49a537409c4324cd0bb2aeb945398
5
5
  SHA512:
6
- metadata.gz: 7eaf71e652e9ed84805277cc8135c428f90c2239c3dd9563a4504b42db949ef2e8520cb637b26715380b8118203e39088d16b4690398cbb8437e64fac784d1d1
7
- data.tar.gz: cf41dc8dfc5ae0e63176d862c59b6316232a224ce29fe29c7e14094ac0eb5f9fd4137ac98168cdcabb1ca793ae4b4bc1d68667af45b8f9aff7792ee3c6f0901b
6
+ metadata.gz: cc79ac198e020303b2a880f32baa681f61d838ccb241f359e1524eb9e5cd0e0ee0a0d5143359e063a87f9fb19b7d8c47fd1485c8ae9360570927f1aaebc9c672
7
+ data.tar.gz: 4011a6f4bf630320827a6545ccd472d9c593af8bf10ecdf856a8f3d07edab07dd6edc10aff7f00630a6307b77a91931b836caa5ad751397aadc2699d5daaed44
data/README.md CHANGED
@@ -29,8 +29,6 @@ end
29
29
 
30
30
  ## Usage
31
31
 
32
- **Note:** *This plugin will only run in conjunction with a gem-based Jekyll-theme.*
33
-
34
32
  As long as the plugin-gem has been installed properly, and is included in the Gemfile's `:jekyll_plugins` group, data files supported by Jekyll and present in the `_data` directory at the root of your theme-gem will be read. Their contents will be added to the site's internal data hash, provided, an identical data hash doesn't already exist at the site-source.
35
33
 
36
34
  If the theme-gem also includes a `_config.yml` at its root, then it will be read as well. The resulting config hash will be mixed into the site's existing config hash, filling in where the *keys* are not already defined. In other words, the config file at `source` will override corresponding identical keys in a `_config.yml` within the theme-gem which would in turn override corresponding `DEFAULTS` from Jekyll:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "jekyll"
2
4
  require "jekyll-data/version"
3
5
 
@@ -14,22 +16,19 @@ require_relative "jekyll/data_path"
14
16
  require_relative "jekyll/theme_drop"
15
17
 
16
18
  # ----------------------------------------------------------------------------
17
- # Modify the current site instance if it uses a gem-based theme else have this
18
- # plugin disabled.
19
+ # Modify the current site instance only if it uses a gem-based theme.
19
20
  #
20
21
  # if a '_config.yml' is present at the root of theme-gem, it is evaluated and
21
22
  # the extracted hash data is incorprated into the site's config hash.
23
+ #
24
+ # *Jekyll 4.0 has this feature incorporated in its core.*
22
25
  # ----------------------------------------------------------------------------
23
- Jekyll::Hooks.register :site, :after_reset do |site|
24
- if site.theme
25
- file = site.in_theme_dir("_config.yml")
26
- JekyllData::ThemeConfiguration.reconfigure(site) if File.exist?(file)
27
- else
28
- Jekyll.logger.abort_with(
29
- "JekyllData:",
30
- "Error! This plugin only works with gem-based jekyll-themes. " \
31
- "Please disable this plugin to proceed."
32
- )
26
+ unless Jekyll::VERSION.start_with?("4")
27
+ Jekyll::Hooks.register :site, :after_reset do |site|
28
+ if site.theme
29
+ file = site.in_theme_dir("_config.yml")
30
+ JekyllData::ThemeConfiguration.reconfigure(site) if File.exist?(file)
31
+ end
33
32
  end
34
33
  end
35
34
 
@@ -39,11 +38,15 @@ end
39
38
  #
40
39
  # If a _config.yml exists at the root of the theme-gem, output its path.
41
40
  # Placed here inorder to avoid outputting the path after every regeneration.
41
+ #
42
+ # *Jekyll 4.0 detects a theme-configuration natively.*
42
43
  # ---------------------------------------------------------------------------
43
44
  Jekyll::Hooks.register :site, :after_init do |site|
44
45
  if site.theme
45
- file = site.in_theme_dir("_config.yml")
46
- Jekyll.logger.info "Theme Config file:", file if File.exist?(file)
46
+ unless Jekyll::VERSION.start_with?("4")
47
+ file = site.in_theme_dir("_config.yml")
48
+ Jekyll.logger.info "Theme Config file:", file if File.exist?(file)
49
+ end
47
50
  site.reader = JekyllData::Reader.new(site)
48
51
  end
49
52
  end
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  require "csv"
3
4
 
4
5
  module JekyllData
@@ -6,8 +7,7 @@ module JekyllData
6
7
  def initialize(site)
7
8
  @site = site
8
9
  @theme = site.theme
9
- @theme_data_files = Dir[File.join(site.theme.root,
10
- site.config["data_dir"], "**", "*.{yaml,yml,json,csv}")]
10
+ @theme_data_files = Dir[File.join(site.theme.data_path, "**", "*.{yaml,yml,json,csv,tsv}")]
11
11
  end
12
12
 
13
13
  # Read data files within theme-gem.
@@ -1,4 +1,4 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module JekyllData
4
4
  class ThemeConfiguration < Jekyll::Configuration
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllData
2
4
  class ThemeDataReader < Jekyll::DataReader
3
5
  attr_reader :site, :content
6
+
4
7
  def initialize(site)
5
8
  @site = site
6
9
  @content = {}
@@ -9,6 +12,7 @@ module JekyllData
9
12
 
10
13
  def read(dir)
11
14
  return unless site.theme && site.theme.data_path
15
+
12
16
  base = site.in_theme_dir(dir)
13
17
  read_data_to(base, @content)
14
18
  @content
@@ -18,7 +22,7 @@ module JekyllData
18
22
  return unless File.directory?(dir) && !@entry_filter.symlink?(dir)
19
23
 
20
24
  entries = Dir.chdir(dir) do
21
- Dir["*.{yaml,yml,json,csv}"] + Dir["*"].select { |fn| File.directory?(fn) }
25
+ Dir["*.{yaml,yml,json,csv,tsv}"] + Dir["*"].select { |fn| File.directory?(fn) }
22
26
  end
23
27
 
24
28
  entries.each do |entry|
@@ -1,4 +1,4 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module JekyllData
4
4
  class ThemedSiteDrop < Jekyll::Drops::SiteDrop
@@ -9,7 +9,6 @@ module JekyllData
9
9
  def_delegator :@obj, :site_data, :data
10
10
  def_delegators :@obj, :theme
11
11
 
12
- private
13
- def_delegator :@obj, :config, :fallback_data
12
+ private def_delegator :@obj, :config, :fallback_data
14
13
  end
15
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module JekyllData
2
- VERSION = "1.0.0".freeze
4
+ VERSION = "1.1.0"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Jekyll
2
4
  class Command
3
5
  class << self
@@ -7,10 +9,10 @@ module Jekyll
7
9
  #
8
10
  alias_method :original_build_options, :add_build_options
9
11
 
10
- def add_build_options(c)
11
- original_build_options(c)
12
- c.option "show-data", "--show-data",
13
- "Print merged site-data hash when used with --verbose."
12
+ def add_build_options(cmd)
13
+ original_build_options(cmd)
14
+ cmd.option "show-data", "--show-data",
15
+ "Print merged site-data hash when used with --verbose."
14
16
  end
15
17
  end
16
18
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Jekyll
2
4
  class Theme
3
5
  def data_path
4
- path_for "_data".freeze
6
+ @data_path ||= path_for "_data"
5
7
  end
6
8
  end
7
9
  end
@@ -1,19 +1,18 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jekyll
4
4
  module Drops
5
5
  class UnifiedPayloadDrop < Drop
6
- def site
7
- @site_drop ||= JekyllData::ThemedSiteDrop.new(@obj)
8
- end
9
-
10
6
  # Register a namespace to easily call subkeys under <theme-name> key
11
7
  # in the _config.yml within a theme-gem via its bundled templates.
12
8
  # e.g. with this drop, theme-specific variables usually called like
13
9
  # {{ site.minima.date_format }} can be shortened to simply
14
10
  # {{ theme.date_format }}.
15
11
  def theme
16
- @theme_drop ||= site[site.theme.name]
12
+ @theme_drop ||= begin
13
+ config = site.send(:fallback_data)
14
+ config[config["theme"]]
15
+ end
17
16
  end
18
17
  end
19
18
  end
metadata CHANGED
@@ -1,36 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashwin Maroli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-15 00:00:00.000000000 Z
11
+ date: 2019-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.3'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 5.0.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.3'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 5.0.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.14'
34
37
  - - ">="
35
38
  - !ruby/object:Gem::Version
36
39
  version: 1.14.3
@@ -38,9 +41,6 @@ dependencies:
38
41
  prerelease: false
39
42
  version_requirements: !ruby/object:Gem::Requirement
40
43
  requirements:
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: '1.14'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.14.3
@@ -87,19 +87,19 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '10.0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: rubocop
90
+ name: rubocop-jekyll
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 0.47.1
95
+ version: 0.10.0
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 0.47.1
102
+ version: 0.10.0
103
103
  description:
104
104
  email:
105
105
  - ashmaroli@gmail.com
@@ -138,8 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  requirements: []
141
- rubyforge_project:
142
- rubygems_version: 2.6.10
141
+ rubygems_version: 3.0.6
143
142
  signing_key:
144
143
  specification_version: 4
145
144
  summary: A plugin to read '_config.yml' and data files within Jekyll theme-gems