dimples 1.7 → 1.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2195d33c5db58576e330e294263c8e0372b5751b
4
- data.tar.gz: 8395118f614c8e2e72a31f43cb57717ca8d79c8d
3
+ metadata.gz: 005ba579c9f57984364c6a1a16be1ba7d5da3225
4
+ data.tar.gz: 46eb5a741462c4b9148926cc737e1340214ce9f4
5
5
  SHA512:
6
- metadata.gz: f4b5a24e2576217a18ab9cb26c060fdf9775e6b73f6302a008df047b9d4b6ed1960b6221cada8cbcdd5f76d5e6a8e0e1aece6b410981614e2c3c63680d20d938
7
- data.tar.gz: dc5359f9081e0628ee56902834bd38f9717112c72d41622a9f0d7b9961795624beb728a9ea80595f3c61d4d91866e0b1781b21f88b025d0249744039e55a4fb9
6
+ metadata.gz: a62e3eade61a897926ffd222adff17f2488bbd7ac7209027c9501ff5a8eab1682a2dd4040d6c16d3719a026908dabd15e96bacf5d72fe073cdb3d7f94cc4e130
7
+ data.tar.gz: 37440b46a3359a99046ade561b26f94b62e3780e195a7704f621c21635397a3b74fc8f62c68b36c44f58a3a643de510954f4d30f72691762af22682c6b183ac1
@@ -14,4 +14,4 @@ require 'dimples/configuration'
14
14
  require 'dimples/page'
15
15
  require 'dimples/post'
16
16
  require 'dimples/site'
17
- require 'dimples/template'
17
+ require 'dimples/template'
@@ -3,15 +3,11 @@ module Dimples
3
3
  def initialize(config = {})
4
4
  @settings = Dimples::Configuration.default_settings
5
5
 
6
- if config
7
- @settings.each_key do |key|
8
- if config.key?(key)
9
- if @settings[key].is_a?(Hash)
10
- @settings[key].merge!(config[key])
11
- else
12
- @settings[key] = config[key]
13
- end
14
- end
6
+ config.each_key do |key|
7
+ if @settings[key].is_a?(Hash)
8
+ @settings[key].merge!(config[key])
9
+ else
10
+ @settings[key] = config[key]
15
11
  end
16
12
  end
17
13
  end
@@ -26,53 +22,68 @@ module Dimples
26
22
  {
27
23
  'source_path' => current_path,
28
24
  'destination_path' => File.join(current_path, 'site'),
25
+ 'rendering' => {},
26
+ 'category_names' => {},
27
+ 'paths' => default_paths,
28
+ 'layouts' => default_layouts,
29
+ 'pagination' => default_pagination,
30
+ 'generation' => default_generation,
31
+ 'file_extensions' => default_file_extensions,
32
+ 'date_formats' => default_date_formats
33
+ }
34
+ end
29
35
 
30
- 'paths' => {
31
- 'archives' => 'archives',
32
- 'posts' => 'archives/%Y/%m/%d',
33
- 'categories' => 'archives/categories'
34
- },
35
-
36
- 'layouts' => {
37
- 'posts' => 'posts',
38
- 'post' => 'post',
39
- 'category' => 'category',
40
- 'year_archives' => 'year_archives',
41
- 'month_archives' => 'month_archives',
42
- 'day_archives' => 'day_archives'
43
- },
44
-
45
- 'rendering' => {
46
- },
36
+ def self.default_layouts
37
+ {
38
+ 'posts' => 'posts',
39
+ 'post' => 'post',
40
+ 'category' => 'category',
41
+ 'year_archives' => 'year_archives',
42
+ 'month_archives' => 'month_archives',
43
+ 'day_archives' => 'day_archives'
44
+ }
45
+ end
47
46
 
48
- 'pagination' => {
49
- 'enabled' => true,
50
- 'per_page' => 10,
51
- },
47
+ def self.default_paths
48
+ {
49
+ 'archives' => 'archives',
50
+ 'posts' => 'archives/%Y/%m/%d',
51
+ 'categories' => 'archives/categories'
52
+ }
53
+ end
52
54
 
53
- 'generation' => {
54
- 'paginated_posts' => false,
55
- 'categories' => true,
56
- 'year_archives' => true,
57
- 'month_archives' => true,
58
- 'day_archives' => true,
59
- 'feed' => true,
60
- 'category_feeds' => true,
61
- },
55
+ def self.default_pagination
56
+ {
57
+ 'enabled' => true,
58
+ 'per_page' => 10
59
+ }
60
+ end
62
61
 
63
- 'file_extensions' => {
64
- 'pages' => 'html',
65
- 'posts' => 'html',
66
- },
62
+ def self.default_generation
63
+ {
64
+ 'paginated_posts' => false,
65
+ 'categories' => true,
66
+ 'year_archives' => true,
67
+ 'month_archives' => true,
68
+ 'day_archives' => true,
69
+ 'feed' => true,
70
+ 'category_feeds' => true
71
+ }
72
+ end
67
73
 
68
- 'date_formats' => {
69
- 'year' => '%Y',
70
- 'month' => '%Y-%m',
71
- 'day' => '%Y-%m-%d',
72
- },
74
+ def self.default_file_extensions
75
+ {
76
+ 'pages' => 'html',
77
+ 'posts' => 'html'
78
+ }
79
+ end
73
80
 
74
- 'category_names' => {}
81
+ def self.default_date_formats
82
+ {
83
+ 'year' => '%Y',
84
+ 'month' => '%Y-%m',
85
+ 'day' => '%Y-%m-%d'
75
86
  }
76
87
  end
77
88
  end
78
- end
89
+ end
@@ -15,4 +15,4 @@ module Dimples
15
15
  class RenderingError < Error
16
16
  end
17
17
  end
18
- end
18
+ end
@@ -14,14 +14,19 @@ module Dimples
14
14
  end
15
15
  end
16
16
 
17
- if metadata
18
- metadata.each_pair do |key, value|
19
- self.class.send(:attr_accessor, key.to_sym) unless self.respond_to?(key.to_sym)
20
- self.send("#{key}=", value)
21
- end
22
- end
17
+ apply_metadata(metadata) if metadata
23
18
 
24
19
  contents
25
20
  end
21
+
22
+ def apply_metadata(metadata)
23
+ metadata.each_pair do |key, value|
24
+ unless respond_to?(key.to_sym)
25
+ self.class.send(:attr_accessor, key.to_sym)
26
+ end
27
+
28
+ send("#{key}=", value)
29
+ end
30
+ end
26
31
  end
27
- end
32
+ end
@@ -10,36 +10,33 @@ module Dimples
10
10
  attr_accessor :filename
11
11
  attr_accessor :extension
12
12
  attr_accessor :layout
13
+ attr_accessor :contents
13
14
  attr_accessor :rendered_contents
14
15
 
15
- attr_writer :contents
16
-
17
16
  def initialize(site, path = nil)
18
17
  @site = site
19
18
  @extension = @site.config['file_extensions']['pages']
19
+ @path = path
20
20
 
21
- if path
22
- @path = path
23
- @filename = File.basename(path, File.extname(path))
24
- @contents = read_with_yaml(path)
21
+ if @path
22
+ @filename = File.basename(@path, File.extname(@path))
23
+ @contents = read_with_yaml(@path)
25
24
  else
26
- @path = nil
27
25
  @filename = 'index'
28
26
  @contents = ''
29
27
  end
30
28
  end
31
29
 
32
- def contents
33
- @contents
34
- end
35
-
36
30
  def output_file_path(parent_path)
37
31
  parts = [parent_path]
38
32
 
39
- parts << File.dirname(@path).gsub(@site.source_paths[:pages], '') unless @path.nil?
33
+ unless @path.nil?
34
+ parts << File.dirname(@path).gsub(@site.source_paths[:pages], '')
35
+ end
36
+
40
37
  parts << "#{@filename}.#{@extension}"
41
38
 
42
39
  File.join(parts)
43
40
  end
44
41
  end
45
- end
42
+ end
@@ -11,6 +11,7 @@ module Dimples
11
11
  attr_accessor :filename
12
12
  attr_accessor :extension
13
13
  attr_accessor :layout
14
+ attr_accessor :contents
14
15
  attr_accessor :slug
15
16
  attr_accessor :date
16
17
  attr_accessor :year
@@ -21,8 +22,6 @@ module Dimples
21
22
  attr_accessor :next_post
22
23
  attr_accessor :draft
23
24
 
24
- attr_writer :contents
25
-
26
25
  def initialize(site, path)
27
26
  @site = site
28
27
  @path = path
@@ -30,7 +29,8 @@ module Dimples
30
29
  @filename = 'index'
31
30
  @extension = @site.config['file_extensions']['posts']
32
31
 
33
- parts = File.basename(path, File.extname(path)).match(/(\d{4})-(\d{2})-(\d{2})-(.+)/)
32
+ date_format = /(\d{4})-(\d{2})-(\d{2})-(.+)/
33
+ parts = File.basename(path, File.extname(path)).match(date_format)
34
34
 
35
35
  @slug = parts[4]
36
36
  @date = Time.mktime(parts[1], parts[2], parts[3])
@@ -47,13 +47,10 @@ module Dimples
47
47
  @contents = read_with_yaml(path)
48
48
  end
49
49
 
50
- def contents
51
- @contents
52
- end
53
50
 
54
51
  def output_file_path(parent_path)
55
52
  parent_path = @date.strftime(parent_path) if parent_path =~ /%/
56
53
  File.join([parent_path, @slug, "#{@filename}.#{@extension}"])
57
54
  end
58
55
  end
59
- end
56
+ end
@@ -1,27 +1,12 @@
1
1
  module Dimples
2
2
  module Renderable
3
3
  def render(context = {}, body = nil, use_layout = true)
4
- context[:site] ||= @site
5
- context[:this] ||= self
6
- context[:type] ||= self.class.name.split('::').last.downcase.to_sym
7
-
8
- scope = Object.new
9
-
10
- context.each_pair do |key, value|
11
- scope.instance_variable_set("@#{key}".to_sym, value)
12
- end
13
-
14
4
  begin
15
- output = renderer.render(scope) { body }.strip
5
+ output = renderer.render(build_scope(context)) { body }.strip
16
6
  @rendered_contents = output
17
7
  rescue RuntimeError, TypeError, NoMethodError, SyntaxError, NameError => e
18
- problem_file = if @path
19
- @path.gsub(@site.source_paths[:root], '')
20
- else
21
- "dynamic #{self.class}"
22
- end
23
-
24
- raise Errors::RenderingError.new(problem_file, e.message)
8
+ file = @path || "dynamic #{self.class}"
9
+ raise Errors::RenderingError.new(file, e.message)
25
10
  end
26
11
 
27
12
  if use_layout && defined?(@layout) && @site.templates[@layout]
@@ -31,8 +16,22 @@ module Dimples
31
16
  output
32
17
  end
33
18
 
19
+ def build_scope(context)
20
+ context[:site] ||= @site
21
+ context[:this] ||= self
22
+ context[:type] ||= self.class.name.split('::').last.downcase.to_sym
23
+
24
+ scope = Object.new
25
+
26
+ context.each_pair do |key, value|
27
+ scope.instance_variable_set("@#{key}".to_sym, value)
28
+ end
29
+
30
+ scope
31
+ end
32
+
34
33
  def renderer
35
- proc = Proc.new { |template| contents() }
34
+ proc = proc { contents }
36
35
 
37
36
  if @path
38
37
  extension = File.extname(@path)[1..-1]
@@ -44,4 +43,4 @@ module Dimples
44
43
  end
45
44
  end
46
45
  end
47
- end
46
+ end
@@ -17,7 +17,7 @@ module Dimples
17
17
  @output_paths = {}
18
18
  @templates = {}
19
19
  @categories = {}
20
- @archives = {year: {}, month: {}, day: {}}
20
+ @archives = { year: {}, month: {}, day: {} }
21
21
 
22
22
  @pages = []
23
23
  @posts = []
@@ -33,12 +33,13 @@ module Dimples
33
33
  @source_paths[:root] = File.expand_path(@config['source_path'])
34
34
  @output_paths[:site] = File.expand_path(@config['destination_path'])
35
35
 
36
- %w[pages posts public templates].each do |path|
36
+ %w(pages posts public templates).each do |path|
37
37
  @source_paths[path.to_sym] = File.join(@source_paths[:root], path)
38
38
  end
39
39
 
40
- %w[archives posts categories].each do |path|
41
- @output_paths[path.to_sym] = File.join(@output_paths[:site], @config['paths'][path])
40
+ %w(archives posts categories).each do |path|
41
+ output_path = File.join(@output_paths[:site], @config['paths'][path])
42
+ @output_paths[path.to_sym] = output_path
42
43
  end
43
44
  end
44
45
 
@@ -55,16 +56,17 @@ module Dimples
55
56
  rescue Errors::PublishingError => e
56
57
  puts "Error: Failed to publish #{e.file}: #{e.message}"
57
58
  rescue => e
58
- puts "Error: #{e}"
59
+ puts "Error: #{e.backtrace}"
59
60
  end
60
61
 
61
62
  def prepare_site
62
- begin
63
- FileUtils.remove_dir(@output_paths[:site]) if Dir.exist?(@output_paths[:site])
64
- Dir.mkdir(@output_paths[:site])
65
- rescue => e
66
- raise "Failed to prepare the site directory (#{e})"
63
+ if Dir.exist?(@output_paths[:site])
64
+ FileUtils.remove_dir(@output_paths[:site])
67
65
  end
66
+
67
+ Dir.mkdir(@output_paths[:site])
68
+ rescue => e
69
+ raise "Failed to prepare the site directory (#{e})"
68
70
  end
69
71
 
70
72
  def scan_files
@@ -90,7 +92,7 @@ module Dimples
90
92
  end
91
93
 
92
94
  def scan_posts
93
- Dir.glob(File.join(@source_paths[:posts], '*.*')).reverse.each do |path|
95
+ Dir.glob(File.join(@source_paths[:posts], '*.*')).reverse_each do |path|
94
96
  post = @post_class.new(self, path)
95
97
  next if !@generation_options[:include_drafts] && post.draft
96
98
 
@@ -100,21 +102,38 @@ module Dimples
100
102
  (@categories[slug] ||= []) << post
101
103
  end
102
104
 
103
- (@archives[:year][post.year] ||= []) << post
104
- (@archives[:month]["#{post.year}/#{post.month}"] ||= []) << post
105
- (@archives[:day]["#{post.year}/#{post.month}/#{post.day}"] ||= []) << post
105
+ archive_year(post.year) << post
106
+ archive_month(post.year, post.month) << post
107
+ archive_day(post.year, post.month, post.day) << post
106
108
 
107
109
  @posts << post
108
110
  end
109
111
 
110
112
  @posts.each_index do |index|
111
- @posts[index].next_post = @posts.fetch(index - 1, nil) if index - 1 >= 0
112
- @posts[index].previous_post = @posts.fetch(index + 1, nil) if index + 1 < @posts.count
113
+ if index - 1 >= 0
114
+ @posts[index].next_post = @posts.fetch(index - 1, nil)
115
+ end
116
+
117
+ if index + 1 < @posts.count
118
+ @posts[index].previous_post = @posts.fetch(index + 1, nil)
119
+ end
113
120
  end
114
121
 
115
122
  @latest_post = @posts.first
116
123
  end
117
124
 
125
+ def archive_year(year)
126
+ @archives[:year][year] ||= []
127
+ end
128
+
129
+ def archive_month(year, month)
130
+ @archives[:month]["#{year}/#{month}"] ||= []
131
+ end
132
+
133
+ def archive_day(year, month, day)
134
+ @archives[:day]["#{year}/#{month}/#{day}"] ||= []
135
+ end
136
+
118
137
  def prepare_template(template)
119
138
  end
120
139
 
@@ -140,7 +159,10 @@ module Dimples
140
159
  end
141
160
 
142
161
  if @config['generation']['paginated_posts']
143
- paginate(posts: @posts, paths: [@output_paths[:archives]], layout: @config['layouts']['posts'])
162
+ paths = [@output_paths[:archives]]
163
+ layout = @config['layouts']['posts']
164
+
165
+ paginate(posts: @posts, paths: paths, layout: layout)
144
166
  end
145
167
  end
