toto 0.2.0 → 0.2.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/README.md +3 -1
 - data/VERSION +1 -1
 - data/lib/toto.rb +9 -3
 - data/test/toto_test.rb +11 -0
 - data/toto.gemspec +2 -2
 - metadata +2 -2
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -26,6 +26,8 @@ how it works 
     | 
|
| 
       26 
26 
     | 
    
         
             
            - individual articles can be accessed through urls such as _/2009/11/21/blogging-with-toto_
         
     | 
| 
       27 
27 
     | 
    
         
             
            - the archives can be accessed by year, month or day, wih the same format as above.
         
     | 
| 
       28 
28 
     | 
    
         
             
            - arbitrary metadata can be included in articles files, and accessed from the templates.
         
     | 
| 
      
 29 
     | 
    
         
            +
            - summaries are generated intelligently by toto, following the `:max` setting you give it.
         
     | 
| 
      
 30 
     | 
    
         
            +
            - you can also define how long your summary is, by adding `~` at the end of it (`:delim`).
         
     | 
| 
       29 
31 
     | 
    
         | 
| 
       30 
32 
     | 
    
         
             
            synopsis
         
     | 
| 
       31 
33 
     | 
    
         
             
            --------
         
     | 
| 
         @@ -113,7 +115,7 @@ you could add `set :author, 'John Galt'` inside the `Toto::Server.new` block. He 
     | 
|
| 
       113 
115 
     | 
    
         
             
                set :date,      lambda {|now| now.strftime("%d/%m/%Y") }  # date format for articles 
         
     | 
| 
       114 
116 
     | 
    
         
             
                set :markdown,  :smart                                    # use markdown + smart-mode 
         
     | 
| 
       115 
117 
     | 
    
         
             
                set :disqus,    false                                     # disqus id, or false 
         
     | 
| 
       116 
     | 
    
         
            -
                set :summary,   150 
     | 
| 
      
 118 
     | 
    
         
            +
                set :summary,   :max => 150, :delim => /~\n/              # length of article summary and delimiter 
         
     | 
| 
       117 
119 
     | 
    
         
             
                set :ext,       'txt'                                     # file extension for articles 
         
     | 
| 
       118 
120 
     | 
    
         | 
| 
       119 
121 
     | 
    
         
             
            Copyright (c) 2009 cloudhead. See LICENSE for details.
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.2. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.2.1
         
     | 
    
        data/lib/toto.rb
    CHANGED
    
    | 
         @@ -187,8 +187,14 @@ module Toto 
     | 
|
| 
       187 
187 
     | 
    
         
             
                  self[:title].downcase.gsub(/&/, 'and').gsub(/\s+/, '-').gsub(/[^a-z0-9-]/, '')
         
     | 
| 
       188 
188 
     | 
    
         
             
                end
         
     | 
| 
       189 
189 
     | 
    
         | 
| 
       190 
     | 
    
         
            -
                def summary length =  
     | 
| 
       191 
     | 
    
         
            -
                   
     | 
| 
      
 190 
     | 
    
         
            +
                def summary length = nil
         
     | 
| 
      
 191 
     | 
    
         
            +
                  length ||= (config = @config[:summary]).is_a?(Hash) ? config[:max] : config
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
                  if self[:body] =~ config[:delim]
         
     | 
| 
      
 194 
     | 
    
         
            +
                    markdown self[:body].split(config[:delim]).first
         
     | 
| 
      
 195 
     | 
    
         
            +
                  else
         
     | 
| 
      
 196 
     | 
    
         
            +
                    markdown self[:body].match(/(.{1,#{length}}.*?)(\n|\Z)/m).to_s
         
     | 
| 
      
 197 
     | 
    
         
            +
                  end
         
     | 
| 
       192 
198 
     | 
    
         
             
                end
         
     | 
| 
       193 
199 
     | 
    
         | 
| 
       194 
200 
     | 
    
         
             
                def url
         
     | 
| 
         @@ -228,7 +234,7 @@ module Toto 
     | 
|
| 
       228 
234 
     | 
    
         
             
                  :date => lambda {|now| now.strftime("%d/%m/%Y") },  # date function
         
     | 
| 
       229 
235 
     | 
    
         
             
                  :markdown => :smart,                                # use markdown
         
     | 
| 
       230 
236 
     | 
    
         
             
                  :disqus => false,                                   # disqus name
         
     | 
| 
       231 
     | 
    
         
            -
                  :summary => 150, 
     | 
| 
      
 237 
     | 
    
         
            +
                  :summary => {:max => 150, :delim => /~\n/},         # length of summary and delimiter
         
     | 
| 
       232 
238 
     | 
    
         
             
                  :ext => 'txt'                                       # extension for articles
         
     | 
| 
       233 
239 
     | 
    
         
             
                }
         
     | 
| 
       234 
240 
     | 
    
         
             
                def initialize obj
         
     | 
    
        data/test/toto_test.rb
    CHANGED
    
    | 
         @@ -102,6 +102,17 @@ context Toto do 
     | 
|
| 
       102 
102 
     | 
    
         
             
                  should("have a url")                 { topic.url }.equals Time.now.strftime("#{URL}/%Y/%m/%d/toto-and-the-wizard-of-oz/")
         
     | 
| 
       103 
103 
     | 
    
         
             
                end
         
     | 
| 
       104 
104 
     | 
    
         | 
| 
      
 105 
     | 
    
         
            +
                context "with a user-defined summary" do
         
     | 
| 
      
 106 
     | 
    
         
            +
                  setup do
         
     | 
| 
      
 107 
     | 
    
         
            +
                    Toto::Article.new({
         
     | 
| 
      
 108 
     | 
    
         
            +
                      :title => "Toto & The Wizard of Oz.",
         
     | 
| 
      
 109 
     | 
    
         
            +
                      :body => "Well,\nhello ~\n, *stranger*."
         
     | 
| 
      
 110 
     | 
    
         
            +
                    }, @config.merge(:markdown => false, :summary => {:max => 150, :delim => /~\n/}))
         
     | 
| 
      
 111 
     | 
    
         
            +
                  end
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                  should("split the article at the delimiter") { topic.summary }.equals "Well,\nhello"
         
     | 
| 
      
 114 
     | 
    
         
            +
                end
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
       105 
116 
     | 
    
         
             
                context "with everything specified" do
         
     | 
| 
       106 
117 
     | 
    
         
             
                  setup do
         
     | 
| 
       107 
118 
     | 
    
         
             
                    Toto::Article.new({
         
     | 
    
        data/toto.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{toto}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0.2. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.2.1"
         
     | 
| 
       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-01- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2010-01-18}
         
     | 
| 
       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 = [
         
     | 
    
        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.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.1
         
     | 
| 
       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-01- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2010-01-18 00:00:00 -05:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     |