homeostasis 0.0.13 → 0.0.14

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.
Files changed (3) hide show
  1. data/README.md +4 -2
  2. data/lib/homeostasis.rb +15 -10
  3. metadata +2 -2
data/README.md CHANGED
@@ -54,8 +54,9 @@ Blog
54
54
  In your controller:
55
55
 
56
56
  Homeostasis::Blog.config(
57
- :directory => 'blog', # directory of posts, required
58
- :url => 'http://example.com', # site url, required
57
+ :directory => 'blog', # directory of posts, required
58
+ :path => '', # post path prefix, defaults to directory - '' for none
59
+ :url => 'http://example.com', # site url, required
59
60
  :title => 'Blog Title',
60
61
  :desc => 'Blog Description for RSS feed')
61
62
 
@@ -160,6 +161,7 @@ slashes to URLs.
160
161
  TODO
161
162
  ====
162
163
 
164
+ * fix links, images, etc... in RSS
163
165
  * make each plugin optional
164
166
  * single version endpoint
165
167
 
data/lib/homeostasis.rb CHANGED
@@ -6,7 +6,7 @@ require 'yaml'
6
6
  require 'cgi'
7
7
 
8
8
  module Homeostasis
9
- VERSION = '0.0.13'
9
+ VERSION = '0.0.14'
10
10
 
11
11
  module Helpers
12
12
  private
@@ -268,7 +268,7 @@ module Homeostasis
268
268
  pages.each do |page|
269
269
  front = front_site[page]
270
270
  filename = File.join(@stasis.root, page)
271
- next if page !~ /\.html/ || front[:private] || front[:path].nil?
271
+ next if page !~ /\.html/ || !front || front[:private] || front[:path].nil?
272
272
 
273
273
  log = `git log -n1 #{filename} 2> /dev/null | grep "Date:"`
274
274
  lastmod = log.length > 0 ?
@@ -298,6 +298,7 @@ module Homeostasis
298
298
  def initialize(stasis)
299
299
  @stasis = stasis
300
300
  @@directory = nil
301
+ @@path = nil
301
302
  @@url = nil
302
303
  @@title = nil
303
304
  @@desc = nil
@@ -306,6 +307,7 @@ module Homeostasis
306
307
 
307
308
  def self.config(options)
308
309
  @@directory = options[:directory]
310
+ @@path = options[:path] || options[:directory]
309
311
  @@url = options[:url]
310
312
  @@title = options[:title]
311
313
  @@desc = options[:desc]
@@ -320,7 +322,9 @@ module Homeostasis
320
322
  date = $1
321
323
  post = front_site[filename.sub(@stasis.root, '')[1..-1]] || {}
322
324
  post[:date] = Date.parse(date)
323
- post[:path] = post[:path].sub("/#{@@directory}/#{date}-", "/#{@@directory}/")
325
+ post[:path] = post[:path].sub(
326
+ "/#{@@directory}/#{date}-",
327
+ File.join('/', @@path, '/'))
324
328
  post[:body] = BlueCloth.new(File.read(filename)).to_html if filename =~ /\.md$/
325
329
  @@posts << post
326
330
  end
@@ -329,13 +333,14 @@ module Homeostasis
329
333
 
330
334
  def after_all
331
335
  return if @@directory.nil?
336
+ blog_dest = File.join(@stasis.destination, @@path)
337
+ FileUtils.mkdir_p(blog_dest) if !Dir.exist?(blog_dest)
332
338
  Dir.glob("#{File.join(@stasis.destination, @@directory)}/*").each do |filename|
333
339
  next if (base = File.basename(filename)) !~ DATE_REGEX
334
- FileUtils.mv(
335
- filename,
336
- File.join(File.dirname(filename), base.sub(DATE_REGEX, '')))
340
+ FileUtils.mv(filename, File.join(blog_dest, base.sub(DATE_REGEX, '')))
337
341
  end
338
- url = h("#{@@url}/#{@@directory}/")
342
+ url = h(File.join(@@url, @@path))
343
+ zone = Time.new.zone
339
344
  rss = "<?xml version=\"1.0\"?>\n"
340
345
  rss += "<rss version=\"2.0\">\n"
341
346
  rss += " <channel>\n"
@@ -345,14 +350,14 @@ module Homeostasis
345
350
  blog_posts[0..5].each do |post|
346
351
  rss += " <item>\n"
347
352
  rss += " <title>#{h post[:title]}</title>\n"
348
- rss += " <link>#{h(@@url + post[:path])}</link>\n"
349
- rss += " <pubDate>#{post[:date].strftime('%m-%d-%Y %H:%M')}</pubDate>\n"
353
+ rss += " <link>#{h(File.join(@@url, post[:path]))}</link>\n"
354
+ rss += " <pubDate>#{post[:date].strftime("%a, %d %b %Y 0:00:01 #{zone}")}</pubDate>\n"
350
355
  rss += " <description>#{h post[:body]}</description>\n"
351
356
  rss += " </item>\n"
352
357
  end
353
358
  rss += " </channel>\n"
354
359
  rss += "</rss>"
355
- File.open(File.join(@stasis.destination, @@directory, 'rss.xml'), 'w') do |f|
360
+ File.open(File.join(blog_dest, @@path, 'rss.xml'), 'w') do |f|
356
361
  f.puts(rss)
357
362
  end
358
363
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homeostasis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-14 00:00:00.000000000 Z
12
+ date: 2013-01-27 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Provides asset stamping using git revisions, environments, and a few
15
15
  view helpers.