middleman-blog 3.1.0 → 3.1.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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ 3.1.1
2
+ ====
3
+ * Correctly handle time zone, allow setting time zone with `set :time_zone`. #76
4
+ * Fix using `page_articles` in when `paginate` is false. #78
5
+
1
6
  3.1.0
2
7
  ====
3
8
  * Don't publish future-dated articles. #74
@@ -65,9 +65,28 @@ Feature: Pagination
65
65
  Then I should see "/2011-02-01-test-article.html"
66
66
  Then I should see "/2011-02-02-test-article.html"
67
67
 
68
+ When I go to "/2011/01.html"
69
+ Then I should see "Paginate: false"
70
+ Then I should see "Article Count: 5"
71
+ Then I should see "/2011-01-01-test-article.html"
72
+ Then I should see "/2011-01-02-test-article.html"
73
+ Then I should see "/2011-01-03-test-article.html"
74
+ Then I should see "/2011-01-04-test-article.html"
75
+ Then I should see "/2011-01-05-test-article.html"
76
+ Then I should not see "/2011-02-01-test-article.html"
77
+ Then I should not see "/2011-02-02-test-article.html"
78
+
68
79
  When I go to "/2011/page/2.html"
69
80
  Then I should see "File Not Found"
70
81
 
82
+ When I go to "/tags/foo.html"
83
+ Then I should see "Paginate: false"
84
+ Then I should see "Article Count: 2"
85
+ Then I should not see "/2011-02-02-test-article.html"
86
+ Then I should not see "/2011-02-01-test-article.html"
87
+ Then I should see "/2011-01-02-test-article.html"
88
+ Then I should see "/2011-01-01-test-article.html"
89
+
71
90
  When I go to "/tags/bar.html"
72
91
  Then I should see "Paginate: false"
73
92
  Then I should see "Article Count: 2"
@@ -1,8 +1,6 @@
1
+ require 'active_support/time_with_zone'
1
2
  require 'active_support/core_ext/time/calculations'
2
3
 
3
- # Default to UTC
4
- Time.zone = "UTC" if Time.zone.nil?
5
-
6
4
  module Middleman
7
5
  module Blog
8
6
  # A module that adds blog-article methods to Resources.
@@ -2,27 +2,27 @@ module Middleman
2
2
  module Blog
3
3
  class Options
4
4
  KEYS = [
5
- :prefix,
6
- :permalink,
7
- :sources,
8
- :taglink,
9
- :layout,
10
- :summary_separator,
11
- :summary_length,
12
- :summary_generator,
13
- :year_link,
14
- :month_link,
15
- :day_link,
16
- :default_extension,
17
- :calendar_template,
18
- :year_template,
19
- :month_template,
20
- :day_template,
21
- :tag_template,
22
- :paginate,
23
- :per_page,
24
- :page_link
25
- ]
5
+ :prefix,
6
+ :permalink,
7
+ :sources,
8
+ :taglink,
9
+ :layout,
10
+ :summary_separator,
11
+ :summary_length,
12
+ :summary_generator,
13
+ :year_link,
14
+ :month_link,
15
+ :day_link,
16
+ :default_extension,
17
+ :calendar_template,
18
+ :year_template,
19
+ :month_template,
20
+ :day_template,
21
+ :tag_template,
22
+ :paginate,
23
+ :per_page,
24
+ :page_link
25
+ ]
26
26
 
27
27
  KEYS.each do |name|
28
28
  attr_accessor name
@@ -39,7 +39,10 @@ module Middleman
39
39
  def registered(app, options_hash={}, &block)
40
40
  require 'middleman-blog/blog_data'
41
41
  require 'middleman-blog/blog_article'
42
-
42
+ require 'active_support/core_ext/time/zones'
43
+
44
+ app.set :time_zone, 'UTC'
45
+
43
46
  app.send :include, Helpers
44
47
 
45
48
  options = Options.new(options_hash)
@@ -82,45 +85,55 @@ module Middleman
82
85
  end
83
86
 
84
87
  app.after_configuration do
88
+ # Make sure ActiveSupport's TimeZone stuff has something to work with,
89
+ # allowing people to set their desired time zone via Time.zone or
90
+ # set :time_zone
91
+ time_zone = Time.zone if Time.zone
92
+ zone_default = Time.find_zone!(time_zone || 'UTC')
93
+ unless zone_default
94
+ raise 'Value assigned to time_zone not recognized.'
95
+ end
96
+ Time.zone_default = zone_default
97
+
85
98
  # Initialize blog with options
86
99
  blog(options)
87
100
 
88
101
  sitemap.register_resource_list_manipulator(
89
- :blog_articles,
90
- blog,
91
- false
92
- )
102
+ :blog_articles,
103
+ blog,
104
+ false
105
+ )
93
106
 
94
107
  if options.tag_template
95
108
  ignore options.tag_template
96
109
 
97
110
  require 'middleman-blog/tag_pages'
98
111
  sitemap.register_resource_list_manipulator(
99
- :blog_tags,
100
- TagPages.new(self),
101
- false
102
- )
112
+ :blog_tags,
113
+ TagPages.new(self),
114
+ false
115
+ )
103
116
  end
104
117
 
105
118
  if options.year_template ||
106
- options.month_template ||
107
- options.day_template
119
+ options.month_template ||
120
+ options.day_template
108
121
 
109
122
  require 'middleman-blog/calendar_pages'
110
123
  sitemap.register_resource_list_manipulator(
111
- :blog_calendar,
112
- CalendarPages.new(self),
113
- false
114
- )
124
+ :blog_calendar,
125
+ CalendarPages.new(self),
126
+ false
127
+ )
115
128
  end
116
129
 
117
130
  if options.paginate
118
131
  require 'middleman-blog/paginator'
119
132
  sitemap.register_resource_list_manipulator(
120
- :blog_paginate,
121
- Paginator.new(self),
122
- false
123
- )
133
+ :blog_paginate,
134
+ Paginator.new(self),
135
+ false
136
+ )
124
137
  end
125
138
  end
126
139
  end
@@ -192,7 +205,10 @@ module Middleman
192
205
  # @return [Array<Middleman::Sitemap::Resource>]
193
206
  def page_articles
194
207
  limit = (current_resource.metadata[:page]["per_page"] || 0) - 1
195
- blog.articles[0..limit]
208
+
209
+ # "articles" local variable is populated by Calendar and Tag page generators
210
+ # If it's not set then use the complete list of articles
211
+ (current_resource.metadata[:locals]["articles"] || blog.articles)[0..limit]
196
212
  end
197
213
  end
198
214
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Blog
3
- VERSION = "3.1.0"
3
+ VERSION = "3.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,76 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: middleman-blog
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 3
7
- - 1
8
- - 0
9
- version: 3.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.1.1
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Thomas Reynolds
13
9
  - Ben Hollis
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2012-09-10 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
- requirements:
13
+ date: 2012-09-21 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: middleman-core
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
25
20
  - - ~>
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 0
30
- - 1
21
+ - !ruby/object:Gem::Version
31
22
  version: 3.0.1
32
- name: middleman-core
33
- requirement: *id001
34
- prerelease: false
35
- - !ruby/object:Gem::Dependency
36
23
  type: :runtime
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- requirements:
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
39
28
  - - ~>
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 6
44
- - 0
45
- version: 0.6.0
29
+ - !ruby/object:Gem::Version
30
+ version: 3.0.1
31
+ - !ruby/object:Gem::Dependency
46
32
  name: maruku
47
- requirement: *id002
48
- prerelease: false
49
- - !ruby/object:Gem::Dependency
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 0.6.0
50
39
  type: :runtime
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
52
- requirements:
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
53
44
  - - ~>
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- - 3
58
- - 0
59
- version: 0.3.0
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.0
47
+ - !ruby/object:Gem::Dependency
60
48
  name: tzinfo
61
- requirement: *id003
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.3.0
55
+ type: :runtime
62
56
  prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 0.3.0
63
63
  description: A blog foundation using Middleman
64
- email:
64
+ email:
65
65
  - me@tdreyno.com
66
66
  - ben@benhollis.net
67
67
  executables: []
68
-
69
68
  extensions: []
70
-
71
69
  extra_rdoc_files: []
72
-
73
- files:
70
+ files:
74
71
  - .gemtest
75
72
  - .gitignore
76
73
  - .travis.yml
@@ -208,37 +205,37 @@ files:
208
205
  - lib/middleman-blog/version.rb
209
206
  - lib/middleman_extension.rb
210
207
  - middleman-blog.gemspec
211
- has_rdoc: true
212
208
  homepage: https://github.com/middleman/middleman-blog
213
209
  licenses: []
214
-
215
210
  post_install_message:
216
211
  rdoc_options: []
217
-
218
- require_paths:
212
+ require_paths:
219
213
  - lib
220
- required_ruby_version: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - ">="
223
- - !ruby/object:Gem::Version
224
- segments:
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ! '>='
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ segments:
225
221
  - 0
226
- version: "0"
227
- required_rubygems_version: !ruby/object:Gem::Requirement
228
- requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- segments:
222
+ hash: -3637459157260692446
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ none: false
225
+ requirements:
226
+ - - ! '>='
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ segments:
232
230
  - 0
233
- version: "0"
231
+ hash: -3637459157260692446
234
232
  requirements: []
235
-
236
233
  rubyforge_project: middleman-blog
237
- rubygems_version: 1.3.6
234
+ rubygems_version: 1.8.24
238
235
  signing_key:
239
236
  specification_version: 3
240
237
  summary: A blog foundation using Middleman
241
- test_files:
238
+ test_files:
242
239
  - features/article_cli.feature
243
240
  - features/article_dirs.feature
244
241
  - features/blog_sources.feature
@@ -346,3 +343,4 @@ test_files:
346
343
  - fixtures/tags-app/source/index.html.erb
347
344
  - fixtures/tags-app/source/layout.erb
348
345
  - fixtures/tags-app/source/tag.html.erb
346
+ has_rdoc: