jekyll-data 0.2.0 → 0.2.1

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
2
  SHA1:
3
- metadata.gz: ef504f55a2b8067637d9c39a015d1931bc46cf49
4
- data.tar.gz: cc1515e3a63bfc0722308ffb08fa9594f2435279
3
+ metadata.gz: 7c383a01aa3bb9fe5690b81d7cd54125be7ac8b3
4
+ data.tar.gz: 0f98f59af2bee263e7af7e10304e23318b632cd0
5
5
  SHA512:
6
- metadata.gz: 0eb3122d58976537b4e4a50ce4b51e96b413a148d95d0e3dfa2f5cf210a0f155affe92d44d312615522fbe432e823211de28f69dff740dff1f2a8dea444b98bf
7
- data.tar.gz: '05840a5d7b27acb2fffb63b93cf8067a3855e8d947f01c2f7b034e03f3fa3eb5d3d63edd5df97627f2dc4399db31cf312389ba9ca060ee2c9fc21b88d4a37883'
6
+ metadata.gz: 3bc5a33b09beb3c7cb19c474c723928eb0e8f79f93beac5568f0714440a196ae5e8bfbba58bd54e550082688576c3d696b6cbdd8b3112078006aff8081a8cbc4
7
+ data.tar.gz: 72e1317d7b637897ac35a0ccecc711772145bc45baf1b6a016b5e4a879d32136816e5f6bac9f0d9e6395e24f0950d8d72b1aa8fb677da4adc1f454c26183a51e
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/jekyll-data.svg)](https://rubygems.org/gems/jekyll-data)
4
4
 
5
- Introducing a plugin that reads data files within **jekyll theme gems** and adds it to the site's internal data hash.
5
+ Introducing a plugin that reads data files within **jekyll theme gems** and adds the resulting hash to the site's internal data hash.
6
6
 
7
7
  ## Installation
8
8
 
@@ -1,16 +1,16 @@
1
- require "jekyll"
2
- require "jekyll-data/version"
3
-
4
- # Plugin inclusions
5
- require_relative "jekyll/theme_reader"
6
- require_relative "jekyll/readers/theme_data_reader"
7
- require_relative "jekyll/drops/themed_site_drop"
8
-
9
- # Monkey-patches
10
- require_relative "jekyll/theme"
11
- require_relative "jekyll/drops/unified_payload_drop"
12
-
13
- # replace Jekyll::Reader with a subclass Jekyll::ThemeReader
14
- Jekyll::Hooks.register :site, :after_init do |site|
15
- site.reader = Jekyll::ThemeReader.new(site)
16
- end
1
+ require "jekyll"
2
+ require "jekyll-data/version"
3
+
4
+ # Plugin inclusions
5
+ require_relative "jekyll/theme_reader"
6
+ require_relative "jekyll/readers/theme_data_reader"
7
+ require_relative "jekyll/drops/themed_site_drop"
8
+
9
+ # Monkey-patches
10
+ require_relative "jekyll/theme"
11
+ require_relative "jekyll/drops/unified_payload_drop"
12
+
13
+ # replace Jekyll::Reader with a subclass Jekyll::ThemeReader
14
+ Jekyll::Hooks.register :site, :after_init do |site|
15
+ site.reader = Jekyll::ThemeReader.new(site)
16
+ end
@@ -1,3 +1,3 @@
1
- module JekyllData
2
- VERSION = "0.2.0".freeze
3
- end
1
+ module JekyllData
2
+ VERSION = "0.2.1".freeze
3
+ end
@@ -1,66 +1,66 @@
1
- module Jekyll
2
- class Theme
3
- extend Forwardable
4
- attr_reader :name
5
- def_delegator :gemspec, :version, :version
6
-
7
- def initialize(name)
8
- @name = name.downcase.strip
9
- configure_sass
10
- end
11
-
12
- def root
13
- # Must use File.realpath to resolve symlinks created by rbenv
14
- # Otherwise, Jekyll.sanitized path with prepend the unresolved root
15
- @root ||= File.realpath(gemspec.full_gem_path)
16
- rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
17
- nil
18
- end
19
-
20
- def includes_path
21
- path_for "_includes".freeze
22
- end
23
-
24
- def layouts_path
25
- path_for "_layouts".freeze
26
- end
27
-
28
- def sass_path
29
- path_for "_sass".freeze
30
- end
31
-
32
- def data_path
33
- path_for "_data".freeze
34
- end
35
-
36
- def assets_path
37
- path_for "assets".freeze
38
- end
39
-
40
- def configure_sass
41
- return unless sass_path
42
- require "sass"
43
- Sass.load_paths << sass_path
44
- end
45
-
46
- private
47
-
48
- def path_for(folder)
49
- path = realpath_for(folder)
50
- path if path && File.directory?(path)
51
- end
52
-
53
- def realpath_for(folder)
54
- File.realpath(Jekyll.sanitized_path(root, folder.to_s))
55
- rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
56
- nil
57
- end
58
-
59
- def gemspec
60
- @gemspec ||= Gem::Specification.find_by_name(name)
61
- rescue Gem::LoadError
62
- raise Jekyll::Errors::MissingDependencyException,
63
- "The #{name} theme could not be found."
64
- end
65
- end
66
- end
1
+ module Jekyll
2
+ class Theme
3
+ extend Forwardable
4
+ attr_reader :name
5
+ def_delegator :gemspec, :version, :version
6
+
7
+ def initialize(name)
8
+ @name = name.downcase.strip
9
+ configure_sass
10
+ end
11
+
12
+ def root
13
+ # Must use File.realpath to resolve symlinks created by rbenv
14
+ # Otherwise, Jekyll.sanitized path with prepend the unresolved root
15
+ @root ||= File.realpath(gemspec.full_gem_path)
16
+ rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
17
+ nil
18
+ end
19
+
20
+ def includes_path
21
+ path_for "_includes".freeze
22
+ end
23
+
24
+ def layouts_path
25
+ path_for "_layouts".freeze
26
+ end
27
+
28
+ def sass_path
29
+ path_for "_sass".freeze
30
+ end
31
+
32
+ def data_path
33
+ path_for "_data".freeze
34
+ end
35
+
36
+ def assets_path
37
+ path_for "assets".freeze
38
+ end
39
+
40
+ def configure_sass
41
+ return unless sass_path
42
+ require "sass"
43
+ Sass.load_paths << sass_path
44
+ end
45
+
46
+ private
47
+
48
+ def path_for(folder)
49
+ path = realpath_for(folder)
50
+ path if path && File.directory?(path)
51
+ end
52
+
53
+ def realpath_for(folder)
54
+ File.realpath(Jekyll.sanitized_path(root, folder.to_s))
55
+ rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
56
+ nil
57
+ end
58
+
59
+ def gemspec
60
+ @gemspec ||= Gem::Specification.find_by_name(name)
61
+ rescue Gem::LoadError
62
+ raise Jekyll::Errors::MissingDependencyException,
63
+ "The #{name} theme could not be found."
64
+ end
65
+ end
66
+ end
@@ -38,7 +38,6 @@ module Jekyll
38
38
  end
39
39
  end
40
40
 
41
-
42
41
  private
43
42
 
44
43
  def debug_theme_reader
@@ -52,29 +51,45 @@ module Jekyll
52
51
  end
53
52
 
54
53
  def debug_theme_data_reader
55
- print_clear_line
56
- print "Site Data:"
57
- process_hash @site.data
54
+ print "Inspecting:", "Site Data >>"
55
+ inspect_hash @site.data
58
56
  print_clear_line
59
57
  end
60
58
 
61
- def process_hash(hash)
59
+ def inspect_hash(hash)
62
60
  hash.each do |key, value|
63
61
  print_key key
62
+ if key == @site.theme.name
63
+ inspect_theme_override value
64
+ end
64
65
  if value.class == Hash
65
- process_inner_hash value
66
+ inspect_inner_hash value
67
+ elsif value.class == Array
68
+ print_label key
69
+ extract_hashes_and_print value
66
70
  else
67
71
  print_value "'#{value}'"
68
72
  end
69
73
  end
70
74
  end
71
75
 
72
- def process_inner_hash(hash)
76
+ def inspect_theme_override(value)
77
+ if value == false
78
+ abort_with_msg "Cannot define or override Theme Configuration " \
79
+ "with an empty file!"
80
+ end
81
+ unless value.class == Hash
82
+ abort_with_msg "Theme Config or its override should be a Hash of " \
83
+ "key:value pairs or mappings. But got #{value.class} instead."
84
+ end
85
+ end
86
+
87
+ def inspect_inner_hash(hash)
73
88
  hash.each do |key, value|
74
89
  if value.class == Array
75
90
  print_label key
76
91
  extract_hashes_and_print value
77
- print_dashes
92
+ print_clear_line
78
93
  elsif value.class == Hash
79
94
  print_subkey_and_value key, value
80
95
  else
@@ -84,14 +99,17 @@ module Jekyll
84
99
  end
85
100
 
86
101
  def extract_hashes_and_print(array)
87
- array.each do |h|
88
- process_inner_hash h
102
+ array.each do |entry|
103
+ if entry.class == String
104
+ print "-", entry
105
+ else
106
+ inspect_inner_hash entry
107
+ end
89
108
  end
90
109
  end
91
110
 
92
111
  def print_hash(key, value)
93
- key = key.to_s + ":"
94
- print key, value
112
+ print "#{key}:", value
95
113
  end
96
114
 
97
115
  def print_key(key)
@@ -103,7 +121,6 @@ module Jekyll
103
121
 
104
122
  def print_subkey_and_value(key, value)
105
123
  print_label key
106
- print_dashes
107
124
  value.each do |subkey, val|
108
125
  print_hash subkey, val
109
126
  end
@@ -119,7 +136,7 @@ module Jekyll
119
136
  end
120
137
 
121
138
  def print_label(key)
122
- print "#{key.to_s}:"
139
+ print "#{key}:"
123
140
  end
124
141
 
125
142
  def print_dashes
@@ -133,5 +150,9 @@ module Jekyll
133
150
  def print(arg1, arg2 = "")
134
151
  Jekyll.logger.debug arg1, arg2
135
152
  end
153
+
154
+ def abort_with_msg(msg)
155
+ Jekyll.logger.abort_with "JekyllData:", msg
156
+ end
136
157
  end
137
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashwin Maroli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
11
+ date: 2016-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll