middleman-blog 3.1.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: