with_template 0.0.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/.document +5 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +109 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +14 -0
- data/Rakefile +44 -0
- data/VERSION +1 -0
- data/lib/with_template/base.rb +124 -0
- data/lib/with_template/view_additions.rb +9 -0
- data/lib/with_template.rb +8 -0
- data/test/base_test.rb +118 -0
- data/test/helper.rb +20 -0
- data/with_template.gemspec +72 -0
- metadata +179 -0
data/.document
ADDED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
use_template
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
actionmailer (4.0.0)
|
5
|
+
actionpack (= 4.0.0)
|
6
|
+
mail (~> 2.5.3)
|
7
|
+
actionpack (4.0.0)
|
8
|
+
activesupport (= 4.0.0)
|
9
|
+
builder (~> 3.1.0)
|
10
|
+
erubis (~> 2.7.0)
|
11
|
+
rack (~> 1.5.2)
|
12
|
+
rack-test (~> 0.6.2)
|
13
|
+
activemodel (4.0.0)
|
14
|
+
activesupport (= 4.0.0)
|
15
|
+
builder (~> 3.1.0)
|
16
|
+
activerecord (4.0.0)
|
17
|
+
activemodel (= 4.0.0)
|
18
|
+
activerecord-deprecated_finders (~> 1.0.2)
|
19
|
+
activesupport (= 4.0.0)
|
20
|
+
arel (~> 4.0.0)
|
21
|
+
activerecord-deprecated_finders (1.0.3)
|
22
|
+
activesupport (4.0.0)
|
23
|
+
i18n (~> 0.6, >= 0.6.4)
|
24
|
+
minitest (~> 4.2)
|
25
|
+
multi_json (~> 1.3)
|
26
|
+
thread_safe (~> 0.1)
|
27
|
+
tzinfo (~> 0.3.37)
|
28
|
+
arel (4.0.0)
|
29
|
+
atomic (1.1.13)
|
30
|
+
blocks (2.4.0)
|
31
|
+
call_with_params
|
32
|
+
rails (>= 3.0.0)
|
33
|
+
builder (3.1.4)
|
34
|
+
call_with_params (0.0.1)
|
35
|
+
activesupport (>= 3.0.0)
|
36
|
+
erubis (2.7.0)
|
37
|
+
git (1.2.6)
|
38
|
+
hike (1.2.3)
|
39
|
+
i18n (0.6.5)
|
40
|
+
jeweler (1.6.4)
|
41
|
+
bundler (~> 1.0)
|
42
|
+
git (>= 1.2.5)
|
43
|
+
rake
|
44
|
+
mail (2.5.4)
|
45
|
+
mime-types (~> 1.16)
|
46
|
+
treetop (~> 1.4.8)
|
47
|
+
metaclass (0.0.1)
|
48
|
+
mime-types (1.25)
|
49
|
+
minitest (4.7.5)
|
50
|
+
mocha (0.14.0)
|
51
|
+
metaclass (~> 0.0.1)
|
52
|
+
multi_json (1.7.9)
|
53
|
+
polyglot (0.3.3)
|
54
|
+
rack (1.5.2)
|
55
|
+
rack-test (0.6.2)
|
56
|
+
rack (>= 1.0)
|
57
|
+
rails (4.0.0)
|
58
|
+
actionmailer (= 4.0.0)
|
59
|
+
actionpack (= 4.0.0)
|
60
|
+
activerecord (= 4.0.0)
|
61
|
+
activesupport (= 4.0.0)
|
62
|
+
bundler (>= 1.3.0, < 2.0)
|
63
|
+
railties (= 4.0.0)
|
64
|
+
sprockets-rails (~> 2.0.0)
|
65
|
+
railties (4.0.0)
|
66
|
+
actionpack (= 4.0.0)
|
67
|
+
activesupport (= 4.0.0)
|
68
|
+
rake (>= 0.8.7)
|
69
|
+
thor (>= 0.18.1, < 2.0)
|
70
|
+
rake (10.1.0)
|
71
|
+
shoulda (3.5.0)
|
72
|
+
shoulda-context (~> 1.0, >= 1.0.1)
|
73
|
+
shoulda-matchers (>= 1.4.1, < 3.0)
|
74
|
+
shoulda-context (1.1.5)
|
75
|
+
shoulda-matchers (2.3.0)
|
76
|
+
activesupport (>= 3.0.0)
|
77
|
+
simplecov (0.7.1)
|
78
|
+
multi_json (~> 1.0)
|
79
|
+
simplecov-html (~> 0.7.1)
|
80
|
+
simplecov-html (0.7.1)
|
81
|
+
sprockets (2.10.0)
|
82
|
+
hike (~> 1.2)
|
83
|
+
multi_json (~> 1.0)
|
84
|
+
rack (~> 1.0)
|
85
|
+
tilt (~> 1.1, != 1.3.0)
|
86
|
+
sprockets-rails (2.0.0)
|
87
|
+
actionpack (>= 3.0)
|
88
|
+
activesupport (>= 3.0)
|
89
|
+
sprockets (~> 2.8)
|
90
|
+
thor (0.18.1)
|
91
|
+
thread_safe (0.1.2)
|
92
|
+
atomic
|
93
|
+
tilt (1.4.1)
|
94
|
+
treetop (1.4.15)
|
95
|
+
polyglot
|
96
|
+
polyglot (>= 0.3.1)
|
97
|
+
tzinfo (0.3.37)
|
98
|
+
|
99
|
+
PLATFORMS
|
100
|
+
ruby
|
101
|
+
|
102
|
+
DEPENDENCIES
|
103
|
+
blocks (~> 2.4.0)
|
104
|
+
bundler
|
105
|
+
jeweler
|
106
|
+
mocha
|
107
|
+
rails (>= 3.0.0)
|
108
|
+
shoulda
|
109
|
+
simplecov
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Andrew Hunter
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
= with_template
|
2
|
+
|
3
|
+
Render a template (partial) and easily override any of the components of the template.
|
4
|
+
|
5
|
+
== Installation
|
6
|
+
|
7
|
+
To install, add the following to the Gemfile:
|
8
|
+
gem install 'with_template'
|
9
|
+
|
10
|
+
== Copyright
|
11
|
+
|
12
|
+
Copyright (c) 2013 Andrew Hunter. See LICENSE.txt for
|
13
|
+
further details.
|
14
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "with_template"
|
18
|
+
gem.homepage = "http://github.com/hunterae/with_template"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{Render a template (partial) and easily override any of the components of the template}
|
21
|
+
gem.description = %Q{Render a template (partial) and easily override any of the components of the template}
|
22
|
+
gem.email = "hunterae@gmail.com"
|
23
|
+
gem.authors = ["Andrew Hunter"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/*_test.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
task :default => :test
|
35
|
+
|
36
|
+
require 'rdoc/task'
|
37
|
+
Rake::RDocTask.new do |rdoc|
|
38
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
39
|
+
|
40
|
+
rdoc.rdoc_dir = 'rdoc'
|
41
|
+
rdoc.title = "with_template #{version}"
|
42
|
+
rdoc.rdoc_files.include('README*')
|
43
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
44
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
@@ -0,0 +1,124 @@
|
|
1
|
+
module WithTemplate
|
2
|
+
class Base < Blocks::Base
|
3
|
+
# Array of Blocks::Container objects, storing the order of blocks as they were queued
|
4
|
+
attr_accessor :queued_blocks
|
5
|
+
|
6
|
+
# A Hash of queued_blocks arrays; a new array is started when method_missing is invoked
|
7
|
+
attr_accessor :block_groups
|
8
|
+
|
9
|
+
# Render a partial, treating it as a template, and any code in the block argument will impact how the template renders
|
10
|
+
# <%= WithTemplate::Base.new(self).render_template("shared/wizard") do |blocks| %>
|
11
|
+
# <% blocks.queue :step1 %>
|
12
|
+
# <% blocks.queue :step2 do %>
|
13
|
+
# My overridden Step 2 |
|
14
|
+
# <% end %>
|
15
|
+
# <% blocks.queue :step3 %>
|
16
|
+
# <% blocks.queue do %>
|
17
|
+
# | Anonymous Step 4
|
18
|
+
# <% end %>
|
19
|
+
# <% end %>
|
20
|
+
#
|
21
|
+
# <!-- In /app/views/shared/wizard -->
|
22
|
+
# <% blocks.define :step1 do %>
|
23
|
+
# Step 1 |
|
24
|
+
# <% end %>
|
25
|
+
#
|
26
|
+
# <% blocks.define :step2 do %>
|
27
|
+
# Step 2 |
|
28
|
+
# <% end %>
|
29
|
+
#
|
30
|
+
# <% blocks.define :step3 do %>
|
31
|
+
# Step 3
|
32
|
+
# <% end %>
|
33
|
+
#
|
34
|
+
# <% blocks.queued_blocks.each do |block| %>
|
35
|
+
# <%= blocks.render block %>
|
36
|
+
# <% end %>
|
37
|
+
#
|
38
|
+
# <!-- Will render: Step 1 | My overridden Step 2 | Step 3 | Anonymous Step 4-->
|
39
|
+
# Options:
|
40
|
+
# [+partial+]
|
41
|
+
# The partial to render as a template
|
42
|
+
# [+block+]
|
43
|
+
# An optional block with code that affects how the template renders
|
44
|
+
def render_template(partial, &block)
|
45
|
+
render_options = global_options.clone
|
46
|
+
render_options[self.variable] = self
|
47
|
+
render_options[:captured_block] = view.capture(self, &block) if block_given?
|
48
|
+
|
49
|
+
view.render partial, render_options
|
50
|
+
end
|
51
|
+
|
52
|
+
# Queue a block for later rendering, such as within a template.
|
53
|
+
# <%= UseTemplate::Base.new(self).render_template("shared/wizard") do |template| %>
|
54
|
+
# <% template.queue :step1 %>
|
55
|
+
# <% template.queue :step2 do %>
|
56
|
+
# My overridden Step 2 |
|
57
|
+
# <% end %>
|
58
|
+
# <% template.queue :step3 %>
|
59
|
+
# <% template.queue do %>
|
60
|
+
# | Anonymous Step 4
|
61
|
+
# <% end %>
|
62
|
+
# <% end %>
|
63
|
+
#
|
64
|
+
# <!-- In /app/views/shared/wizard -->
|
65
|
+
# <% template.define :step1 do %>
|
66
|
+
# Step 1 |
|
67
|
+
# <% end %>
|
68
|
+
#
|
69
|
+
# <% template.define :step2 do %>
|
70
|
+
# Step 2 |
|
71
|
+
# <% end %>
|
72
|
+
#
|
73
|
+
# <% template.define :step3 do %>
|
74
|
+
# Step 3
|
75
|
+
# <% end %>
|
76
|
+
#
|
77
|
+
# <% template.queued_blocks.each do |block| %>
|
78
|
+
# <%= template.render block %>
|
79
|
+
# <% end %>
|
80
|
+
#
|
81
|
+
# <!-- Will render: Step 1 | My overridden Step 2 | Step 3 | Anonymous Step 4-->
|
82
|
+
# Options:
|
83
|
+
# [+*args+]
|
84
|
+
# The options to pass in when this block is rendered. These will override any options provided to the actual block
|
85
|
+
# definition. Any or all of these options may be overriden by whoever calls "blocks.render" on this block.
|
86
|
+
# Usually the first of these args will be the name of the block being queued (either a string or a symbol)
|
87
|
+
# [+block+]
|
88
|
+
# The optional block definition to render when the queued block is rendered
|
89
|
+
def queue(*args, &block)
|
90
|
+
self.queued_blocks << self.define_block_container(*args, &block)
|
91
|
+
nil
|
92
|
+
end
|
93
|
+
|
94
|
+
protected
|
95
|
+
|
96
|
+
def initialize(view, options={})
|
97
|
+
self.queued_blocks = []
|
98
|
+
self.block_groups = {}
|
99
|
+
super(view, options.reverse_merge(:variable => :template))
|
100
|
+
end
|
101
|
+
|
102
|
+
# If a method is missing, we'll assume the user is starting a new block group by that missing method name
|
103
|
+
def method_missing(m, *args, &block)
|
104
|
+
options = args.extract_options!
|
105
|
+
|
106
|
+
# If the specified block group has already been defined, it is simply returned here for iteration.
|
107
|
+
# It will consist of all the blocks used in this block group that have yet to be rendered,
|
108
|
+
# as the call for their use occurred before the template was rendered (where their definitions likely occurred)
|
109
|
+
return self.block_groups[m] unless self.block_groups[m].nil?
|
110
|
+
|
111
|
+
# Allows for nested block groups, store the current block positions array and start a new one
|
112
|
+
original_queued_blocks = self.queued_blocks
|
113
|
+
self.queued_blocks = []
|
114
|
+
self.block_groups[m] = self.queued_blocks
|
115
|
+
|
116
|
+
# Capture the contents of the block group (this will only capture block definitions and block renders; it will ignore anything else)
|
117
|
+
view.capture(global_options.merge(options), &block) if block_given?
|
118
|
+
|
119
|
+
# restore the original block positions array
|
120
|
+
self.queued_blocks = original_queued_blocks
|
121
|
+
nil
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
data/test/base_test.rb
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class WithTemplate::BaseTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@view = ActionView::Base.new
|
6
|
+
@builder = WithTemplate::Base.new(@view)
|
7
|
+
end
|
8
|
+
|
9
|
+
context "render_template" do
|
10
|
+
should "attempt to render a partial specified as the :template parameter" do
|
11
|
+
@view.expects(:render).with{ |template, options| template == "my_template"}
|
12
|
+
@builder.render_template("my_template")
|
13
|
+
end
|
14
|
+
|
15
|
+
should "set all of the global options as local variables to the partial it renders" do
|
16
|
+
@view.expects(:render).with { |template, options| template == 'some_template' && options[:template] == @builder }
|
17
|
+
@builder.render_template("some_template")
|
18
|
+
end
|
19
|
+
|
20
|
+
should "capture the data of a block if a block has been specified" do
|
21
|
+
block = Proc.new { |options| "my captured block" }
|
22
|
+
@view.expects(:render).with { |tempate, options| options[:captured_block] == "my captured block" }
|
23
|
+
@builder.render_template("template", &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
should "add a variable to the partial called 'template' as a pointer to the WithTemplate::Base instance" do
|
27
|
+
@view.expects(:render).with { |template, options| options[:template] == @builder }
|
28
|
+
@builder.render_template("some_template")
|
29
|
+
end
|
30
|
+
|
31
|
+
should "add allow the variable in the partial to be overridden" do
|
32
|
+
builder = WithTemplate::Base.new(@view, :variable => :new_template_variable)
|
33
|
+
@view.expects(:render).with { |template, options| options[:new_template_variable] == builder }
|
34
|
+
builder.render_template("some_template")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "queue" do
|
39
|
+
should "store all queued blocks in the queued_blocks array" do
|
40
|
+
assert @builder.queued_blocks.empty?
|
41
|
+
@builder.queue :test_block
|
42
|
+
assert_equal 1, @builder.queued_blocks.length
|
43
|
+
assert_equal :test_block, @builder.queued_blocks.map(&:name).first
|
44
|
+
end
|
45
|
+
|
46
|
+
should "convert a string block name to a symbol" do
|
47
|
+
@builder.queue "test_block"
|
48
|
+
assert_equal :test_block, @builder.queued_blocks.map(&:name).first
|
49
|
+
end
|
50
|
+
|
51
|
+
should "queue blocks as Blocks::Container objects" do
|
52
|
+
@builder.queue :test_block, :a => 1, :b => 2, :c => 3
|
53
|
+
container = @builder.queued_blocks.first
|
54
|
+
assert container.is_a?(Blocks::Container)
|
55
|
+
assert_equal :test_block, container.name
|
56
|
+
assert_equal ({:a => 1, :b => 2, :c => 3}), container.options
|
57
|
+
end
|
58
|
+
|
59
|
+
should "not require a name for the block being queued" do
|
60
|
+
@builder.queue
|
61
|
+
@builder.queue
|
62
|
+
assert_equal 2, @builder.queued_blocks.length
|
63
|
+
assert_equal :block_1, @builder.queued_blocks.map(&:name).first
|
64
|
+
assert_equal :block_2, @builder.queued_blocks.map(&:name).second
|
65
|
+
end
|
66
|
+
|
67
|
+
should "anonymously define the name of a block if not specified" do
|
68
|
+
@builder.queue
|
69
|
+
@builder.queue :my_block
|
70
|
+
@builder.queue
|
71
|
+
assert_equal :block_1, @builder.queued_blocks.map(&:name).first
|
72
|
+
assert_equal :my_block, @builder.queued_blocks.map(&:name).second
|
73
|
+
assert_equal :block_2, @builder.queued_blocks.map(&:name).third
|
74
|
+
end
|
75
|
+
|
76
|
+
should "store queued blocks in the order in which they are queued" do
|
77
|
+
@builder.queue :block1
|
78
|
+
@builder.queue :block3
|
79
|
+
@builder.queue :block2
|
80
|
+
assert_equal :block1, @builder.queued_blocks.map(&:name).first
|
81
|
+
assert_equal :block3, @builder.queued_blocks.map(&:name).second
|
82
|
+
assert_equal :block2, @builder.queued_blocks.map(&:name).third
|
83
|
+
end
|
84
|
+
|
85
|
+
should "allow a definition to be provided for a queued block" do
|
86
|
+
block = Proc.new do |options| end
|
87
|
+
@builder.queue :test_block, &block
|
88
|
+
container = @builder.queued_blocks.first
|
89
|
+
assert_equal block, container.block
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
context "method_missing" do
|
94
|
+
should "start a new block group if a method is missing" do
|
95
|
+
@builder.some_method
|
96
|
+
queued_blocks = @builder.block_groups[:some_method]
|
97
|
+
assert_equal [], queued_blocks
|
98
|
+
end
|
99
|
+
|
100
|
+
should "add items to a queue when a new block group is started" do
|
101
|
+
@builder.some_method do
|
102
|
+
@builder.queue :myblock1
|
103
|
+
@builder.queue :myblock2
|
104
|
+
end
|
105
|
+
@builder.some_method2 do
|
106
|
+
@builder.queue :myblock3
|
107
|
+
end
|
108
|
+
queued_blocks = @builder.block_groups[:some_method]
|
109
|
+
assert_equal 2, queued_blocks.length
|
110
|
+
assert_equal :myblock1, queued_blocks.first.name
|
111
|
+
assert_equal :myblock2, queued_blocks.second.name
|
112
|
+
queued_blocks = @builder.block_groups[:some_method2]
|
113
|
+
assert_equal 1, queued_blocks.length
|
114
|
+
assert_equal :myblock3, queued_blocks.first.name
|
115
|
+
assert_equal [], @builder.queued_blocks
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
|
12
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
+
require 'shoulda'
|
15
|
+
require 'mocha'
|
16
|
+
require 'active_support/core_ext'
|
17
|
+
require 'blocks'
|
18
|
+
require 'with_template'
|
19
|
+
|
20
|
+
ActiveSupport::Deprecation.silenced = true
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "with_template"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Andrew Hunter"]
|
12
|
+
s.date = "2013-09-05"
|
13
|
+
s.description = "Render a template (partial) and easily override any of the components of the template"
|
14
|
+
s.email = "hunterae@gmail.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".ruby-gemset",
|
22
|
+
".ruby-version",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE.txt",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"lib/with_template.rb",
|
30
|
+
"lib/with_template/base.rb",
|
31
|
+
"lib/with_template/view_additions.rb",
|
32
|
+
"test/base_test.rb",
|
33
|
+
"test/helper.rb",
|
34
|
+
"with_template.gemspec"
|
35
|
+
]
|
36
|
+
s.homepage = "http://github.com/hunterae/with_template"
|
37
|
+
s.licenses = ["MIT"]
|
38
|
+
s.require_paths = ["lib"]
|
39
|
+
s.rubygems_version = "1.8.25"
|
40
|
+
s.summary = "Render a template (partial) and easily override any of the components of the template"
|
41
|
+
|
42
|
+
if s.respond_to? :specification_version then
|
43
|
+
s.specification_version = 3
|
44
|
+
|
45
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
46
|
+
s.add_runtime_dependency(%q<blocks>, ["~> 2.4.0"])
|
47
|
+
s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
|
48
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
51
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
52
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<blocks>, ["~> 2.4.0"])
|
55
|
+
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
56
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
57
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
58
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
59
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
60
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
61
|
+
end
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<blocks>, ["~> 2.4.0"])
|
64
|
+
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
65
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
66
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
68
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
69
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: with_template
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andrew Hunter
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-09-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: blocks
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.4.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: 2.4.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.0.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: 3.0.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: bundler
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
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: jeweler
|
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: simplecov
|
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'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: shoulda
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: mocha
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Render a template (partial) and easily override any of the components
|
127
|
+
of the template
|
128
|
+
email: hunterae@gmail.com
|
129
|
+
executables: []
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files:
|
132
|
+
- LICENSE.txt
|
133
|
+
- README.rdoc
|
134
|
+
files:
|
135
|
+
- .document
|
136
|
+
- .ruby-gemset
|
137
|
+
- .ruby-version
|
138
|
+
- Gemfile
|
139
|
+
- Gemfile.lock
|
140
|
+
- LICENSE.txt
|
141
|
+
- README.rdoc
|
142
|
+
- Rakefile
|
143
|
+
- VERSION
|
144
|
+
- lib/with_template.rb
|
145
|
+
- lib/with_template/base.rb
|
146
|
+
- lib/with_template/view_additions.rb
|
147
|
+
- test/base_test.rb
|
148
|
+
- test/helper.rb
|
149
|
+
- with_template.gemspec
|
150
|
+
homepage: http://github.com/hunterae/with_template
|
151
|
+
licenses:
|
152
|
+
- MIT
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
159
|
+
requirements:
|
160
|
+
- - ! '>='
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
163
|
+
segments:
|
164
|
+
- 0
|
165
|
+
hash: 1131662760189326774
|
166
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
requirements: []
|
173
|
+
rubyforge_project:
|
174
|
+
rubygems_version: 1.8.25
|
175
|
+
signing_key:
|
176
|
+
specification_version: 3
|
177
|
+
summary: Render a template (partial) and easily override any of the components of
|
178
|
+
the template
|
179
|
+
test_files: []
|