toto 0.4.4 → 0.4.5

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 (6) hide show
  1. data/README.md +29 -23
  2. data/TODO +5 -0
  3. data/VERSION +1 -1
  4. data/lib/toto.rb +8 -6
  5. data/toto.gemspec +3 -2
  6. metadata +3 -2
data/README.md CHANGED
@@ -58,7 +58,7 @@ synopsis
58
58
 
59
59
  One would start by installing _toto_, with `sudo gem install toto`, and then forking or
60
60
  cloning the `dorothy` repo, to get a basic skeleton:
61
-
61
+
62
62
  $ git clone git://github.com/cloudhead/dorothy.git weblog
63
63
  $ cd weblog/
64
64
 
@@ -68,7 +68,7 @@ One would then edit the template at will, it has the following structure:
68
68
  |
69
69
  +- layout.rhtml # the main site layout, shared by all pages
70
70
  |
71
- +- feed.builder # the builder template for the atom feed
71
+ +- index.builder # the builder template for the atom feed
72
72
  |
73
73
  +- pages/ # pages, such as home, about, etc go here
74
74
  |
@@ -84,11 +84,11 @@ One could then create a .txt article file in the `articles/` folder, and make su
84
84
  author: Lyman Frank Baum
85
85
  date: 1900/05/17
86
86
 
87
- Dorothy lived in the midst of the great Kansas prairies, with Uncle Henry,
87
+ Dorothy lived in the midst of the great Kansas prairies, with Uncle Henry,
88
88
  who was a farmer, and Aunt Em, who was the farmer's wife.
89
-
89
+
90
90
  If one is familiar with webby or aerial, this shouldn't look funny. Basically the top of the file is in YAML format,
91
- and the rest of it is the blog post. They are delimited by an empty line `/\n\n/`, as you can see above.
91
+ and the rest of it is the blog post. They are delimited by an empty line `/\n\n/`, as you can see above.
92
92
  None of the information is compulsory, but it's strongly encouraged you specify it.
93
93
  Note that one can also use `rake` to create an article stub, with `rake new`.
94
94
 
@@ -106,7 +106,7 @@ Toto is built on top of **Rack**, and hence has a **rackup** file: _config.ru_.
106
106
 
107
107
  #### on your own server
108
108
 
109
- Once you have created the remote git repo, and pushed your changes to it, you can run toto with any Rack compliant web server,
109
+ Once you have created the remote git repo, and pushed your changes to it, you can run toto with any Rack compliant web server,
110
110
  such as **thin**, **mongrel** or **unicorn**.
111
111
 
112
112
  With thin, you would do something like:
@@ -119,8 +119,8 @@ With unicorn, you can just do:
119
119
 
120
120
  #### on heroku
121
121
 
122
- Toto was designed to work well with [heroku](http://heroku.com), it makes the most out of it's state-of-the-art caching,
123
- by setting the _Cache-Control_ and _Etag_ HTTP headers. Deploying on Heroku is really easy, just get the heroku gem,
122
+ Toto was designed to work well with [heroku](http://heroku.com), it makes the most out of it's state-of-the-art caching,
123
+ by setting the _Cache-Control_ and _Etag_ HTTP headers. Deploying on Heroku is really easy, just get the heroku gem,
124
124
  create a heroku app with `heroku create`, and push with `git push heroku master`.
125
125
 
126
126
  $ heroku create weblog
@@ -130,20 +130,26 @@ create a heroku app with `heroku create`, and push with `git push heroku master`
130
130
  ### configuration
131
131
 
132
132
  You can configure toto, by modifying the _config.ru_ file. For example, if you want to set the blog author to 'John Galt',
133
- you could add `set :author, 'John Galt'` inside the `Toto::Server.new` block. Here are the defaults, to get you started:
134
-
135
- set :author, ENV['USER'] # blog author
136
- set :title, Dir.pwd.split('/').last # site title
137
- set :url, 'http://example.com' # site root URL
138
- set :root, "index" # page to load on /
139
- set :date, lambda {|now| now.strftime("%d/%m/%Y") } # date format for articles
140
- set :markdown, :smart # use markdown + smart-mode
141
- set :disqus, false # disqus id, or false
142
- set :summary, :max => 150, :delim => /~\n/ # length of article summary and delimiter
143
- set :ext, 'txt' # file extension for articles
144
- set :cache, 28800 # cache site for 8 hours
145
- set :to_html do |path, page, ctx| # returns an html, from a path & context
146
- ERB.new(File.read("#{path}/#{page}.rhtml")).result(ctx)
133
+ you could add `set :author, 'John Galt'` inside the `Toto::Server.new` block. Here are the defaults, to get you started:
134
+
135
+ set :author, ENV['USER'] # blog author
136
+ set :title, Dir.pwd.split('/').last # site title
137
+ set :url, 'http://example.com' # site root URL
138
+ set :prefix, '' # common path prefix for all pages
139
+ set :root, "index" # page to load on /
140
+ set :date, lambda {|now| now.strftime("%d/%m/%Y") } # date format for articles
141
+ set :markdown, :smart # use markdown + smart-mode
142
+ set :disqus, false # disqus id, or false
143
+ set :summary, :max => 150, :delim => /~\n/ # length of article summary and delimiter
144
+ set :ext, 'txt' # file extension for articles
145
+ set :cache, 28800 # cache site for 8 hours
146
+
147
+ set :to_html do |path, page, ctx| # returns an html, from a path & context
148
+ ERB.new(File.read("#{path}/#{page}.rhtml")).result(ctx)
149
+ end
150
+
151
+ set :error do |code| # The HTML for your error page
152
+ "<font style='font-size:300%'>toto, we're not in Kansas anymore (#{code})</font>"
147
153
  end
148
154
 
149
155
  thanks
@@ -153,4 +159,4 @@ To heroku for making this easy as pie.
153
159
  To adam wiggins, as I stole a couple of ideas from Scanty.
154
160
  To the developpers of Rack, for making such an awesome platform.
155
161
 
156
- Copyright (c) 2009 cloudhead. See LICENSE for details.
162
+ Copyright (c) 2009-2010 cloudhead. See LICENSE for details.
data/TODO ADDED
@@ -0,0 +1,5 @@
1
+ TODO
2
+ ====
3
+
4
+ - write tests for :error setting
5
+ - write tests for :prefix setting
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.4.5
@@ -128,7 +128,7 @@ module Toto
128
128
  protected
129
129
 
130
130
  def http code
131
- return [@config[:error_page].call(code), code]
131
+ [@config[:error].call(code), code]
132
132
  end
133
133
 
134
134
  def articles
@@ -264,14 +264,15 @@ module Toto
264
264
  markdown self[:body].sub(@config[:summary][:delim], '') rescue markdown self[:body]
265
265
  end
266
266
 
267
+ def path
268
+ @config[:prefix] + self[:date].strftime("/%Y/%m/%d/#{slug}/")
269
+ end
270
+
267
271
  def title() self[:title] || "an article" end
268
272
  def date() @config[:date].call(self[:date]) end
269
- def path() self[:date].strftime("/%Y/%m/%d/#{slug}/") end
270
273
  def author() self[:author] || @config[:author] end
271
274
  def to_html() self.load; super(:article, @config) end
272
-
273
275
  alias :to_s to_html
274
-
275
276
  end
276
277
 
277
278
  class Config < Hash
@@ -279,7 +280,8 @@ module Toto
279
280
  :author => ENV['USER'], # blog author
280
281
  :title => Dir.pwd.split('/').last, # site title
281
282
  :root => "index", # site index
282
- :url => "http://127.0.0.1",
283
+ :url => "http://127.0.0.1", # root URL of the site
284
+ :prefix => "", # common path prefix for the blog
283
285
  :date => lambda {|now| now.strftime("%d/%m/%Y") }, # date function
284
286
  :markdown => :smart, # use markdown
285
287
  :disqus => false, # disqus name
@@ -290,7 +292,7 @@ module Toto
290
292
  :to_html => lambda {|path, page, ctx| # returns an html, from a path & context
291
293
  ERB.new(File.read("#{path}/#{page}.rhtml")).result(ctx)
292
294
  },
293
- :error_page => lambda {|code| # The HTML for your error page
295
+ :error => lambda {|code| # The HTML for your error page
294
296
  "<font style='font-size:300%'>toto, we're not in Kansas anymore (#{code})</font>"
295
297
  }
296
298
  }
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{toto}
8
- s.version = "0.4.4"
8
+ s.version = "0.4.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["cloudhead"]
12
- s.date = %q{2010-03-17}
12
+ s.date = %q{2010-04-02}
13
13
  s.description = %q{the tiniest blog-engine in Oz.}
14
14
  s.email = %q{self@cloudhead.net}
15
15
  s.extra_rdoc_files = [
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  "LICENSE",
23
23
  "README.md",
24
24
  "Rakefile",
25
+ "TODO",
25
26
  "VERSION",
26
27
  "lib/ext/ext.rb",
27
28
  "lib/toto.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - cloudhead
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-17 00:00:00 -04:00
12
+ date: 2010-04-02 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -67,6 +67,7 @@ files:
67
67
  - LICENSE
68
68
  - README.md
69
69
  - Rakefile
70
+ - TODO
70
71
  - VERSION
71
72
  - lib/ext/ext.rb
72
73
  - lib/toto.rb