146
168
 
@@ -152,32 +174,35 @@ module Dimples
152
174
 
153
175
  def generate_categories
154
176
  @categories.each do |slug, posts|
155
- category_name = @config['category_names'][slug] || slug.capitalize
156
- paginate(posts: posts, title: category_name, paths: [@output_paths[:categories], slug], layout: @config['layouts']['category'], context: {category: slug})
177
+ name = @config['category_names'][slug] || slug.capitalize
178
+ paths = [@output_paths[:categories], slug]
179
+ layout = @config['layouts']['category']
180
+ context = { category: slug }
181
+
182
+ paginate(posts: posts, title: name, paths: paths, layout: layout, context: context)
157
183
  end
158
184
  end
159
185
 
160
186
  def generate_archives
161
- %w[year month day].each do |date_type|
162
-
187
+ %w(year month day).each do |date_type|
163
188
  if @config['generation']["#{date_type}_archives"]
164
- template = @config['layouts']["#{date_type}_archives"]
189
+ layout = @config['layouts']["#{date_type}_archives"]
165
190
 
166
191
  @archives[date_type.to_sym].each_value do |posts|
167
192
  title = posts[0].date.strftime(@config['date_formats'][date_type])
168
193
  paths = [@output_paths[:archives], posts[0].year]
169
- dates = {year: posts[0].year}
194
+ dates = { year: posts[0].year }
170
195
 
171
196
  case date_type
172
- when 'month'
173
- paths << posts[0].month
174
- dates[:month] = posts[0].month
175
- when 'day'
176
- paths.concat([posts[0].month, posts[0].day])
177
- dates[:day] = posts[0].month
197
+ when 'month'
198
+ paths << posts[0].month
199
+ dates[:month] = posts[0].month
200
+ when 'day'
201
+ paths.concat([posts[0].month, posts[0].day])
202
+ dates.merge(month: posts[0].month, day: posts[0].day)
178
203
  end
179
204
 
180
- paginate(posts: posts, title: title, paths: paths, layout: template, context: dates)
205
+ paginate(posts: posts, title: title, paths: paths, layout: layout, context: dates)
181
206
  end
182
207
  end
183
208
  end
@@ -194,60 +219,84 @@ module Dimples
194
219
  end
195
220
 
196
221
  def generate_posts_feed
197
- generate_feed(@output_paths[:site], {posts: @posts[0..@config['pagination']['per_page'] - 1]})
222
+ posts = @posts[0..@config['pagination']['per_page'] - 1]
223
+ generate_feed(@output_paths[:site], posts: posts)
198
224
  end
199
225
 
200
226
  def generate_category_feeds
201
227
  @categories.each do |slug, posts|
202
- generate_feed(File.join(@output_paths[:categories], slug), {posts: posts[0..@config['pagination']['per_page'] - 1], category: slug})
228
+ path = File.join(@output_paths[:categories], slug)
229
+ posts = posts[0..@config['pagination']['per_page'] - 1]
230
+
231
+ generate_feed(path, posts: posts, category: slug)
203
232
  end
204
233
  end
205
234
 
206
235
  def copy_assets
207
- begin
208
- FileUtils.cp_r(File.join(@source_paths[:public], '.'), @output_paths[:site]) if Dir.exist?(@source_paths[:public])
209
- rescue => e
210
- raise "Failed to copy site assets (#{e})"
236
+ if Dir.exist?(@source_paths[:public])
237
+ path = File.join(@source_paths[:public], '.')
238
+ FileUtils.cp_r(path, @output_paths[:site])
211
239
  end
240
+ rescue => e
241
+ raise "Failed to copy site assets (#{e})"
212
242
  end
213
243
 
214
244
  def paginate(posts:, title: nil, paths:, layout: false, context: {})
215
- fail "'#{layout}' template not found" unless @templates.has_key?(layout)
245
+ raise "'#{layout}' template not found" unless @templates.key?(layout)
216
246
 
217
247
  per_page = @config['pagination']['per_page']
218
248
  page_count = (posts.length.to_f / per_page.to_i).ceil
219
249
 
