Zomg removing trailing whitespace.
This commit is contained in:
parent
36a6e5d1f4
commit
56ce55addb
|
@ -1,6 +1,6 @@
|
|||
body {
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
height: 101%;
|
||||
overflow-x: hidden;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
body {
|
||||
body {
|
||||
padding: 0 20px;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
body.frames { padding: 0 5px; }
|
||||
|
@ -8,7 +8,7 @@ h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dot
|
|||
h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
|
||||
h1.title { margin-bottom: 10px; }
|
||||
h1.alphaindex { margin-top: 0; font-size: 22px; }
|
||||
h2 {
|
||||
h2 {
|
||||
padding: 0;
|
||||
padding-bottom: 3px;
|
||||
border-bottom: 1px #aaa solid;
|
||||
|
@ -34,9 +34,9 @@ h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right;
|
|||
#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
|
||||
#filecontents dd > p, .docstring dd > p { margin: 0px; }
|
||||
|
||||
.note {
|
||||
.note {
|
||||
color: #222;
|
||||
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
|
||||
display: block;
|
||||
}
|
||||
|
@ -47,9 +47,9 @@ h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right;
|
|||
.note.title { text-transform: lowercase; padding: 1px 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
|
||||
.summary_signature + .note.title { margin-left: 7px; }
|
||||
h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
|
||||
.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
||||
.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
|
||||
.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
||||
.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
||||
.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
|
||||
.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
||||
.note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
|
||||
.discussion .note { margin-top: 6px; }
|
||||
.discussion .note:first-child { margin-top: 0; }
|
||||
|
@ -123,9 +123,9 @@ dl.constants .discussion *:last-child { margin-bottom: 0; }
|
|||
|
||||
.method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
|
||||
.method_details.first { border: 0; }
|
||||
p.signature {
|
||||
font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
|
||||
padding: 6px 10px; margin-top: 18px;
|
||||
p.signature {
|
||||
font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
|
||||
padding: 6px 10px; margin-top: 18px;
|
||||
background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
}
|
||||
p.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
|
||||
|
@ -145,7 +145,7 @@ p.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace;
|
|||
.tags .examples h4 { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
|
||||
|
||||
.tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
|
||||
.tags .overload .overload_item .signature {
|
||||
.tags .overload .overload_item .signature {
|
||||
padding: 2px 8px;
|
||||
background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
}
|
||||
|
@ -169,19 +169,19 @@ ul.summary {
|
|||
font-size: 1em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
ul.summary a:link, ul.summary a:visited {
|
||||
ul.summary a:link, ul.summary a:visited {
|
||||
text-decoration: none; font-size: 1.1em;
|
||||
}
|
||||
ul.summary li { margin-bottom: 5px; }
|
||||
.summary .summary_signature {
|
||||
.summary .summary_signature {
|
||||
padding: 1px 10px;
|
||||
background: #eaeaff; border: 1px solid #dfdfe5;
|
||||
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
||||
}
|
||||
.summary_signature:hover { background: #eeeeff; cursor: pointer; }
|
||||
ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
|
||||
ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
|
||||
#content .summary_signature:hover a:link,
|
||||
#content .summary_signature:hover a:link,
|
||||
#content .summary_signature:hover a:visited {
|
||||
background: transparent;
|
||||
color: #48f;
|
||||
|
@ -204,18 +204,18 @@ ul.fullTree li:last-child { padding-bottom: 0; }
|
|||
.showAll .inheritName { display: none; }
|
||||
|
||||
#search { position: absolute; right: 14px; top: 0px; }
|
||||
#search a:link, #search a:visited {
|
||||
#search a:link, #search a:visited {
|
||||
display: block; float: left; margin-right: 4px;
|
||||
padding: 8px 10px; text-decoration: none; color: #05a;
|
||||
border: 1px solid #d8d8e5;
|
||||
-moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
|
||||
-moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
|
||||
-webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
|
||||
background: #eaf0ff;
|
||||
-webkit-box-shadow: -1px 1px 3px #ddd;
|
||||
}
|
||||
#search a:hover { background: #f5faff; color: #06b; }
|
||||
#search a.active {
|
||||
background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
|
||||
#search a.active {
|
||||
background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
|
||||
-moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
|
||||
-webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
|
||||
}
|
||||
|
@ -249,8 +249,8 @@ li.r2 { background: #fafafa; }
|
|||
z-index: 9999;
|
||||
background: #fff;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 36px;
|
||||
position: absolute;
|
||||
top: 36px;
|
||||
right: 18px;
|
||||
width: 500px;
|
||||
height: 80%;
|
||||
|
@ -266,7 +266,7 @@ li.r2 { background: #fafafa; }
|
|||
#content ul.summary li.deprecated .summary_signature a:link,
|
||||
#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
|
||||
|
||||
#toc {
|
||||
#toc {
|
||||
padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
|
||||
max-width: 300px;
|
||||
-webkit-box-shadow: -2px 2px 6px #bbb;
|
||||
|
@ -291,7 +291,7 @@ li.r2 { background: #fafafa; }
|
|||
#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
|
||||
#filecontents pre.code, .docstring pre.code { display: block; }
|
||||
.source_code .lines { padding-right: 12px; color: #555; text-align: right; }
|
||||
#filecontents pre.code, .docstring pre.code,
|
||||
#filecontents pre.code, .docstring pre.code,
|
||||
.tags .example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
|
||||
pre.code { color: #000; }
|
||||
pre.code .info.file { color: #555; }
|
||||
|
@ -300,21 +300,21 @@ pre.code .tstring_content,
|
|||
pre.code .heredoc_beg, pre.code .heredoc_end,
|
||||
pre.code .qwords_beg, pre.code .qwords_end,
|
||||
pre.code .tstring, pre.code .dstring { color: #036A07; }
|
||||
pre.code .fid, pre.code .id.new, pre.code .id.to_s,
|
||||
pre.code .id.to_sym, pre.code .id.to_f,
|
||||
pre.code .fid, pre.code .id.new, pre.code .id.to_s,
|
||||
pre.code .id.to_sym, pre.code .id.to_f,
|
||||
pre.code .dot + pre.code .id,
|
||||
pre.code .id.to_i pre.code .id.each { color: #0085FF; }
|
||||
pre.code .comment { color: #0066FF; }
|
||||
pre.code .const, pre.code .constant { color: #585CF6; }
|
||||
pre.code .symbol { color: #C5060B; }
|
||||
pre.code .kw,
|
||||
pre.code .kw,
|
||||
pre.code .label,
|
||||
pre.code .id.require,
|
||||
pre.code .id.require,
|
||||
pre.code .id.extend,
|
||||
pre.code .id.include { color: #0000FF; }
|
||||
pre.code .ivar { color: #318495; }
|
||||
pre.code .gvar,
|
||||
pre.code .id.backref,
|
||||
pre.code .gvar,
|
||||
pre.code .id.backref,
|
||||
pre.code .id.nth_ref { color: #6D79DE; }
|
||||
pre.code .regexp, .dregexp { color: #036A07; }
|
||||
pre.code a { border-bottom: 1px dotted #bbf; }
|
||||
|
|
|
@ -44,7 +44,7 @@ function createFullTreeLinks() {
|
|||
|
||||
function fixBoxInfoHeights() {
|
||||
$('dl.box dd.r1, dl.box dd.r2').each(function() {
|
||||
$(this).prev().height($(this).height());
|
||||
$(this).prev().height($(this).height());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ function summaryToggle() {
|
|||
if (next.hasClass('compact')) {
|
||||
next.toggle();
|
||||
next.next().toggle();
|
||||
}
|
||||
}
|
||||
else if (next.hasClass('summary')) {
|
||||
var list = $('<ul class="summary compact" />');
|
||||
list.html(next.html());
|
||||
|
@ -159,13 +159,13 @@ function generateTOC() {
|
|||
if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
|
||||
this.id = proposedId;
|
||||
}
|
||||
if (thisTag > lastTag) {
|
||||
for (i = 0; i < thisTag - lastTag; i++) {
|
||||
var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
|
||||
}
|
||||
if (thisTag > lastTag) {
|
||||
for (i = 0; i < thisTag - lastTag; i++) {
|
||||
var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
|
||||
}
|
||||
}
|
||||
if (thisTag < lastTag) {
|
||||
for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
|
||||
if (thisTag < lastTag) {
|
||||
for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
|
||||
}
|
||||
toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
|
||||
lastTag = thisTag;
|
||||
|
@ -174,7 +174,7 @@ function generateTOC() {
|
|||
html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
|
||||
$('#content').prepend(html);
|
||||
$('#toc').append(_toc);
|
||||
$('#toc .hide_toc').toggle(function() {
|
||||
$('#toc .hide_toc').toggle(function() {
|
||||
$('#toc .top').slideUp('fast');
|
||||
$('#toc').toggleClass('hidden');
|
||||
$('#toc .title small').toggle();
|
||||
|
@ -183,7 +183,7 @@ function generateTOC() {
|
|||
$('#toc').toggleClass('hidden');
|
||||
$('#toc .title small').toggle();
|
||||
});
|
||||
$('#toc .float_toc').toggle(function() {
|
||||
$('#toc .float_toc').toggle(function() {
|
||||
$(this).text('float');
|
||||
$('#toc').toggleClass('nofloat');
|
||||
}, function() {
|
||||
|
|
|
@ -10,7 +10,7 @@ function fullListSearch() {
|
|||
var link = $(this).find('.object_link a');
|
||||
searchCache.push({name:link.text(), node:$(this), link:link});
|
||||
});
|
||||
|
||||
|
||||
$('#search input').keyup(function() {
|
||||
searchString = this.value.toLowerCase();
|
||||
if (searchString === "") {
|
||||
|
@ -18,9 +18,9 @@ function fullListSearch() {
|
|||
inSearch = null;
|
||||
$('#full_list, #content').removeClass('insearch');
|
||||
$('#full_list li').removeClass('found').each(function() {
|
||||
|
||||
|
||||
var link = $(this).find('.object_link a');
|
||||
link.text(link.text());
|
||||
link.text(link.text());
|
||||
});
|
||||
if (clicked) {
|
||||
clicked.parents('ul').each(function() {
|
||||
|
@ -38,7 +38,7 @@ function fullListSearch() {
|
|||
searchItem();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#search input').focus();
|
||||
$('#full_list').after("<div id='noresults'></div>");
|
||||
}
|
||||
|
@ -54,8 +54,8 @@ function searchItem() {
|
|||
item.node.css('padding-left', '10px').addClass('found');
|
||||
item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
|
||||
lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
|
||||
item.link.html(item.name.replace(new RegExp("(" +
|
||||
searchString.replace(/([\/.*+?|()\[\]{}\\])/g, "\\$1") + ")", "ig"),
|
||||
item.link.html(item.name.replace(new RegExp("(" +
|
||||
searchString.replace(/([\/.*+?|()\[\]{}\\])/g, "\\$1") + ")", "ig"),
|
||||
'<strong>$1</strong>'));
|
||||
}
|
||||
|
||||
|
@ -110,10 +110,10 @@ function linkList() {
|
|||
|
||||
function collapse() {
|
||||
if (!$('#full_list').hasClass('class')) return;
|
||||
$('#full_list.class a.toggle').click(function() {
|
||||
$('#full_list.class a.toggle').click(function() {
|
||||
$(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
|
||||
highlight();
|
||||
return false;
|
||||
return false;
|
||||
});
|
||||
$('#full_list.class ul').each(function() {
|
||||
$(this).addClass('collapsed').prev().addClass('collapsed');
|
||||
|
|
|
@ -21,7 +21,7 @@ module Draper
|
|||
def respond_to?(method)
|
||||
super || @wrapped_collection.respond_to?(method)
|
||||
end
|
||||
|
||||
|
||||
def kind_of?(klass)
|
||||
super || @wrapped_collection.kind_of?(klass)
|
||||
end
|
||||
|
|
|
@ -7,7 +7,7 @@ module Draper
|
|||
generates: "app/decorators/article_decorator"
|
||||
"spec/decorators/article_decorator_spec"
|
||||
DESC
|
||||
|
||||
|
||||
source_root File.expand_path('../templates', __FILE__)
|
||||
|
||||
DECORATORS_ROOT = 'app/decorators/'
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
module Draper
|
||||
class InstallGenerator < Rails::Generators::Base
|
||||
|
||||
|
||||
desc <<-DESC
|
||||
Description:
|
||||
Generate application and spec decorators in your application.
|
||||
DESC
|
||||
|
||||
|
||||
class_option "test-framework", :type => :string, :default => "rspec", :aliases => "-t", :desc => "Test framework to be invoked"
|
||||
|
||||
|
||||
source_root File.expand_path('../templates', __FILE__)
|
||||
|
||||
def build_application_decorator
|
||||
empty_directory 'app/decorators'
|
||||
template 'application_decorator.rb', File.join('app/decorators', 'application_decorator.rb')
|
||||
end
|
||||
|
||||
|
||||
def build_decorator_tests
|
||||
case options["test-framework"]
|
||||
when "rspec"
|
||||
|
@ -23,13 +23,13 @@ module Draper
|
|||
build_application_decorator_test
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
def build_application_decorator_spec
|
||||
empty_directory 'spec/decorators'
|
||||
template 'application_decorator_spec.rb', File.join('spec/decorators', 'application_decorator_spec.rb')
|
||||
end
|
||||
|
||||
|
||||
def build_application_decorator_test
|
||||
empty_directory 'test/decorators/'
|
||||
template 'application_decorator_test.rb', File.join('test/decorators', 'application_decorator_test.rb')
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
require File.expand_path('../../draper/decorator/decorator_generator.rb', __FILE__)
|
||||
class Rails::DecoratorGenerator < Draper::DecoratorGenerator
|
||||
|
||||
|
||||
source_root File.expand_path('../../draper/decorator/templates', __FILE__)
|
||||
|
||||
|
||||
class_option :invoke_after_finished, :type => :string, :description => "Generator to invoke when finished"
|
||||
|
||||
def build_model_and_application_decorators
|
||||
super
|
||||
if self.options[:invoke_after_finished]
|
||||
Rails::Generators.invoke(self.options[:invoke_after_finished], [@name, @_initializer.first[1..-1]])
|
||||
Rails::Generators.invoke(self.options[:invoke_after_finished], [@name, @_initializer.first[1..-1]])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -17,20 +17,20 @@ Benchmark.bm do |bm|
|
|||
ProductDecorator.decorate(Product.new)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
bm.report("#hello_world ") do
|
||||
i.times do |n|
|
||||
ProductDecorator.decorate(Product.new).hello_world
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
bm.report("#sample_class_method ") do
|
||||
i.times do |n|
|
||||
ProductDecorator.decorate(Product.new).class.sample_class_method
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
puts "\n[ Defining methods on method_missing first hit ]"
|
||||
[ 1_000, 10_000, 100_000 ].each do |i|
|
||||
puts "\n[ #{i} ]"
|
||||
|
@ -39,13 +39,13 @@ Benchmark.bm do |bm|
|
|||
FastProductDecorator.decorate(FastProduct.new)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
bm.report("#hello_world ") do
|
||||
i.times do |n|
|
||||
FastProductDecorator.decorate(FastProduct.new).hello_world
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
bm.report("#sample_class_method ") do
|
||||
i.times do |n|
|
||||
FastProductDecorator.decorate(FastProduct.new).class.sample_class_method
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
require "./performance/models"
|
||||
class ProductDecorator < Draper::Base
|
||||
decorates :product
|
||||
|
||||
|
||||
def awesome_title
|
||||
"Awesome Title"
|
||||
end
|
||||
|
||||
|
||||
# Original #method_missing
|
||||
def method_missing(method, *args, &block)
|
||||
if allow?(method)
|
||||
|
@ -23,11 +23,11 @@ end
|
|||
|
||||
class FastProductDecorator < Draper::Base
|
||||
decorates :product
|
||||
|
||||
|
||||
def awesome_title
|
||||
"Awesome Title"
|
||||
end
|
||||
|
||||
|
||||
# Modified #method_missing
|
||||
def method_missing(method, *args, &block)
|
||||
if allow?(method)
|
||||
|
|
|
@ -3,7 +3,7 @@ class Product < ActiveRecord::Base
|
|||
def self.sample_class_method
|
||||
"sample class method"
|
||||
end
|
||||
|
||||
|
||||
def hello_world
|
||||
"Hello, World"
|
||||
end
|
||||
|
@ -13,7 +13,7 @@ class FastProduct < ActiveRecord::Base
|
|||
def self.sample_class_method
|
||||
"sample class method"
|
||||
end
|
||||
|
||||
|
||||
def hello_world
|
||||
"Hello, World"
|
||||
end
|
||||
|
|
|
@ -53,7 +53,7 @@ describe Draper::Base do
|
|||
BusinessDecorator.model_class.should == Business
|
||||
end.should_not raise_error
|
||||
end
|
||||
|
||||
|
||||
context("accepts ActiveRecord like :class_name option too") do
|
||||
it "accepts constants for :class" do
|
||||
expect do
|
||||
|
@ -63,7 +63,7 @@ describe Draper::Base do
|
|||
CustomDecorator.model_class.should == Product
|
||||
end.should_not raise_error
|
||||
end
|
||||
|
||||
|
||||
it "accepts constants for :class_name" do
|
||||
expect do
|
||||
class CustomDecorator < Draper::Base
|
||||
|
@ -72,7 +72,7 @@ describe Draper::Base do
|
|||
CustomDecorator.model_class.should == Product
|
||||
end.should_not raise_error
|
||||
end
|
||||
|
||||
|
||||
it "accepts strings for :class" do
|
||||
expect do
|
||||
class CustomDecorator < Draper::Base
|
||||
|
@ -81,7 +81,7 @@ describe Draper::Base do
|
|||
CustomDecorator.model_class.should == Product
|
||||
end.should_not raise_error
|
||||
end
|
||||
|
||||
|
||||
it "accepts strings for :class_name" do
|
||||
expect do
|
||||
class CustomDecorator < Draper::Base
|
||||
|
|
|
@ -8,7 +8,7 @@ describe Draper::HelperSupport do
|
|||
output = ApplicationController.decorate(@product){|p| p.model.object_id }
|
||||
output.should == @product.object_id
|
||||
end
|
||||
|
||||
|
||||
it 'uses #capture so Rails only renders the content once' do
|
||||
ApplicationController.decorate(@product){|p| p.model.object_id }
|
||||
ApplicationController.capture_triggered.should be
|
||||
|
|
|
@ -4,19 +4,19 @@ describe Draper::ViewContext do
|
|||
let (:app_controller) do
|
||||
ApplicationController
|
||||
end
|
||||
|
||||
|
||||
let (:app_controller_instance) do
|
||||
app_controller.new
|
||||
end
|
||||
|
||||
|
||||
it "implements #set_current_view_context" do
|
||||
app_controller_instance.should respond_to(:set_current_view_context)
|
||||
end
|
||||
|
||||
|
||||
it "calls #before_filter with #set_current_view_context" do
|
||||
app_controller.before_filters.should include(:set_current_view_context)
|
||||
end
|
||||
|
||||
|
||||
it "raises an exception if the view_context is fetched without being set" do
|
||||
Draper::ViewContext.current = nil
|
||||
expect {app_controller.current_view_context}.should raise_exception(Exception)
|
||||
|
|
|
@ -19,24 +19,24 @@ describe Draper::InstallGenerator do
|
|||
it { should contain "class ApplicationDecorator < Draper::Base" }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
describe 'spec/decorators/application_decorator_spec.rb' do
|
||||
subject { file('spec/decorators/application_decorator_spec.rb') }
|
||||
it { should exist }
|
||||
it { should contain "describe ApplicationDecorator do" }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context "using test_unit" do
|
||||
before { run_generator ["", "-t=test_unit"] }
|
||||
|
||||
|
||||
it_should_behave_like "ApplicationDecoratorGenerator"
|
||||
|
||||
|
||||
describe 'spec/decorators/application_decorator_spec.rb' do
|
||||
subject { file('spec/decorators/application_decorator_spec.rb') }
|
||||
it { should_not exist }
|
||||
end
|
||||
|
||||
|
||||
describe 'spec/decorators/application_decorator_test.rb' do
|
||||
subject { file('test/decorators/application_decorator_test.rb') }
|
||||
it { should exist }
|
||||
|
|
|
@ -19,25 +19,25 @@ class ApplicationController < ActionController::Base
|
|||
extend ActionView::Helpers
|
||||
extend ActionView::Helpers::TagHelper
|
||||
extend ActionView::Helpers::UrlHelper
|
||||
extend ApplicationHelper
|
||||
|
||||
extend ApplicationHelper
|
||||
|
||||
def view_context
|
||||
@view_context ||= ApplicationController
|
||||
end
|
||||
|
||||
|
||||
def view_context=(input)
|
||||
@view_context = input
|
||||
end
|
||||
|
||||
|
||||
def self.hello
|
||||
"Hello!"
|
||||
end
|
||||
|
||||
|
||||
def self.capture(&block)
|
||||
@@capture = true
|
||||
block.call
|
||||
end
|
||||
|
||||
|
||||
def self.capture_triggered
|
||||
@@capture ||= false
|
||||
end
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
class DecoratorWithAllows < Draper::Base
|
||||
class DecoratorWithAllows < Draper::Base
|
||||
allows :goodnight_moon
|
||||
end
|
|
@ -1,20 +1,20 @@
|
|||
class DecoratorWithApplicationHelper < Draper::Base
|
||||
class DecoratorWithApplicationHelper < Draper::Base
|
||||
def uses_hello_world
|
||||
h.hello_world
|
||||
end
|
||||
|
||||
|
||||
def sample_content
|
||||
h.content_tag :span, "Hello, World!"
|
||||
end
|
||||
|
||||
|
||||
def sample_link
|
||||
h.link_to "Hello", "/World"
|
||||
end
|
||||
|
||||
|
||||
def sample_truncate
|
||||
h.truncate("Once upon a time", :length => 7)
|
||||
end
|
||||
|
||||
|
||||
def length
|
||||
"overridden"
|
||||
end
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
class DecoratorWithDenies < Draper::Base
|
||||
class DecoratorWithDenies < Draper::Base
|
||||
denies :goodnight_moon, :title
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue