sinatra-content-for2 0.2.4 → 0.3.alpha1

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/.gitignore CHANGED
@@ -1,4 +1,6 @@
1
1
  doc/
2
- dist/
3
- tmp/
4
- *.swp
2
+ pkg/
3
+ *.sw?
4
+ .yardoc/
5
+ Gemfile.lock
6
+
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ -c -f progress -r ./spec/spec_helper.rb
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source :rubygems
2
+
3
+ gem "ripper", :platforms => :mri_18
4
+
5
+ gemspec
6
+
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ begin
2
+ require 'bundler'
3
+
4
+ Bundler::GemHelper.install_tasks
5
+ rescue LoadError
6
+ $stderr.puts "Please install bundler with: gem install bundler"
7
+ end
8
+
9
+ $LOAD_PATH << File.expand_path('../lib', __FILE__)
10
+ require "sinatra/content_for2/version"
11
+
12
+ desc "Default: run all specs"
13
+ task :default => :spec
14
+
15
+ begin
16
+ require 'rspec/core/rake_task'
17
+
18
+ RSpec::Core::RakeTask.new
19
+ rescue LoadError
20
+ $stderr.puts "Please install RSpec 2"
21
+ end
22
+
23
+ begin
24
+ require 'yard'
25
+ YARD::Rake::YardocTask.new do |t|
26
+ t.options = ['--title', "Sinatra::ContentFor2 #{Sinatra::ContentFor2::VERSION}"]
27
+ if defined?(Encoding)
28
+ t.options << '--charset'
29
+ t.options << 'utf-8'
30
+ end
31
+ end
32
+ rescue LoadError
33
+ $stderr.puts "Yard is not installed. Please run gem install yard"
34
+ end
35
+
@@ -1,79 +1,122 @@
1
1
  module Sinatra
2
2
  module ContentFor2
3
- # Capture a block of content to be rendered later. For example:
4
- #
5
- # <% content_for :head do %>
6
- # <script type="text/javascript" src="/foo.js"></script>
7
- # <% end %>
8
- #
9
- # You can call +content_for+ multiple times with the same key
10
- # (in the example +:head+), and when you render the blocks for
11
- # that key all of them will be rendered, in the same order you
12
- # captured them.
13
- #
14
- # Your blocks can also receive values, which are passed to them
15
- # by <tt>yield_content</tt>
16
- def content_for(key, &block)
17
- content_blocks[key.to_sym] << block if block_given?
3
+ def self.included(base) #:nodoc:
4
+ base.send(:include, CurrentTemplateEngine) unless base.method_defined?(:current_template_engine)
18
5
  end
19
-
20
- # Check if a block of content with the given key was defined. For
21
- # example:
22
- #
23
- # <% content_for :head do %>
24
- # <script type="text/javascript" src="/foo.js"></script>
25
- # <% end %>
26
- #
27
- # <% if content_for? :head %>
28
- # <span>content "head" was defined.</span>
29
- # <% end %>
30
- def content_for?(key)
31
- content_blocks[key.to_sym].any?
6
+
7
+ module CurrentTemplateEngine
8
+ attr_reader :current_template_engine
9
+
10
+ def render(engine, *) #:nodoc:
11
+ @current_template_engine, engine_was = engine, @current_template_engine
12
+ output = super
13
+ @current_template_engine = engine_was
14
+ output
15
+ end
32
16
  end
17
+ end
18
+ end
33
19
 
34
- # Render the captured blocks for a given key. For example:
35
- #
36
- # <head>
37
- # <title>Example</title>
38
- # <% yield_content :head %>
39
- # </head>
40
- #
41
- # Would render everything you declared with <tt>content_for
42
- # :head</tt> before closing the <tt><head></tt> tag.
43
- #
44
- # You can also pass values to the content blocks by passing them
45
- # as arguments after the key:
46
- #
47
- # <% yield_content :head, 1, 2 %>
48
- #
49
- # Would pass <tt>1</tt> and <tt>2</tt> to all the blocks registered
50
- # for <tt>:head</tt>.
51
- #
52
- # *NOTICE* that you call this without an <tt>=</tt> sign. IE,
53
- # in a <tt><% %></tt> block, and not in a <tt><%= %></tt> block.
54
- #
55
- # *NOTICE*
56
- # if you call from erubis, you call this with <tt>=</tt> sign.IE,
57
- #in a <tt><%= %></tt> block, and not in a <tt><% %></tt> block.
58
- def yield_content(key, *args)
59
- content_blocks[key.to_sym].map do |content|
60
- if respond_to?(:block_is_haml?) && block_is_haml?(content)
61
- capture_haml(*args, &content)
62
- elsif defined?(Erubis)
63
- content.binding.eval ' _buf = "" '
64
- content.call(*args)
65
- else
66
- content.call
67
- end
68
- end.join
20
+ require 'sinatra/content_for2/base_handler'
21
+ require 'sinatra/content_for2/erb_handler'
22
+ require 'sinatra/content_for2/haml_handler'
23
+ require 'sinatra/content_for2/slim_handler'
24
+
25
+ module Sinatra::ContentFor2
26
+ def capture_html(*args, &block)
27
+ handler = find_proper_handler
28
+ captured_html = nil
29
+ if handler && handler.is_type? && handler.block_is_type?(block)
30
+ captured_html = handler.capture_from_template(*args, &block)
31
+ end
32
+ if captured_html.nil? && block_given?
33
+ captured_html = block.call(*args)
69
34
  end
35
+ captured_html || ''
36
+ end
70
37
 
71
- private
38
+ # Capture a block of content to be rendered later. For example:
39
+ #
40
+ # <% content_for :head do %>
41
+ # <script type="text/javascript" src="/foo.js"></script>
42
+ # <% end %>
43
+ #
44
+ # You can call +content_for+ multiple times with the same key
45
+ # (in the example +:head+), and when you render the blocks for
46
+ # that key all of them will be rendered, in the same order you
47
+ # captured them.
48
+ #
49
+ # Your blocks can also receive values, which are passed to them
50
+ # by <tt>yield_content</tt>
51
+ def content_for(key, content = nil, &block)
52
+ key = key.to_sym
53
+ unless content.nil?
54
+ content_blocks[key] << content
55
+ end
56
+ if block_given?
57
+ content_blocks[key] << block
58
+ end
59
+ ''
60
+ end
61
+
62
+ # Check if a block of content with the given key was defined. For
63
+ # example:
64
+ #
65
+ # <% content_for :head do %>
66
+ # <script type="text/javascript" src="/foo.js"></script>
67
+ # <% end %>
68
+ #
69
+ # <% if content_for? :head %>
70
+ # <span>content "head" was defined.</span>
71
+ # <% end %>
72
+ def content_for?(key)
73
+ content_blocks[key.to_sym].any?
74
+ end
72
75
 
73
- def content_blocks
74
- @content_blocks ||= Hash.new {|h,k| h[k] = [] }
75
- end
76
+ # Render the captured blocks for a given key. For example:
77
+ #
78
+ # <head>
79
+ # <title>Example</title>
80
+ # <% yield_content :head %>
81
+ # </head>
82
+ #
83
+ # Would render everything you declared with <tt>content_for
84
+ # :head</tt> before closing the <tt><head></tt> tag.
85
+ #
86
+ # You can also pass values to the content blocks by passing them
87
+ # as arguments after the key:
88
+ #
89
+ # <% yield_content :head, 1, 2 %>
90
+ #
91
+ # Would pass <tt>1</tt> and <tt>2</tt> to all the blocks registered
92
+ # for <tt>:head</tt>.
93
+ #
94
+ # *NOTICE* that you call this without an <tt>=</tt> sign. IE,
95
+ # in a <tt><% %></tt> block, and not in a <tt><%= %></tt> block.
96
+ #
97
+ # *NOTICE*
98
+ # if you call from erubis, you call this with <tt>=</tt> sign.IE,
99
+ #in a <tt><%= %></tt> block, and not in a <tt><% %></tt> block.
100
+ def yield_content(key, *args)
101
+ blocks = content_blocks[key.to_sym]
102
+ return nil if blocks.empty?
103
+ blocks.map do |block|
104
+ block.kind_of?(Proc) ? capture_html(*args, &block) : block.to_s
105
+ end.join('')
106
+ end
107
+
108
+ protected
109
+ def content_blocks
110
+ @content_blocks ||= Hash.new { |h, k| h[k] = [] }
111
+ end
112
+
113
+ def find_proper_handler
114
+ Sinatra::ContentFor2::BaseHandler.classes.map do |handlerClass|
115
+ handlerClass.new(self)
116
+ end.find do |handler|
117
+ handler.engines.include?(current_template_engine) && handler.is_type?
118
+ end
76
119
  end
