jekyll-data 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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