220
- pagination_path = paths[0].gsub(@output_paths[:site], '') + '/'
221
- pagination_path += paths[1..-1].join('/') + "/" if paths.length > 1
250
+ page_path = paths[0].gsub(@output_paths[:site], '') + '/'
251
+ page_path += paths[1..-1].join('/') + '/' if paths.length > 1
222
252
 
223
- for index in 1..page_count
253
+ (1..page_count).each do |index|
224
254
  page = @page_class.new(self)
225
255
 
226
256
  page.layout = layout
227
257
  page.title = title || @templates[layout].title
228
258
 
229
- pagination = {
230
- page: index,
231
- pages: page_count,
232
- post_count: posts.length,
233
- path: pagination_path
234
- }
259
+ pagination = build_pagination(index, page_count, posts.count, page_path)
260
+ output_path = File.join(paths, index != 1 ? "page#{index}" : '')
235
261
 
236
- pagination[:previous_page] = pagination[:page] - 1 if (pagination[:page] - 1) > 0
237
- pagination[:next_page] = pagination[:page] + 1 if (pagination[:page] + 1) <= pagination[:pages]
262
+ context[:posts] = posts.slice((index - 1) * per_page, per_page)
263
+ context[:pagination] = pagination
238
264
 
239
- if pagination[:previous_page]
240
- pagination[:previous_page_url] = pagination[:path]
241
- pagination[:previous_page_url] += "page" + pagination[:previous_page].to_s if pagination[:previous_page] != 1
242
- end
265
+ page.write(output_path, context)
266
+ end
267
+ end
243
268
 
244
- pagination[:next_page_url] = pagination[:path] + "page" + pagination[:next_page].to_s if pagination[:next_page]
269
+ def build_pagination(index, page_count, item_count, path)
270
+ pagination = {
271
+ page: index,
272
+ pages: page_count,
273
+ post_count: item_count,
274
+ path: path
275
+ }
245
276
 
246
- output_path = File.join(paths, index != 1 ? "page#{index}" : '')
247
- context.merge!({posts: posts.slice((index - 1) * per_page, per_page), pagination: pagination})
277
+ if (pagination[:page] - 1) > 0
278
+ pagination[:previous_page] = pagination[:page] - 1
279
+ end
248
280
 
249
- page.write(output_path, context)
281
+ if (pagination[:page] + 1) <= pagination[:pages]
282
+ pagination[:next_page] = pagination[:page] + 1
283
+ end
284
+
285
+ if pagination[:previous_page]
286
+ pagination[:previous_page_url] = pagination[:path]
287
+
288
+ if pagination[:previous_page] != 1
289
+ page_string = "page#{pagination[:previous_page]}"
290
+ pagination[:previous_page_url] += page_string
291
+ end
292
+ end
293
+
294
+ if pagination[:next_page]
295
+ page_string = "#{pagination[:path]}page#{pagination[:next_page]}"
296
+ pagination[:next_page_url] = page_string
250
297
  end
298
+
299
+ pagination
251
300
  end
252
301
 
253
302
  private
@@ -258,4 +307,4 @@ module Dimples
258
307
  }
259
308
  end
260
309
  end
261
- end
310
+ end
@@ -10,11 +10,11 @@ module Dimples
10
10
  attr_accessor :rendered_contents
11
11
 
12
12
  def initialize(site, path)
13
- @site = site
13
+ @site = site
14
14
  @slug = File.basename(path, File.extname(path))
15
15
  @path = path
16
16
 
17
17
  @contents = read_with_yaml(path)
18
18
  end
19
19
  end
20
- end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module Dimples
2
- VERSION = "1.7"
2
+ VERSION = '1.7.1'.freeze
3
3
  end
@@ -1,7 +1,7 @@
1
1
  module Dimples
2
2
  module Writeable
3
3
  def write(path, context = {})
4
- output = context ? render(context) : contents()
4
+ output = context ? render(context) : contents
5
5
 
6
6
  publish_path = output_file_path(path)
7
7
  parent_path = File.dirname(publish_path)
@@ -17,4 +17,4 @@ module Dimples
17
17
  end
18
18
  end
19
19
  end
20
- end
20
+ 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.7'
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Bogan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-09 00:00:00.000000000 Z
11
+ date: 2016-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tilt