77
120
 
78
- helpers ContentFor2
79
121
  end
122
+
@@ -0,0 +1,33 @@
1
+ class Sinatra::ContentFor2::BaseHandler
2
+ class << self
3
+ def classes
4
+ @classes ||= []
5
+ end
6
+
7
+ def register(handlerClass)
8
+ classes << handlerClass
9
+ end
10
+ end
11
+
12
+ attr_reader :template
13
+
14
+ def initialize(template)
15
+ @template = template
16
+ end
17
+
18
+ def engines
19
+ raise NotImplementedError.new
20
+ end
21
+
22
+ def is_type?
23
+ raise NotImplementedError.new
24
+ end
25
+
26
+ def block_is_type?(block)
27
+ raise NotImplementedError.new
28
+ end
29
+
30
+ def capture_from_template(*args, &block)
31
+ raise NotImplementedError.new
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ class Sinatra::ContentFor2::ErbHandler < Sinatra::ContentFor2::BaseHandler
2
+ attr_reader :output_buffer
3
+
4
+ def initialize(template)
5
+ super
6
+ @output_buffer = template.instance_variable_get(:@_out_buf)
7
+ end
8
+
9
+ def is_type?
10
+ ! self.output_buffer.nil?
11
+ end
12
+
13
+ def block_is_type?(block)
14
+ is_type? || (block && eval('defined?(__in_erb_template)', block.binding))
15
+ end
16
+
17
+ def engines
18
+ @engines ||= [ :erb, :erubis ]
19
+ end
20
+
21
+ def capture_from_template(*args, &block)
22
+ self.output_buffer, _buf_was = '', self.output_buffer
23
+ block.call(*args)
24
+ ret = eval('@_out_buf', block.binding)
25
+ self.output_buffer = _buf_was
26
+ ret
27
+ end
28
+
29
+ protected
30
+ def output_buffer=(value)
31
+ template.instance_variable_set(:@_out_buf, value)
32
+ end
33
+
34
+ end
35
+
36
+ Sinatra::ContentFor2::BaseHandler.register(Sinatra::ContentFor2::ErbHandler)
37
+
@@ -0,0 +1,21 @@
1
+ class Sinatra::ContentFor2::HamlHandler < Sinatra::ContentFor2::BaseHandler
2
+ def is_type?
3
+ template.respond_to?(:is_haml?) && template.is_haml?
4
+ end
5
+
6
+ def block_is_type?(block)
7
+ template.block_is_haml?(block)
8
+ end
9
+
10
+ def capture_from_template(*args, &block)
11
+ eval("_hamlout ||= @haml_buffer", block.binding) # this is for rbx
12
+ template.capture_haml(*args, &block)
13
+ end
14
+
15
+ def engines
16
+ @engines ||= [ :haml ]
17
+ end
18
+ end
19
+
20
+ Sinatra::ContentFor2::BaseHandler.register(Sinatra::ContentFor2::HamlHandler)
21
+
@@ -0,0 +1,48 @@
1
+ class Sinatra::ContentFor2::SlimHandler < Sinatra::ContentFor2::BaseHandler
2
+ class << self
3
+ def setup_slim
4
+ return if @slim_set
5
+ if defined?(Slim)
6
+ Slim::Engine.set_default_options(:buffer => '@_out_buf', :generator => Temple::Generators::StringBuffer)
7
+ @slim_set = true
8
+ end
9
+ end
10
+ end
11
+
12
+ attr_reader :output_buffer
13
+
14
+ def initialize(template)
15
+ super
16
+ self.class.setup_slim
17
+ @output_buffer = template.instance_variable_get(:@_out_buf)
18
+ end
19
+
20
+ def is_type?
21
+ ! self.output_buffer.nil?
22
+ end
23
+
24
+ def capture_from_template(*args, &block)
25
+ self.output_buffer, _buf_was = "", self.output_buffer
26
+ block.call(*args)
27
+ ret = eval("@_out_buf", block.binding)
28
+ self.output_buffer = _buf_was
29
+ ret
30
+ end
31
+
32
+ def block_is_type?(block)
33
+ is_type? || (block && eval('defined? __in_erb_template', block.binding))
34
+ end
35
+
36
+ def engines
37
+ @engines ||= [ :slim ]
38
+ end
39
+
40
+ protected
41
+ def output_buffer=(val)
42
+ template.instance_variable_set(:@_out_buf, val)
43
+ end
44
+ end
45
+
46
+ Sinatra::ContentFor2::BaseHandler.register(Sinatra::ContentFor2::SlimHandler)
47
+
48
+
@@ -0,0 +1,6 @@
1
+ module Sinatra
2
+ module ContentFor2
3
+ VERSION = '0.3.alpha1'.freeze
4
+ end
5
+ end
6
+
@@ -1,9 +1,14 @@
1
1
  #encoding: utf-8
