dimples 1.2.4 → 1.2.5

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: 3be3dfc36f4a8285d77823deff68e9585cb71baf
4
- data.tar.gz: cb592149ddd792be5f46f1bf647cbcf8084c5cb9
3
+ metadata.gz: 010cd5047836c121e2313676a9b4145ab8e38e1b
4
+ data.tar.gz: f7ab369532e67afd12b0ffb976f76703c864cd1d
5
5
  SHA512:
6
- metadata.gz: 93ec231ac30080beeef7d13876fb573b361c8131e5378775e8472905c2bbc5ad56561eda9f4ec8d18ac66a6060033d3ffa8ea048bec84171eccbc87171bc797a
7
- data.tar.gz: eb90279afa05032d464ff0e7a38ab400e1ee82befa8341a85f20f229f54755a7322c883c514b87b7c7778dad5658943dd15262dd42d3916e15b57bfc1e4f717a
6
+ metadata.gz: 973a8429bcb276d6603e08e9978d082f562acf3a9befb847420b743eed7dae1cf0d60b4d7c4df5916c95dad1c3007e4257e39ca4361d297fd706a7edb052fbaa
7
+ data.tar.gz: 14c778c4d67efa7765bac66ea38f071915cbf923bb4bf422ac86efda9e4c67cef52e62d1e2bd088e78ac227e2d5ac8a0694f54634429d1eb16f23a4211f42761
@@ -4,6 +4,7 @@ require 'fileutils'
4
4
  require 'yaml'
5
5
  require 'tilt'
6
6
 
7
+ require 'dimples/errors'
7
8
  require 'dimples/frontable'
8
9
  require 'dimples/publishable'
9
10
  require 'dimples/configuration'
@@ -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
@@ -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 instance_variable_get("@#{key}")
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
@@ -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
- FileUtils.mkdir_p(parent_path) unless Dir.exist?(parent_path)
9
+ begin
10
+ FileUtils.mkdir_p(parent_path) unless Dir.exist?(parent_path)
10
11
 
11
- File.open(publish_path, 'w') do |file|
12
- file.write(output)
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 "Failed to render #{problem_file} - #{e}"
53
+ raise Errors::RenderingError.new(problem_file, e.message)
50
54
  end
51
55
 
52
56
  if use_layout && @layout && @site.templates[@layout]
@@ -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
- begin
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
- begin
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
- begin
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
- begin
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
@@ -1,3 +1,3 @@
1
1
  module Dimples
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
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
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-05-29 00:00:00.000000000 Z
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