hyde-page-css 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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: e927303ceea0050e958533c739ba9f55da9ec08aa0db9e3a143a7200648623fa
4
+ data.tar.gz: 9f96e19e799c785588b7b3a68640a96d53bbd002de25c5a91efff3b9a881fe56
5
5
  SHA512:
6
- metadata.gz: 82f6f01f1b2bf89a25c0ba414e2af744d6818e720ad69479180766380573b83cfd433f6062537657ec181135c5b6c42ca34f0d3a1bbb115454fff3f5016f2c68
7
- data.tar.gz: 00a05f045fc9aefe54d1d1f18cccc7d33aeee6fa4a266c1956176cdd1d845b1ac7f4a63ad8a2cc45826b09a37f1f7cbdfd3614b753bbff2ac1920cc7cb6c9415
6
+ metadata.gz: 05e6b17f54ea95b8d6abac50fdd4b08b11eadabd7b729319f88bebbac1d8699e155845a021734f2f3d64a273caacc2fd7bdf82896779a86bae6b1abca93a2f3c
7
+ data.tar.gz: 23ec990caafcf17c7c664060a9944a9f1e9486f5cbd44994ac28baf1212c4b13939d98c2d6218cc6d0ef46cd5da204d225cd584ba563a5bbbbd9c65b85bcc886
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.2"
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", [])]
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Daynes