2
2
 
3
+ $LOAD_PATH << File.expand_path('../lib', __FILE__)
4
+
5
+ require 'sinatra/content_for2/version'
6
+
3
7
  Gem::Specification.new do |s|
4
8
  s.name = "sinatra-content-for2"
5
- s.version = "0.2.4"
6
- s.date = "2011-02-04"
9
+ s.version = Gem::Version.new(Sinatra::ContentFor2::VERSION)
10
+
11
+ s.date = Time.now.strftime('%Y-%m-%d')
7
12
 
8
13
  s.description = "Small Sinatra extension to add a content_for helper similar to Rails'"
9
14
  s.summary = "Small Sinatra extension to add a content_for helper similar to Rails'"
@@ -18,20 +23,22 @@ Gem::Specification.new do |s|
18
23
  s.rubygems_version = "1.3.7"
19
24
 
20
25
  s.add_dependency "sinatra"
21
-
22
- if s.respond_to?(:add_development_dependency)
23
- s.add_development_dependency "contest"
24
- s.add_development_dependency "sr-mg"
25
- s.add_development_dependency "redgreen"
26
- end
27
-
28
- s.files = %w[
29
- .gitignore
30
- LICENSE
31
- README.rdoc
32
- sinatra-content-for2.gemspec
33
- lib/sinatra/content_for2.rb
34
- test/content_for_test.rb
35
- ]
26
+ s.add_development_dependency "rake"
27
+ s.add_development_dependency "yard"
28
+ s.add_development_dependency "rspec-core"
29
+ s.add_development_dependency "rspec-expectations"
30
+ s.add_development_dependency "rr"
31
+ s.add_development_dependency "slim"
32
+ s.add_development_dependency "erubis"
33
+ s.add_development_dependency "haml"
34
+ s.add_development_dependency "bundler", ">= 1.0.10"
35
+
36
+
37
+ s.extra_rdoc_files = [
38
+ "README.rdoc"
39
+ ]
40
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
41
+ s.files = `git ls-files`.split("\n")
42
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
36
43
  end
37
44
 
@@ -0,0 +1,43 @@
1
+ require 'sinatra/base'
2
+ require 'erubis'
3
+ require 'haml'
4
+ require 'slim'
5
+
6
+ class SpecTemplates < Sinatra::Base
7
+ set :environment, :test
8
+ set :views, File.join(File.dirname(__FILE__), '..', '..', 'templates')
9
+
10
+ helpers Sinatra::ContentFor2
11
+ end
12
+
13
+ describe Sinatra::ContentFor2 do
14
+
15
+ def templates
16
+ @templates ||= begin
17
+ r = SpecTemplates.new
18
+ # remove Rack magic
19
+ while !r.kind_of?(SpecTemplates) do
20
+ r = r.instance_variable_get(:@app)
21
+ end
22
+ r
23
+ end
24
+ end
25
+
26
+ [ :erb, :haml, :erubis ].each do |engine|
27
+ it "should render #{engine} template" do
28
+ erubis_was = Erubis
29
+ if engine == :erb
30
+ Object.send(:remove_const, :Erubis)
31
+ end
32
+ sr = templates.send(engine, :sub, :layout => false, :eat_errors => false)
33
+ sr.should_not =~ /sub/
34
+ r = templates.send(engine, :main, :layout => false, :eat_errors => false)
35
+ r.should =~ /main/
36
+ r.should =~ /sub/
37
+ if engine == :erb
38
+ Object.const_set(:Erubis, erubis_was)
39
+ end
40
+ end
41
+ end
42
+ end
43
+
@@ -0,0 +1,7 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'sinatra/content_for2'
4
+
5
+ RSpec.configure do |config|
6
+ config.mock_with :rr
7
+ end
@@ -0,0 +1,3 @@
1
+ main
2
+ <% yield_content :test %>
3
+
@@ -0,0 +1,3 @@
1
+ main
2
+ = yield_content :test
3
+
@@ -0,0 +1,3 @@
1
+ <% content_for :test do %>
2
+ sub
3
+ <% end %>
@@ -0,0 +1,3 @@
1
+ - content_for :test do
2
+ sub
3
+
metadata CHANGED
@@ -1,12 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-content-for2
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: -3702664266
5
+ prerelease: 4
5
6
  segments:
6
7
  - 0
7
- - 2
8
- - 4
9
- version: 0.2.4
8
+ - 3
9
+ - alpha
10
+ - 1
11
+ version: 0.3.alpha1
10
12
  platform: ruby
11
13
  authors:
12
14
  - "Nicol\xC3\xA1s Sanguinetti"
@@ -14,7 +16,7 @@ autorequire:
14
16
  bindir: bin
15
17
  cert_chain: []
16
18
 
17
- date: 2011-02-04 00:00:00 +03:00
19
+ date: 2011-06-23 00:00:00 +04:00
18
20
  default_executable:
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
@@ -25,64 +27,168 @@ dependencies:
25
27
  requirements:
26
28
  - - ">="
27
29
  - !ruby/object:Gem::Version
30
+ hash: 3
28
31
  segments:
29
32
  - 0
30
33
  version: "0"
31
34
  type: :runtime
32
35
  version_requirements: *id001
33
36
  - !ruby/object:Gem::Dependency
34
- name: contest
37
+ name: rake
35
38
  prerelease: false
36
39
  requirement: &id002 !ruby/object:Gem::Requirement
37
40
  none: false
38
41
  requirements:
39
42
  - - ">="
40
43
  - !ruby/object:Gem::Version
44
+ hash: 3
41
45
  segments:
42
46
  - 0
43
47
  version: "0"
44
48
  type: :development
45
49
  version_requirements: *id002
46
50
  - !ruby/object:Gem::Dependency
47
- name: sr-mg
51
+ name: yard
48
52
  prerelease: false
49
53
  requirement: &id003 !ruby/object:Gem::Requirement
50
54
  none: false
51
55
  requirements:
52
56
  - - ">="
53
57
  - !ruby/object:Gem::Version
58
+ hash: 3
54
59
  segments:
55
60
  - 0
56
61
  version: "0"
57
62
  type: :development
58
63
  version_requirements: *id003
59
64
  - !ruby/object:Gem::Dependency
60
- name: redgreen
65
+ name: rspec-core
61
66
  prerelease: false
62
67
  requirement: &id004 !ruby/object:Gem::Requirement
63
68
  none: false
64
69
  requirements:
65
70
  - - ">="
