homeostasis 0.0.15 → 0.0.16
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 +50 -29
- data/lib/homeostasis.rb +150 -28
- data/lib/version.rb +1 -1
- metadata +83 -3
    
        data/README.md
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            Description
         | 
| 2 2 | 
             
            ===========
         | 
| 3 3 |  | 
| 4 | 
            -
            Stasis plugin for asset stamping, blogs, front-matter yaml, | 
| 5 | 
            -
            trailing slashes.
         | 
| 4 | 
            +
            Stasis plugin for asset stamping, before/after_all, blogs, front-matter yaml,
         | 
| 5 | 
            +
            multi templates, sitemaps, and trailing slashes.
         | 
| 6 6 |  | 
| 7 7 | 
             
            Installation
         | 
| 8 8 | 
             
            ============
         | 
| @@ -48,6 +48,19 @@ You can concatenate multiple assets into a single file: | |
| 48 48 | 
             
                Homeostasis::Asset.concat 'all.js', %w(jquery.js mine.js)
         | 
| 49 49 | 
             
                Homeostasis::Asset.concat 'all.css', %w(reset.css mine.css)
         | 
| 50 50 |  | 
| 51 | 
            +
            Before and After All Events
         | 
| 52 | 
            +
            ===========================
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            In your controller:
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                before_all do
         | 
| 57 | 
            +
                  # called exactly once before all files are rendered
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                after_all do
         | 
| 61 | 
            +
                  # called exactly once after all files are rendered
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
             | 
| 51 64 | 
             
            Blog
         | 
| 52 65 | 
             
            ====
         | 
| 53 66 |  | 
| @@ -60,13 +73,13 @@ In your controller: | |
| 60 73 | 
             
                  :title => 'Blog Title',
         | 
| 61 74 | 
             
                  :desc => 'Blog Description for RSS feed')
         | 
| 62 75 |  | 
| 63 | 
            -
            Post files should be in the format `yyyy-mm-dd-permalink | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 76 | 
            +
            Post files should be in the format `yyyy-mm-dd-permalink.*`.  Use YAML
         | 
| 77 | 
            +
            front-matter for any metadata you want.  `:date` and `:path` will be added
         | 
| 78 | 
            +
            automatically for you.
         | 
| 66 79 |  | 
| 67 | 
            -
                 | 
| 68 | 
            -
             | 
| 69 | 
            -
                 | 
| 80 | 
            +
                ---
         | 
| 81 | 
            +
                :title: Title Goes Here
         | 
| 82 | 
            +
                ---
         | 
| 70 83 |  | 
| 71 84 | 
             
            You'll have to create your own `blog/index.html`.  Use the `blog_posts` helper
         | 
| 72 85 | 
             
            to construct it:
         | 
| @@ -80,9 +93,10 @@ Front-Matter YAML | |
| 80 93 |  | 
| 81 94 | 
             
            In your views:
         | 
| 82 95 |  | 
| 83 | 
            -
                 | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 96 | 
            +
                ---
         | 
| 97 | 
            +
                :title: Lorem Ipsum
         | 
| 98 | 
            +
                :desc:  Quick fox over lazy dog.
         | 
| 99 | 
            +
                ---
         | 
| 86 100 | 
             
                %div
         | 
| 87 101 | 
             
                  Page continues as normal here
         | 
| 88 102 | 
             
                %h1= front[:title]
         | 
| @@ -91,20 +105,14 @@ In your views: | |
| 91 105 | 
             
            Note the 2-space indentation is required.  This works for HTML, Markdown, and
         | 
| 92 106 | 
             
            ERB comments as well:
         | 
| 93 107 |  | 
| 94 | 
            -
                 | 
| 95 | 
            -
             | 
| 96 | 
            -
                 | 
| 108 | 
            +
                ---
         | 
| 109 | 
            +
                :title: Lorem Ipsum
         | 
| 110 | 
            +
                ---
         | 
| 97 111 | 
             
                Continue as normal
         | 
| 98 112 |  | 
| 99 113 | 
             
            You can configure which files to check in `controller.rb`.  Here's the default:
         | 
| 100 114 |  | 
| 101 | 
            -
                Homeostasis::Front.config(
         | 
| 102 | 
            -
                  :matchers => {
         | 
| 103 | 
            -
                    'erb'  => /<%#/,
         | 
| 104 | 
            -
                    'haml' => /-#/,
         | 
| 105 | 
            -
                    'html' => /<!--/,
         | 
| 106 | 
            -
                    'md'   => /<!--/
         | 
| 107 | 
            -
                  })
         | 
| 115 | 
            +
                Homeostasis::Front.config(:matcher => /\.erb|\.haml|\.html|\.md$/)
         | 
| 108 116 |  | 
| 109 117 | 
             
            Just start the file with YAML inside a comment with 2-space indentation.  The
         | 
| 110 118 | 
             
            data will be available from the `front` method in your views and controller.
         | 
| @@ -114,6 +122,19 @@ cross-page access. | |
| 114 122 | 
             
            Note that `:path` is automatically assigned if left blank.  Its value will be
         | 
| 115 123 | 
             
            the public path to the page.
         | 
| 116 124 |  | 
| 125 | 
            +
            Multi Templates
         | 
| 126 | 
            +
            ===============
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            Use multiple file extensions and have Tilt automatically process them.  The
         | 
| 129 | 
            +
            filename `example.html.md.erb` will first run through an ERB processor, then
         | 
| 130 | 
            +
            a Markdown processor:
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                # Sample Markdown <%= 1 + 2 %>
         | 
| 133 | 
            +
             | 
| 134 | 
            +
            Will become:
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                <h1>Sample Markdown 3</h1>
         | 
| 137 | 
            +
             | 
| 117 138 | 
             
            Sitemap
         | 
| 118 139 | 
             
            =======
         | 
| 119 140 |  | 
| @@ -128,16 +149,16 @@ to set the root URL for this to happen: | |
| 128 149 | 
             
            `loc` and `lastmod` will be generated for each page.  Use front-yaml to set the
         | 
| 129 150 | 
             
            `changefreq` or `priority`:
         | 
| 130 151 |  | 
| 131 | 
            -
                 | 
| 132 | 
            -
             | 
| 133 | 
            -
             | 
| 134 | 
            -
                 | 
| 152 | 
            +
                ---
         | 
| 153 | 
            +
                :changefreq: monthly
         | 
| 154 | 
            +
                :priority: 0.9
         | 
| 155 | 
            +
                ---
         | 
| 135 156 |  | 
| 136 157 | 
             
            Use the key `private` to avoid generating an entry:
         | 
| 137 158 |  | 
| 138 | 
            -
                 | 
| 139 | 
            -
             | 
| 140 | 
            -
                 | 
| 159 | 
            +
                ---
         | 
| 160 | 
            +
                :private: true
         | 
| 161 | 
            +
                ---
         | 
| 141 162 |  | 
| 142 163 | 
             
            Trailing Slash
         | 
| 143 164 | 
             
            ==============
         | 
| @@ -161,7 +182,7 @@ slashes to URLs. | |
| 161 182 | 
             
            TODO
         | 
| 162 183 | 
             
            ====
         | 
| 163 184 |  | 
| 164 | 
            -
            *  | 
| 185 | 
            +
            * setup homeostasis website
         | 
| 165 186 |  | 
| 166 187 | 
             
            License
         | 
| 167 188 | 
             
            =======
         | 
    
        data/lib/homeostasis.rb
    CHANGED
    
    | @@ -1,10 +1,12 @@ | |
| 1 1 | 
             
            require 'rubygems'
         | 
| 2 2 | 
             
            require 'stasis'
         | 
| 3 3 | 
             
            require 'digest/sha1'
         | 
| 4 | 
            -
            require 'bluecloth'
         | 
| 5 4 | 
             
            require 'yaml'
         | 
| 6 5 | 
             
            require 'cgi'
         | 
| 7 6 | 
             
            require 'uri'
         | 
| 7 | 
            +
            require 'tilt'
         | 
| 8 | 
            +
            require 'tempfile'
         | 
| 9 | 
            +
            require 'preamble'
         | 
| 8 10 |  | 
| 9 11 | 
             
            module Homeostasis
         | 
| 10 12 | 
             
              module Helpers
         | 
| @@ -26,6 +28,27 @@ module Homeostasis | |
| 26 28 | 
             
                def h(html)
         | 
| 27 29 | 
             
                  CGI::escapeHTML(html)
         | 
| 28 30 | 
             
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                def render_multi(path, body = nil, context = nil, locals = {})
         | 
| 33 | 
            +
                  body ||= File.read(path)
         | 
| 34 | 
            +
                  render_templates_for(path).each do |template|
         | 
| 35 | 
            +
                    blk = proc { body }
         | 
| 36 | 
            +
                    body = template.new(path, &blk).render(context, locals)
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                  body
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def render_templates_for(path)
         | 
| 42 | 
            +
                  File.basename(path).split('.')[1..-1].reverse.map { |ext| Tilt[ext] }.compact
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                def self.stasis_path
         | 
| 46 | 
            +
                  @@stasis_path
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                def self.set_stasis_path(stasis, path)
         | 
| 50 | 
            +
                  @@stasis_path = path if path =~ /^#{stasis.root}/ || path.nil?
         | 
| 51 | 
            +
                end
         | 
| 29 52 | 
             
              end
         | 
| 30 53 |  | 
| 31 54 | 
             
              class Asset < Stasis::Plugin
         | 
| @@ -145,41 +168,59 @@ module Homeostasis | |
| 145 168 | 
             
                private
         | 
| 146 169 | 
             
              end
         | 
| 147 170 |  | 
| 171 | 
            +
              class Event < Stasis::Plugin
         | 
| 172 | 
            +
                before_all :before_all_send
         | 
| 173 | 
            +
                after_all :after_all_send
         | 
| 174 | 
            +
                controller_method :before_all
         | 
| 175 | 
            +
                controller_method :after_all
         | 
| 176 | 
            +
                reset :reset
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                def initialize(stasis)
         | 
| 179 | 
            +
                  @stasis = stasis
         | 
| 180 | 
            +
                  reset
         | 
| 181 | 
            +
                end
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                def before_all(&block)
         | 
| 184 | 
            +
                  @befores << block
         | 
| 185 | 
            +
                end
         | 
| 186 | 
            +
             | 
| 187 | 
            +
                def after_all(&block)
         | 
| 188 | 
            +
                  @afters << block
         | 
| 189 | 
            +
                end
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                def before_all_send
         | 
| 192 | 
            +
                  @befores.each { |b| @stasis.action.instance_eval(&b) }
         | 
| 193 | 
            +
                end
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                def after_all_send
         | 
| 196 | 
            +
                  @afters.each { |b| @stasis.action.instance_eval(&b) }
         | 
| 197 | 
            +
                end
         | 
| 198 | 
            +
             | 
| 199 | 
            +
                def reset
         | 
| 200 | 
            +
                  @befores = []
         | 
| 201 | 
            +
                  @afters = []
         | 
| 202 | 
            +
                end
         | 
| 203 | 
            +
              end
         | 
| 204 | 
            +
             | 
| 148 205 | 
             
              class Front < Stasis::Plugin
         | 
| 149 206 | 
             
                include Helpers
         | 
| 150 207 | 
             
                before_all    :before_all
         | 
| 208 | 
            +
                before_render :before_render
         | 
| 209 | 
            +
                after_render  :after_render
         | 
| 151 210 | 
             
                action_method :front
         | 
| 152 211 | 
             
                action_method :front_site
         | 
| 212 | 
            +
                priority      2
         | 
| 153 213 |  | 
| 154 214 | 
             
                def initialize(stasis)
         | 
| 155 215 | 
             
                  @stasis = stasis
         | 
| 156 216 | 
             
                  @@front_site = {}
         | 
| 157 | 
            -
                  @@ | 
| 158 | 
            -
                    'erb'  => /<%#/,
         | 
| 159 | 
            -
                    'haml' => /-#/,
         | 
| 160 | 
            -
                    'html' => /<!--/,
         | 
| 161 | 
            -
                    'md'   => /<!--/
         | 
| 162 | 
            -
                  }
         | 
| 217 | 
            +
                  @@matcher = /\.erb|\.haml|\.html|\.md$/
         | 
| 163 218 | 
             
                end
         | 
| 164 219 |  | 
| 165 220 | 
             
                def before_all
         | 
| 166 221 | 
             
                  @stasis.paths.each do |path|
         | 
| 167 | 
            -
                     | 
| 168 | 
            -
                    if  | 
| 169 | 
            -
                      yaml = {}
         | 
| 170 | 
            -
                    else
         | 
| 171 | 
            -
                      lines, data, index = contents.split("\n"), "", 1
         | 
| 172 | 
            -
                      while index < lines.size
         | 
| 173 | 
            -
                        break if lines[index] !~ /^  /
         | 
| 174 | 
            -
                        data += lines[index] + "\n"
         | 
| 175 | 
            -
                        index += 1
         | 
| 176 | 
            -
                      end
         | 
| 177 | 
            -
                      begin
         | 
| 178 | 
            -
                        yaml = YAML.load(data)
         | 
| 179 | 
            -
                      rescue Psych::SyntaxError
         | 
| 180 | 
            -
                        yaml = {}
         | 
| 181 | 
            -
                      end
         | 
| 182 | 
            -
                    end
         | 
| 222 | 
            +
                    yaml, body = Front.preamble_load(path)
         | 
| 223 | 
            +
                    next if yaml.nil?
         | 
| 183 224 |  | 
| 184 225 | 
             
                    # add special :path key for generated files
         | 
| 185 226 | 
             
                    if !ignore?(path)
         | 
| @@ -194,8 +235,29 @@ module Homeostasis | |
| 194 235 | 
             
                  end
         | 
| 195 236 | 
             
                end
         | 
| 196 237 |  | 
| 238 | 
            +
                def before_render
         | 
| 239 | 
            +
                  if @stasis.path && @stasis.path =~ @@matcher && !ignore?(@stasis.path)
         | 
| 240 | 
            +
                    ext = File.basename(@stasis.path).split('.', 2).last
         | 
| 241 | 
            +
                    yaml, body = Front.preamble_load(@stasis.path)
         | 
| 242 | 
            +
                    @tmpfile = Tempfile.new(['temp', ".#{ext}"])
         | 
| 243 | 
            +
                    @tmpfile.puts(body)
         | 
| 244 | 
            +
                    @tmpfile.close
         | 
| 245 | 
            +
                    Helpers.set_stasis_path(@stasis, @stasis.path)
         | 
| 246 | 
            +
                    @stasis.path = @tmpfile.path
         | 
| 247 | 
            +
                  end
         | 
| 248 | 
            +
                end
         | 
| 249 | 
            +
             | 
| 250 | 
            +
                def after_render
         | 
| 251 | 
            +
                  if @tmpfile
         | 
| 252 | 
            +
                    @stasis.path = Helpers.stasis_path if @stasis.path !~ /^#{@stasis.root}/
         | 
| 253 | 
            +
                    Helpers.set_stasis_path(@stasis, nil)
         | 
| 254 | 
            +
                    @tmpfile.unlink
         | 
| 255 | 
            +
                    @tmpfile = nil
         | 
| 256 | 
            +
                  end
         | 
| 257 | 
            +
                end
         | 
| 258 | 
            +
             | 
| 197 259 | 
             
                def front
         | 
| 198 | 
            -
                  @@front_site[front_key(@stasis.path)] || {}
         | 
| 260 | 
            +
                  @@front_site[front_key(Helpers.stasis_path || @stasis.path)] || {}
         | 
| 199 261 | 
             
                end
         | 
| 200 262 |  | 
| 201 263 | 
             
                def front_site
         | 
| @@ -207,7 +269,14 @@ module Homeostasis | |
| 207 269 | 
             
                end
         | 
| 208 270 |  | 
| 209 271 | 
             
                def self.config(options)
         | 
| 210 | 
            -
                  @@ | 
| 272 | 
            +
                  @@matcher = options[:matcher] if options[:matcher]
         | 
| 273 | 
            +
                end
         | 
| 274 | 
            +
             | 
| 275 | 
            +
                def self.preamble_load(path)
         | 
| 276 | 
            +
                  return nil if path.nil? || path !~ @@matcher
         | 
| 277 | 
            +
                  Preamble.load(path)
         | 
| 278 | 
            +
                rescue
         | 
| 279 | 
            +
                  [{}, File.read(path)]
         | 
| 211 280 | 
             
                end
         | 
| 212 281 |  | 
| 213 282 | 
             
                private
         | 
| @@ -229,6 +298,56 @@ module Homeostasis | |
| 229 298 | 
             
                end
         | 
| 230 299 | 
             
              end
         | 
| 231 300 |  | 
| 301 | 
            +
              class Multi < Stasis::Plugin
         | 
| 302 | 
            +
                include Helpers
         | 
| 303 | 
            +
                before_render :before_render
         | 
| 304 | 
            +
                after_render  :after_render
         | 
| 305 | 
            +
                after_write   :after_write
         | 
| 306 | 
            +
                priority      1
         | 
| 307 | 
            +
             | 
| 308 | 
            +
                def initialize(stasis)
         | 
| 309 | 
            +
                  @stasis = stasis
         | 
| 310 | 
            +
                end
         | 
| 311 | 
            +
             | 
| 312 | 
            +
                def before_render
         | 
| 313 | 
            +
                  if @stasis.path && !ignore?(@stasis.path)
         | 
| 314 | 
            +
                    exts = File.basename(@stasis.path).split('.')[2..-1]
         | 
| 315 | 
            +
                    return if exts.nil? || exts.length < 2
         | 
| 316 | 
            +
             | 
| 317 | 
            +
                    yaml, body = Front.preamble_load(@stasis.path)
         | 
| 318 | 
            +
                    body ||= File.read(@stasis.path)
         | 
| 319 | 
            +
             | 
| 320 | 
            +
                    @tmpfile = Tempfile.new(["temp", ".txt"])
         | 
| 321 | 
            +
                    @tmpfile.puts(render_multi(@stasis.path, body))
         | 
| 322 | 
            +
                    @tmpfile.close
         | 
| 323 | 
            +
                    Helpers.set_stasis_path(@stasis, @stasis.path)
         | 
| 324 | 
            +
                    @stasis.path = @tmpfile.path
         | 
| 325 | 
            +
                  end
         | 
| 326 | 
            +
                end
         | 
| 327 | 
            +
             | 
| 328 | 
            +
                def after_render
         | 
| 329 | 
            +
                  if @tmpfile
         | 
| 330 | 
            +
                    @stasis.path = Helpers.stasis_path if @stasis.path !~ /^#{@stasis.root}/
         | 
| 331 | 
            +
                    Helpers.set_stasis_path(@stasis, nil)
         | 
| 332 | 
            +
                    @tmpfile.unlink if @tmpfile
         | 
| 333 | 
            +
                    @tmpfile = nil
         | 
| 334 | 
            +
                  end
         | 
| 335 | 
            +
                end
         | 
| 336 | 
            +
             | 
| 337 | 
            +
                def after_write
         | 
| 338 | 
            +
                  return if @stasis.path.nil? || ignore?(@stasis.path)
         | 
| 339 | 
            +
                  dirname = File.dirname(@stasis.dest)
         | 
| 340 | 
            +
                  basename = File.basename(@stasis.dest)
         | 
| 341 | 
            +
                  exts = basename.split('.')[2..-1]
         | 
| 342 | 
            +
             | 
| 343 | 
            +
                  return if exts.nil? || exts.length < 1
         | 
| 344 | 
            +
                  exts.each do |ext|
         | 
| 345 | 
            +
                    basename = basename.sub(/\.#{ext}/, '')
         | 
| 346 | 
            +
                  end
         | 
| 347 | 
            +
                  File.rename(@stasis.dest, File.join(dirname, basename))
         | 
| 348 | 
            +
                end
         | 
| 349 | 
            +
              end
         | 
| 350 | 
            +
             | 
| 232 351 | 
             
              class Trail < Stasis::Plugin
         | 
| 233 352 | 
             
                after_all :after_all
         | 
| 234 353 |  | 
| @@ -300,6 +419,7 @@ module Homeostasis | |
| 300 419 | 
             
                before_all    :before_all
         | 
| 301 420 | 
             
                after_all     :after_all
         | 
| 302 421 | 
             
                action_method :blog_posts
         | 
| 422 | 
            +
                priority      3
         | 
| 303 423 |  | 
| 304 424 | 
             
                def initialize(stasis)
         | 
| 305 425 | 
             
                  @stasis = stasis
         | 
| @@ -331,7 +451,7 @@ module Homeostasis | |
| 331 451 | 
             
                    post[:path] = post[:path].sub(
         | 
| 332 452 | 
             
                      "/#{@@directory}/#{date}-",
         | 
| 333 453 | 
             
                      File.join('/', @@path, '/'))
         | 
| 334 | 
            -
                    post[:body] =  | 
| 454 | 
            +
                    post[:body] = render_multi(filename, File.read(filename))
         | 
| 335 455 | 
             
                    @@posts << post
         | 
| 336 456 | 
             
                  end
         | 
| 337 457 | 
             
                  @@posts = @@posts.sort_by { |post| post[:date] }.reverse
         | 
| @@ -353,7 +473,7 @@ module Homeostasis | |
| 353 473 | 
             
                  rss += "    <title>#{h @@title}</title>\n" if @@title
         | 
| 354 474 | 
             
                  rss += "    <link>#{h @@url}/</link>\n" if @@url
         | 
| 355 475 | 
             
                  rss += "    <description>#{h @@desc}</description>\n" if @@desc
         | 
| 356 | 
            -
                  blog_posts[0..5].each do |post|
         | 
| 476 | 
            +
                  blog_posts.reject {|p| p.has_key?(:norss) }[0..5].each do |post|
         | 
| 357 477 | 
             
                    body = post[:body]
         | 
| 358 478 | 
             
                    body.gsub!(/(href|src)=('|")\//, "\\1=\\2#{@@url}/")
         | 
| 359 479 | 
             
                    rss += "    <item>\n"
         | 
| @@ -365,7 +485,7 @@ module Homeostasis | |
| 365 485 | 
             
                  end
         | 
| 366 486 | 
             
                  rss += "  </channel>\n"
         | 
| 367 487 | 
             
                  rss += "</rss>"
         | 
| 368 | 
            -
                  File.open(File.join(blog_dest,  | 
| 488 | 
            +
                  File.open(File.join(blog_dest, 'rss.xml'), 'w') do |f|
         | 
| 369 489 | 
             
                    f.puts(rss)
         | 
| 370 490 | 
             
                  end
         | 
| 371 491 | 
             
                end
         | 
| @@ -379,7 +499,9 @@ end | |
| 379 499 |  | 
| 380 500 | 
             
            if !ENV['HOMEOSTASIS_UNREGISTER']
         | 
| 381 501 | 
             
              Stasis.register(Homeostasis::Asset)
         | 
| 502 | 
            +
              Stasis.register(Homeostasis::Event)
         | 
| 382 503 | 
             
              Stasis.register(Homeostasis::Front)
         | 
| 504 | 
            +
              Stasis.register(Homeostasis::Multi)
         | 
| 383 505 | 
             
              Stasis.register(Homeostasis::Trail)
         | 
| 384 506 | 
             
              Stasis.register(Homeostasis::Sitemap)
         | 
| 385 507 | 
             
              Stasis.register(Homeostasis::Blog)
         | 
    
        data/lib/version.rb
    CHANGED
    
    
    
        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. | 
| 4 | 
            +
              version: 0.0.16
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,8 +9,88 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013- | 
| 13 | 
            -
            dependencies: | 
| 12 | 
            +
            date: 2013-09-21 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: stasis
         | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0'
         | 
| 22 | 
            +
              type: :runtime
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            +
                none: false
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ! '>='
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: '0'
         | 
| 30 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 31 | 
            +
              name: preamble
         | 
| 32 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            +
                none: false
         | 
| 34 | 
            +
                requirements:
         | 
| 35 | 
            +
                - - ! '>='
         | 
| 36 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            +
                    version: '0'
         | 
| 38 | 
            +
              type: :runtime
         | 
| 39 | 
            +
              prerelease: false
         | 
| 40 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ! '>='
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: '0'
         | 
| 46 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 47 | 
            +
              name: tilt
         | 
| 48 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            +
                none: false
         | 
| 50 | 
            +
                requirements:
         | 
| 51 | 
            +
                - - ! '>='
         | 
| 52 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 53 | 
            +
                    version: '0'
         | 
| 54 | 
            +
              type: :runtime
         | 
| 55 | 
            +
              prerelease: false
         | 
| 56 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            +
                none: false
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ! '>='
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 63 | 
            +
              name: bluecloth
         | 
| 64 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                none: false
         | 
| 66 | 
            +
                requirements:
         | 
| 67 | 
            +
                - - ! '>='
         | 
| 68 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 69 | 
            +
                    version: '0'
         | 
| 70 | 
            +
              type: :development
         | 
| 71 | 
            +
              prerelease: false
         | 
| 72 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
                none: false
         | 
| 74 | 
            +
                requirements:
         | 
| 75 | 
            +
                - - ! '>='
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: '0'
         | 
| 78 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 79 | 
            +
              name: haml
         | 
| 80 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 81 | 
            +
                none: false
         | 
| 82 | 
            +
                requirements:
         | 
| 83 | 
            +
                - - ! '>='
         | 
| 84 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 85 | 
            +
                    version: '0'
         | 
| 86 | 
            +
              type: :development
         | 
| 87 | 
            +
              prerelease: false
         | 
| 88 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 89 | 
            +
                none: false
         | 
| 90 | 
            +
                requirements:
         | 
| 91 | 
            +
                - - ! '>='
         | 
| 92 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 93 | 
            +
                    version: '0'
         | 
| 14 94 | 
             
            description: Provides asset stamping using git revisions, environments, and a few
         | 
| 15 95 | 
             
              view helpers.
         | 
| 16 96 | 
             
            email:
         |