jekyll-data 0.2.0 → 0.2.1

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
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