66
71
  - !ruby/object:Gem::Version
72
+ hash: 3
67
73
  segments:
68
74
  - 0
69
75
  version: "0"
70
76
  type: :development
71
77
  version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec-expectations
80
+ prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ type: :development
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ name: rr
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id006
106
+ - !ruby/object:Gem::Dependency
107
+ name: slim
108
+ prerelease: false
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
117
+ version: "0"
118
+ type: :development
119
+ version_requirements: *id007
120
+ - !ruby/object:Gem::Dependency
121
+ name: erubis
122
+ prerelease: false
123
+ requirement: &id008 !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ type: :development
133
+ version_requirements: *id008
134
+ - !ruby/object:Gem::Dependency
135
+ name: haml
136
+ prerelease: false
137
+ requirement: &id009 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ hash: 3
143
+ segments:
144
+ - 0
145
+ version: "0"
146
+ type: :development
147
+ version_requirements: *id009
148
+ - !ruby/object:Gem::Dependency
149
+ name: bundler
150
+ prerelease: false
151
+ requirement: &id010 !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ hash: 3
157
+ segments:
158
+ - 1
159
+ - 0
160
+ - 10
161
+ version: 1.0.10
162
+ type: :development
163
+ version_requirements: *id010
72
164
  description: Small Sinatra extension to add a content_for helper similar to Rails'
73
165
  email: contacto@nicolassanguinetti.info
74
166
  executables: []
75
167
 
76
168
  extensions: []
77
169
 
78
- extra_rdoc_files: []
79
-
170
+ extra_rdoc_files:
171
+ - README.rdoc
80
172
  files:
81
173
  - .gitignore
174
+ - .rspec
175
+ - Gemfile
82
176
  - LICENSE
83
177
  - README.rdoc
84
- - sinatra-content-for2.gemspec
178
+ - Rakefile
85
179
  - lib/sinatra/content_for2.rb
180
+ - lib/sinatra/content_for2/base_handler.rb
181
+ - lib/sinatra/content_for2/erb_handler.rb
182
+ - lib/sinatra/content_for2/haml_handler.rb
183
+ - lib/sinatra/content_for2/slim_handler.rb
184
+ - lib/sinatra/content_for2/version.rb
185
+ - sinatra-content-for2.gemspec
186
+ - spec/lib/sinatra/content_for2_spec.rb
187
+ - spec/spec_helper.rb
188
+ - spec/templates/main.erb
189
+ - spec/templates/main.haml
190
+ - spec/templates/sub.erb
191
+ - spec/templates/sub.haml
86
192
  - test/content_for_test.rb
87
193
  has_rdoc: true
88
194
  homepage: https://github.com/Undev/sinatra-content-for2
@@ -98,23 +204,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
204
  requirements:
99
205
  - - ">="
100
206
  - !ruby/object:Gem::Version
207
+ hash: 3
101
208
  segments:
102
209
  - 0
103
210
  version: "0"
104
211
  required_rubygems_version: !ruby/object:Gem::Requirement
105
212
  none: false
106
213
  requirements:
107
- - - ">="
214
+ - - ">"
108
215
  - !ruby/object:Gem::Version
216
+ hash: 25
109
217
  segments:
110
- - 0
111
- version: "0"
218
+ - 1
219
+ - 3
220
+ - 1
221
+ version: 1.3.1
112
222
  requirements: []
113
223
 
114
224
  rubyforge_project: sinatra-ditties
115
- rubygems_version: 1.3.7
225
+ rubygems_version: 1.5.2
116
226
  signing_key:
117
227
  specification_version: 3
118
228
  summary: Small Sinatra extension to add a content_for helper similar to Rails'
119
- test_files: []
120
-
229
+ test_files:
230
+ - spec/lib/sinatra/content_for2_spec.rb
231
+ - spec/spec_helper.rb
232
+ - spec/templates/main.erb
233
+ - spec/templates/main.haml
234
+ - spec/templates/sub.erb
235
+ - spec/templates/sub.haml
236
+ - test/content_for_test.rb