dimples 1.2.5 → 1.2.6

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: 010cd5047836c121e2313676a9b4145ab8e38e1b
4
- data.tar.gz: f7ab369532e67afd12b0ffb976f76703c864cd1d
3
+ metadata.gz: 1736eb52dc11b031fa9a1b6cff9a5e52a16e8a90
4
+ data.tar.gz: 8d2ca4393894d87537c247f78441ea34ecef79d1
5
5
  SHA512:
6
- metadata.gz: 973a8429bcb276d6603e08e9978d082f562acf3a9befb847420b743eed7dae1cf0d60b4d7c4df5916c95dad1c3007e4257e39ca4361d297fd706a7edb052fbaa
7
- data.tar.gz: 14c778c4d67efa7765bac66ea38f071915cbf923bb4bf422ac86efda9e4c67cef52e62d1e2bd088e78ac227e2d5ac8a0694f54634429d1eb16f23a4211f42761
6
+ metadata.gz: 1f9ef86dd1d02349c99e2b8825e016fcba6a10aa6d280bf3f1e7bc63fa65c8110836d30aab4643df215094f5c7b7b18cc46eecbfee1010e9ab0f8d56e1d6fd02
7
+ data.tar.gz: 4f4be16cd059884d030a8a7f0ae0f55faf7978d79d84953087cc8fc2c6e8dd38f3db3f78c8125e0fd7cf96d0e2b4b9e98878e4f2229efa991c392b7db6a78d3b
data/lib/dimples.rb CHANGED
@@ -8,6 +8,7 @@ require 'dimples/errors'
8
8
  require 'dimples/frontable'
9
9
  require 'dimples/publishable'
10
10
  require 'dimples/configuration'
11
+ require 'dimples/category'
11
12
  require 'dimples/page'
12
13
  require 'dimples/post'
13
14
  require 'dimples/site'
@@ -0,0 +1,18 @@
1
+ module Dimples
2
+ class Category
3
+ include Frontable
4
+
5
+ attr_accessor :slug
6
+ attr_accessor :name
7
+ attr_accessor :posts
8
+
9
+ def initialize(slug, path = nil)
10
+ @slug = slug
11
+ @name = @slug.capitalize
12
+
13
+ read_with_yaml(path) if path
14
+
15
+ @posts = []
16
+ end
17
+ end
18
+ end
data/lib/dimples/site.rb CHANGED
@@ -32,7 +32,7 @@ module Dimples
32
32
  @source_paths[:root] = File.expand_path(@config['source_path'])
33
33
  @output_paths[:site] = File.expand_path(@config['destination_path'])
34
34
 
35
- %w{pages posts templates public}.each do |path|
35
+ %w{categories pages posts public templates}.each do |path|
36
36
  @source_paths[path.to_sym] = File.join(@source_paths[:root], path)
37
37
  end
38
38
 
@@ -64,6 +64,7 @@ module Dimples
64
64
 
65
65
  def scan_files
66
66
  scan_templates
67
+ scan_categories
67
68
  scan_pages
68
69
  scan_posts
69
70
  end
@@ -75,6 +76,15 @@ module Dimples
75
76
  end
76
77
  end
77
78
 
79
+ def scan_categories
80
+ Dir.glob(File.join(@source_paths[:categories], '*.*')).each do |path|
81
+ slug = File.basename(path, File.extname(path))
82
+ category = Dimples::Category.new(slug, path)
83
+
84
+ @categories[category.slug] = category
85
+ end
86
+ end
87
+
78
88
  def scan_pages
79
89
  Dir.glob(File.join(@source_paths[:pages], '**', '*.*')).each do |path|
80
90
  @pages << @page_class.new(self, path)
@@ -85,8 +95,9 @@ module Dimples
85
95
  Dir.glob(File.join(@source_paths[:posts], '*.*')).reverse.each do |path|
86
96
  post = @post_class.new(self, path)
87
97
 
88
- post.categories.each do |category|
89
- (@categories[category] ||= []) << post
98
+ post.categories.each do |slug|
99
+ @categories[slug] ||= Dimples::Category.new(slug)
100
+ @categories[slug].posts << post
90
101
  end
91
102
 
92
103
  %w[year month day].each do |date_type|
@@ -135,8 +146,8 @@ module Dimples
135
146
  end
136
147
 
137
148
  def generate_categories
138
- @categories.each_pair do |slug, posts|
139
- paginate(posts: posts, title: slug.capitalize, paths: [@output_paths[:posts], slug], layout: @config['layouts']['category'])
149
+ @categories.each_value do |category|
150
+ paginate(posts: category.posts, title: category.name, paths: [@output_paths[:posts], category.slug], layout: @config['layouts']['category'])
140
151
  end
141
152
  end
142
153
 
@@ -173,8 +184,8 @@ module Dimples
173
184
  end
174
185
 
175
186
  def generate_category_feeds
176
- @categories.each_pair do |slug, posts|
177
- generate_feed(File.join(@output_paths[:posts], slug), {posts: posts[0..@config['pagination']['per_page'] - 1], category: slug})
187
+ @categories.each_value do |category|
188
+ generate_feed(File.join(@output_paths[:posts], category.slug), {posts: category.posts[0..@config['pagination']['per_page'] - 1], category: category.slug})
178
189
  end
179
190
  end
180
191
 
@@ -1,3 +1,3 @@
1
1
  module Dimples
2
- VERSION = "1.2.5"
2
+ VERSION = "1.2.6"
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.5
4
+ version: 1.2.6
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-06-01 00:00:00.000000000 Z
11
+ date: 2015-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tilt
@@ -32,6 +32,7 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - lib/dimples.rb
35
+ - lib/dimples/category.rb
35
36
  - lib/dimples/configuration.rb
36
37
  - lib/dimples/errors.rb
37
38
  - lib/dimples/frontable.rb