hyde-page-css 0.4.0 → 0.4.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hyde-page-css.rb +39 -31
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc880fee97ad3433edc18d4b84618e59b02dc1962081092bb3651b790dc22d6d
4
- data.tar.gz: 1387955f0999508ce4b6ae49c5f2b93fd5b9140e0154722cd68e0dd323b8345e
3
+ metadata.gz: d6ec003b0a85dea4cbf951dbd077514f5db76261f41e65958b3275a5eba2368c
4
+ data.tar.gz: c9b997562983ef4957bfaa13dde64c034ec60df290252244773e645b802b8ed4
5
5
  SHA512:
6
- metadata.gz: 82f6f01f1b2bf89a25c0ba414e2af744d6818e720ad69479180766380573b83cfd433f6062537657ec181135c5b6c42ca34f0d3a1bbb115454fff3f5016f2c68
7
- data.tar.gz: 00a05f045fc9aefe54d1d1f18cccc7d33aeee6fa4a266c1956176cdd1d845b1ac7f4a63ad8a2cc45826b09a37f1f7cbdfd3614b753bbff2ac1920cc7cb6c9415
6
+ metadata.gz: 4fd1e02c5900318abe34d80f696a00c02072962086ed5110edcfed657946f7d98b855ac618c0101dc2a2f45988c9f0f7be978d3bfffe46d11bae44b7fc2c761c
7
+ data.tar.gz: 485f1c4392783641de2a3f3dee6d63d3c364e4c5e99f240a4d470058336916032366e3c104404a0b859beba7977e015dd77178022d6be8fb238b009d823d0843
data/lib/hyde-page-css.rb CHANGED
@@ -1,14 +1,14 @@
1
- require 'jekyll'
2
- require 'digest'
1
+ require "jekyll"
2
+ require "digest"
3
3
 
4
- Jekyll::Hooks.register :pages, :pre_render do |page, payload|
5
- Hyde::Page::Css.new(page).run
4
+ Jekyll::Hooks.register :pages, :post_init do |page|
5
+ Hyde::Page::Css.new(page).run if page.instance_of? Jekyll::Page
6
6
  end
7
7
 
8
8
  module Hyde
9
9
  module Page
10
10
  class Css
11
- VERSION = "0.4.0"
11
+ VERSION = "0.4.1"
12
12
  end
13
13
 
14
14
  class GeneratedCssFile < Jekyll::StaticFile
@@ -54,7 +54,7 @@ module Hyde
54
54
  @page = page
55
55
  @site = page.site
56
56
  @config = fetch_config
57
- @site.data['_hyde_pages_cache'] ||= {}
57
+ @site.data["_hyde_pages_cache"] ||= {}
58
58
 
59
59
  if keep_files? && !dev_mode?
60
60
  @site.config.fetch("keep_files").push(destination)
@@ -64,45 +64,53 @@ module Hyde
64
64
  def run
65
65
  css = fetch_css(@page)
66
66
  layout = fetch_layout(fetch_layout_name(@page))
67
- results = parent_layout_css(layout, css).reverse
68
- return if results.empty?
67
+ css_groups = parent_layout_css(layout, css).reverse
68
+ return if css_groups.empty?
69
69
 
70
- lookup_name = names_to_key(results)
71
- return unless @site.data['_hyde_pages_cache'].fetch(lookup_name, nil).nil?
70
+ for group in css_groups
71
+ lookup_name = names_to_key(group)
72
+ cache_entry = @site.data["_hyde_pages_cache"].fetch(lookup_name, nil)
72
73
 
73
- data = concatenate_files(results)
74
- return if data == ""
74
+ if cache_entry.nil?
75
+ data = concatenate_files(group)
76
+ return if data == ""
75
77
 
76
- data = minify(data)
77
- return if data == ""
78
+ data = minify(data)
79
+ return if data == ""
78
80
 
79
- generated_file = generate_file(results, data)
81
+ generated_file = generate_file(group, data)
80
82
 
81
- # file already exists, so skip writing out the data to disk
82
- return unless @site.static_files.find { |static_file| static_file.name == generated_file.name }.nil?
83
+ # file already exists, so skip writing out the data to disk
84
+ return unless @site.static_files.find { |static_file| static_file.name == generated_file.name }.nil?
83
85
 
84
- # place file data into the new file
85
- generated_file.file_contents = data
86
+ # place file data into the new file
87
+ generated_file.file_contents = data
86
88
 
87
- # assign static file to list for jekyll to render
88
- @site.static_files << generated_file
89
+ # assign static file to list for jekyll to render
90
+ @site.static_files << generated_file
89
91
 
90
- # assign to site.data.css_files for liquid output
91
- add_to_urls(generated_file.url)
92
+ # add to cache
93
+ cache_entry = {
94
+ url: generated_file.url,
95
+ data: data
96
+ }
97
+ @site.data["_hyde_pages_cache"][lookup_name] = cache_entry
98
+ end
92
99
 
93
- # add to cache
94
- @site.data['_hyde_pages_cache'][lookup_name] = data
100
+ # assign to page.data.css_files for liquid output
101
+ add_to_urls(cache_entry.fetch(:url, nil)).compact
102
+ end
95
103
  end
96
104
 
97
105
  private
98
106
 
99
107
  def names_to_key(names)
100
- names.join('-')
108
+ names.join("-")
101
109
  end
102
110
 
103
111
  def add_to_urls(url)
104
- @site.data['css_files'] ||= []
105
- @site.data['css_files'].push(url)
112
+ @page.data["css_files"] ||= []
113
+ @page.data["css_files"].push(url)
106
114
  end
107
115
 
108
116
  def fetch_config
@@ -134,11 +142,11 @@ module Hyde
134
142
  end
135
143
 
136
144
  def fetch_layout_name(obj_with_data, default = nil)
137
- obj_with_data.data.fetch('layout', default)
145
+ obj_with_data.data.fetch("layout", default)
138
146
  end
139
147
 
140
148
  def fetch_css(obj_with_data, default = [])
141
- obj_with_data.data.fetch('css', []).reverse
149
+ [obj_with_data.data.fetch("css", []).reverse]
142
150
  end
143
151
 
144
152
  def fetch_layout(layout_name, default = nil)
@@ -147,7 +155,7 @@ module Hyde
147
155
 
148
156
  def parent_layout_css(layout, css)
149
157
  if layout.nil?
150
- return css.uniq.compact
158
+ return css
151
159
  end
152
160
 
153
161
  layout_name = fetch_layout_name(layout)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyde-page-css
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Daynes