mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
prepare merge
This commit is contained in:
parent
c8e8f737ef
commit
9c82988a0e
6 changed files with 52 additions and 125 deletions
3
sinatra-contrib/.gitignore
vendored
3
sinatra-contrib/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
||||||
doc
|
|
||||||
dist
|
|
||||||
tmp
|
|
|
@ -1,6 +1,4 @@
|
||||||
(The MIT License)
|
Copyright (c) 2008-2011 Nicolas Sanguinetti, entp.com, Konstantin Haase
|
||||||
|
|
||||||
Copyright (c) 2008-2009 Nicolas Sanguinetti, entp.com
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
= ContentFor
|
|
||||||
|
|
||||||
Small extension for the Sinatra[http://sinatrarb.com] web framework
|
|
||||||
that allows you to use the following helpers in your views:
|
|
||||||
|
|
||||||
<% content_for :some_key do %>
|
|
||||||
<chunk of="html">...</chunk>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% yield_content :some_key %>
|
|
||||||
|
|
||||||
This allows you to capture blocks inside views to be rendered later
|
|
||||||
in this request. For example, to populate different parts of your
|
|
||||||
layout from your view.
|
|
||||||
|
|
||||||
When using this with the Haml rendering engine, you should do the
|
|
||||||
following:
|
|
||||||
|
|
||||||
- content_for :some_key do
|
|
||||||
%chunk{ :of => "html" } ...
|
|
||||||
|
|
||||||
= yield_content :some_key
|
|
||||||
|
|
||||||
<b>Note</b> that with ERB <tt>yield_content</tt> is called <b>without</b>
|
|
||||||
an '=' block (<tt><%= %></tt>), but with Haml it uses <tt>= yield_content</tt>.
|
|
||||||
|
|
||||||
Using an '=' block in ERB will output the content twice for each block,
|
|
||||||
so if you have problems with that, make sure to check for this.
|
|
||||||
|
|
||||||
== Usage
|
|
||||||
|
|
||||||
If you're writing "classic" style apps, then requring
|
|
||||||
<tt>sinatra/content_for</tt> should be enough. If you're writing
|
|
||||||
"classy" apps, then you also need to call
|
|
||||||
<tt>helpers Sinatra::ContentFor</tt> in your app definition.
|
|
||||||
|
|
||||||
== And how is this useful?
|
|
||||||
|
|
||||||
For example, some of your views might need a few javascript tags and
|
|
||||||
stylesheets, but you don't want to force this files in all your pages.
|
|
||||||
Then you can put <tt><% yield_content :scripts_and_styles %></tt> on
|
|
||||||
your layout, inside the <head> tag, and each view can call
|
|
||||||
<tt>content_for</tt> setting the appropriate set of tags that should
|
|
||||||
be added to the layout.
|
|
||||||
|
|
||||||
== Credits
|
|
||||||
|
|
||||||
Code by foca[http://github.com/foca], inspired on the Ruby on Rails
|
|
||||||
helpers with the same name. Haml support by mattly[http://github.com/mattly].
|
|
|
@ -1,33 +0,0 @@
|
||||||
require "rake/testtask"
|
|
||||||
|
|
||||||
begin
|
|
||||||
require "hanna/rdoctask"
|
|
||||||
rescue LoadError
|
|
||||||
require "rake/rdoctask"
|
|
||||||
end
|
|
||||||
|
|
||||||
begin
|
|
||||||
require "metric_fu"
|
|
||||||
rescue LoadError
|
|
||||||
end
|
|
||||||
|
|
||||||
begin
|
|
||||||
require "mg"
|
|
||||||
MG.new("sinatra-content-for.gemspec")
|
|
||||||
rescue LoadError
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "Default: run all tests"
|
|
||||||
task :default => :test
|
|
||||||
|
|
||||||
desc "Run library tests"
|
|
||||||
Rake::TestTask.new do |t|
|
|
||||||
t.test_files = FileList['test/**/*_test.rb']
|
|
||||||
end
|
|
||||||
|
|
||||||
Rake::RDocTask.new do |rd|
|
|
||||||
rd.main = "README"
|
|
||||||
rd.title = "Documentation for ContentFor"
|
|
||||||
rd.rdoc_files.include("README.rdoc", "LICENSE", "lib/**/*.rb")
|
|
||||||
rd.rdoc_dir = "doc"
|
|
||||||
end
|
|
|
@ -1,4 +1,52 @@
|
||||||
module Sinatra
|
module Sinatra
|
||||||
|
##
|
||||||
|
# Small extension for the Sinatra[http://sinatrarb.com] web framework
|
||||||
|
# that allows you to use the following helpers in your views:
|
||||||
|
#
|
||||||
|
# <% content_for :some_key do %>
|
||||||
|
# <chunk of="html">...</chunk>
|
||||||
|
# <% end %>
|
||||||
|
#
|
||||||
|
# <% yield_content :some_key %>
|
||||||
|
#
|
||||||
|
# This allows you to capture blocks inside views to be rendered later
|
||||||
|
# in this request. For example, to populate different parts of your
|
||||||
|
# layout from your view.
|
||||||
|
#
|
||||||
|
# When using this with the Haml rendering engine, you should do the
|
||||||
|
# following:
|
||||||
|
#
|
||||||
|
# - content_for :some_key do
|
||||||
|
# %chunk{ :of => "html" } ...
|
||||||
|
#
|
||||||
|
# = yield_content :some_key
|
||||||
|
#
|
||||||
|
# <b>Note</b> that with ERB <tt>yield_content</tt> is called <b>without</b>
|
||||||
|
# an '=' block (<tt><%= %></tt>), but with Haml it uses <tt>= yield_content</tt>.
|
||||||
|
#
|
||||||
|
# Using an '=' block in ERB will output the content twice for each block,
|
||||||
|
# so if you have problems with that, make sure to check for this.
|
||||||
|
#
|
||||||
|
# == Usage
|
||||||
|
#
|
||||||
|
# If you're writing "classic" style apps, then requring
|
||||||
|
# <tt>sinatra/content_for</tt> should be enough. If you're writing
|
||||||
|
# "classy" apps, then you also need to call
|
||||||
|
# <tt>helpers Sinatra::ContentFor</tt> in your app definition.
|
||||||
|
#
|
||||||
|
# == And how is this useful?
|
||||||
|
#
|
||||||
|
# For example, some of your views might need a few javascript tags and
|
||||||
|
# stylesheets, but you don't want to force this files in all your pages.
|
||||||
|
# Then you can put <tt><% yield_content :scripts_and_styles %></tt> on
|
||||||
|
# your layout, inside the <head> tag, and each view can call
|
||||||
|
# <tt>content_for</tt> setting the appropriate set of tags that should
|
||||||
|
# be added to the layout.
|
||||||
|
#
|
||||||
|
# == Credits
|
||||||
|
#
|
||||||
|
# Code by foca[http://github.com/foca], inspired on the Ruby on Rails
|
||||||
|
# helpers with the same name. Haml support by mattly[http://github.com/mattly].
|
||||||
module ContentFor
|
module ContentFor
|
||||||
# Capture a block of content to be rendered later. For example:
|
# Capture a block of content to be rendered later. For example:
|
||||||
#
|
#
|
||||||
|
@ -49,9 +97,9 @@ module Sinatra
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def content_blocks
|
def content_blocks
|
||||||
@content_blocks ||= Hash.new {|h,k| h[k] = [] }
|
@content_blocks ||= Hash.new {|h,k| h[k] = [] }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
helpers ContentFor
|
helpers ContentFor
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
Gem::Specification.new do |s|
|
|
||||||
s.name = "sinatra-content-for"
|
|
||||||
s.version = "0.2"
|
|
||||||
s.date = "2009-05-09"
|
|
||||||
|
|
||||||
s.description = "Small Sinatra extension to add a content_for helper similar to Rails'"
|
|
||||||
s.summary = "Small Sinatra extension to add a content_for helper similar to Rails'"
|
|
||||||
s.homepage = "http://sinatrarb.com"
|
|
||||||
|
|
||||||
s.authors = ["Nicolás Sanguinetti"]
|
|
||||||
s.email = "contacto@nicolassanguinetti.info"
|
|
||||||
|
|
||||||
s.require_paths = ["lib"]
|
|
||||||
s.rubyforge_project = "sinatra-ditties"
|
|
||||||
s.has_rdoc = true
|
|
||||||
s.rubygems_version = "1.3.1"
|
|
||||||
|
|
||||||
s.add_dependency "sinatra"
|
|
||||||
|
|
||||||
if s.respond_to?(:add_development_dependency)
|
|
||||||
s.add_development_dependency "contest"
|
|
||||||
s.add_development_dependency "sr-mg"
|
|
||||||
s.add_development_dependency "redgreen"
|
|
||||||
end
|
|
||||||
|
|
||||||
s.files = %w[
|
|
||||||
.gitignore
|
|
||||||
LICENSE
|
|
||||||
README.rdoc
|
|
||||||
sinatra-content-for.gemspec
|
|
||||||
lib/sinatra/content_for.rb
|
|
||||||
test/content_for_test.rb
|
|
||||||
]
|
|
||||||
end
|
|
Loading…
Add table
Reference in a new issue