dimples 1.2.4 → 1.2.5
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 +4 -4
- data/lib/dimples.rb +1 -0
- data/lib/dimples/errors.rb +18 -0
- data/lib/dimples/frontable.rb +1 -1
- data/lib/dimples/publishable.rb +10 -6
- data/lib/dimples/site.rb +22 -29
- data/lib/dimples/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 010cd5047836c121e2313676a9b4145ab8e38e1b
|
4
|
+
data.tar.gz: f7ab369532e67afd12b0ffb976f76703c864cd1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 973a8429bcb276d6603e08e9978d082f562acf3a9befb847420b743eed7dae1cf0d60b4d7c4df5916c95dad1c3007e4257e39ca4361d297fd706a7edb052fbaa
|
7
|
+
data.tar.gz: 14c778c4d67efa7765bac66ea38f071915cbf923bb4bf422ac86efda9e4c67cef52e62d1e2bd088e78ac227e2d5ac8a0694f54634429d1eb16f23a4211f42761
|
data/lib/dimples.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
module Dimples
|
2
|
+
module Errors
|
3
|
+
class Error < RuntimeError
|
4
|
+
attr_reader :file
|
5
|
+
|
6
|
+
def initialize(file, message)
|
7
|
+
@file = file
|
8
|
+
super(message)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class PublishingError < Error
|
13
|
+
end
|
14
|
+
|
15
|
+
class RenderingError < Error
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/dimples/frontable.rb
CHANGED
@@ -16,7 +16,7 @@ module Dimples
|
|
16
16
|
|
17
17
|
if metadata
|
18
18
|
metadata.each_pair do |key, value|
|
19
|
-
self.class.send(:attr_accessor, key.to_sym) unless
|
19
|
+
self.class.send(:attr_accessor, key.to_sym) unless self.respond_to?(key.to_sym)
|
20
20
|
instance_variable_set("@#{key}", value)
|
21
21
|
end
|
22
22
|
end
|
data/lib/dimples/publishable.rb
CHANGED
@@ -6,10 +6,14 @@ module Dimples
|
|
6
6
|
publish_path = output_file_path(path)
|
7
7
|
parent_path = File.dirname(publish_path)
|
8
8
|
|
9
|
-
|
9
|
+
begin
|
10
|
+
FileUtils.mkdir_p(parent_path) unless Dir.exist?(parent_path)
|
10
11
|
|
11
|
-
|
12
|
-
|
12
|
+
File.open(publish_path, 'w+') do |file|
|
13
|
+
file.write(output)
|
14
|
+
end
|
15
|
+
rescue SystemCallError => e
|
16
|
+
raise Errors::PublishingError.new(publish_path, e.message)
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
@@ -35,18 +39,18 @@ module Dimples
|
|
35
39
|
else
|
36
40
|
Tilt::StringTemplate.new(&proc)
|
37
41
|
end
|
38
|
-
|
42
|
+
|
39
43
|
begin
|
40
44
|
output = renderer.render(scope) { body }.strip
|
41
45
|
@rendered_contents = output
|
42
|
-
rescue RuntimeError, TypeError, NoMethodError, SyntaxError => e
|
46
|
+
rescue RuntimeError, TypeError, NoMethodError, SyntaxError, NameError => e
|
43
47
|
problem_file = if @path
|
44
48
|
@path.gsub(@site.source_paths[:root], '')
|
45
49
|
else
|
46
50
|
"dynamic #{self.class}"
|
47
51
|
end
|
48
52
|
|
49
|
-
raise
|
53
|
+
raise Errors::RenderingError.new(problem_file, e.message)
|
50
54
|
end
|
51
55
|
|
52
56
|
if use_layout && @layout && @site.templates[@layout]
|
data/lib/dimples/site.rb
CHANGED
@@ -42,16 +42,15 @@ module Dimples
|
|
42
42
|
def generate
|
43
43
|
prepare_site
|
44
44
|
scan_files
|
45
|
-
|
46
|
-
generate_posts
|
47
|
-
generate_pages
|
48
|
-
generate_archives
|
49
|
-
|
50
|
-
generate_categories if @config['generation']['categories']
|
51
|
-
generate_posts_feed if @config['generation']['feed']
|
52
|
-
generate_category_feeds if @config['generation']['category_feeds']
|
53
|
-
|
45
|
+
generate_files
|
54
46
|
copy_assets
|
47
|
+
|
48
|
+
rescue Errors::RenderingError => e
|
49
|
+
puts "Error: Failed to render #{e.file}: #{e.message}"
|
50
|
+
rescue Errors::PublishingError => e
|
51
|
+
puts "Error: Failed to publish #{e.file}: #{e.message}"
|
52
|
+
rescue => e
|
53
|
+
puts "Error: #{e}"
|
55
54
|
end
|
56
55
|
|
57
56
|
def prepare_site
|
@@ -109,13 +108,19 @@ module Dimples
|
|
109
108
|
@latest_post = @posts.first
|
110
109
|
end
|
111
110
|
|
111
|
+
def generate_files
|
112
|
+
generate_posts
|
113
|
+
generate_pages
|
114
|
+
generate_archives
|
115
|
+
|
116
|
+
generate_categories if @config['generation']['categories']
|
117
|
+
generate_posts_feed if @config['generation']['feed']
|
118
|
+
generate_category_feeds if @config['generation']['category_feeds']
|
119
|
+
end
|
120
|
+
|
112
121
|
def generate_posts
|
113
122
|
@posts.each do |post|
|
114
|
-
|
115
|
-
post.write(@output_paths[:posts])
|
116
|
-
rescue => e
|
117
|
-
raise "Failed to render post #{post.path} (#{e})"
|
118
|
-
end
|
123
|
+
post.write(@output_paths[:posts])
|
119
124
|
end
|
120
125
|
|
121
126
|
if @config['generation']['paginated_posts']
|
@@ -125,11 +130,7 @@ module Dimples
|
|
125
130
|
|
126
131
|
def generate_pages
|
127
132
|
@pages.each do |page|
|
128
|
-
|
129
|
-
page.write(@output_paths[:site])
|
130
|
-
rescue => e
|
131
|
-
raise "Failed to render page #{page.path.gsub(@source_paths[:root], '')} (#{e})"
|
132
|
-
end
|
133
|
+
page.write(@output_paths[:site])
|
133
134
|
end
|
134
135
|
end
|
135
136
|
|
@@ -164,11 +165,7 @@ module Dimples
|
|
164
165
|
feed.extension = 'atom'
|
165
166
|
feed.layout = 'feed'
|
166
167
|
|
167
|
-
|
168
|
-
feed.write(path, options)
|
169
|
-
rescue => e
|
170
|
-
raise "Failed to generate feed #{path} (#{e})"
|
171
|
-
end
|
168
|
+
feed.write(path, options)
|
172
169
|
end
|
173
170
|
|
174
171
|
def generate_posts_feed
|
@@ -229,11 +226,7 @@ module Dimples
|
|
229
226
|
|
230
227
|
output_path = File.join(paths, index != 1 ? "page#{index}" : '')
|
231
228
|
|
232
|
-
|
233
|
-
page.write(output_path, {posts: posts.slice((index - 1) * per_page, per_page), pagination: pagination})
|
234
|
-
rescue => e
|
235
|
-
raise "Failed to generate paginated page #{path} (#{e})"
|
236
|
-
end
|
229
|
+
page.write(output_path, {posts: posts.slice((index - 1) * per_page, per_page), pagination: pagination})
|
237
230
|
end
|
238
231
|
end
|
239
232
|
end
|
data/lib/dimples/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dimples
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Bogan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tilt
|
@@ -33,6 +33,7 @@ extra_rdoc_files: []
|
|
33
33
|
files:
|
34
34
|
- lib/dimples.rb
|
35
35
|
- lib/dimples/configuration.rb
|
36
|
+
- lib/dimples/errors.rb
|
36
37
|
- lib/dimples/frontable.rb
|
37
38
|
- lib/dimples/page.rb
|
38
39
|
- lib/dimples/post.rb
|