keynote 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of keynote might be problematic. Click here for more details.
- data/lib/keynote.rb +4 -1
- data/lib/keynote/controller.rb +2 -2
- data/lib/keynote/helper.rb +2 -2
- data/lib/keynote/presenter.rb +2 -2
- data/lib/keynote/rumble.rb +7 -0
- data/lib/keynote/version.rb +1 -1
- data/spec/keynote_spec.rb +15 -0
- metadata +2 -2
data/lib/keynote.rb
CHANGED
@@ -15,6 +15,7 @@ require "keynote/cache"
|
|
15
15
|
module Keynote
|
16
16
|
class << self
|
17
17
|
# Create or retrieve a presenter wrapping zero or more objects.
|
18
|
+
# If a block is given, yield the presenter into it.
|
18
19
|
#
|
19
20
|
# The first parameter is a Rails view context, but you'll usually access
|
20
21
|
# this method through `Keynote::Helper#present`,
|
@@ -52,7 +53,9 @@ module Keynote
|
|
52
53
|
end
|
53
54
|
|
54
55
|
Cache.fetch(name, view, *objects) do
|
55
|
-
presenter_from_name(name).new(view, *objects)
|
56
|
+
presenter_from_name(name).new(view, *objects).tap do |presenter|
|
57
|
+
yield presenter if block_given?
|
58
|
+
end
|
56
59
|
end
|
57
60
|
end
|
58
61
|
|
data/lib/keynote/controller.rb
CHANGED
@@ -7,8 +7,8 @@ module Keynote
|
|
7
7
|
module Controller
|
8
8
|
# Instantiate a presenter.
|
9
9
|
# @see Keynote.present
|
10
|
-
def present(*objects)
|
11
|
-
Keynote.present(view_context, *objects)
|
10
|
+
def present(*objects, &blk)
|
11
|
+
Keynote.present(view_context, *objects, &blk)
|
12
12
|
end
|
13
13
|
alias k present
|
14
14
|
end
|
data/lib/keynote/helper.rb
CHANGED
data/lib/keynote/presenter.rb
CHANGED
data/lib/keynote/rumble.rb
CHANGED
@@ -199,6 +199,13 @@ module Keynote
|
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
202
|
+
# Define a more complete set of HTML5 tag methods on the given presenter
|
203
|
+
# class.
|
204
|
+
# @param [Keynote::Presenter] base
|
205
|
+
def self.use_html_5_tags(base)
|
206
|
+
define_tags(base, COMPLETE)
|
207
|
+
end
|
208
|
+
|
202
209
|
# We need our own copy of this, the normal Rails html_escape helper, so
|
203
210
|
# that we can access it from inside Tag objects.
|
204
211
|
# @private
|
data/lib/keynote/version.rb
CHANGED
data/spec/keynote_spec.rb
CHANGED
@@ -26,6 +26,21 @@ describe Keynote do
|
|
26
26
|
p.model.must_equal 'hello'
|
27
27
|
end
|
28
28
|
|
29
|
+
it "should take a block and pass the presenter into it" do
|
30
|
+
m = mock()
|
31
|
+
m.expects(:block_yielded)
|
32
|
+
|
33
|
+
Keynote.present(:view, :normal, 'hello') do |p|
|
34
|
+
m.block_yielded
|
35
|
+
|
36
|
+
p.wont_be_nil
|
37
|
+
p.must_be_instance_of NormalPresenter
|
38
|
+
|
39
|
+
p.view.must_equal :view
|
40
|
+
p.model.must_equal 'hello'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
29
44
|
it "should integrate with Rumble" do
|
30
45
|
p = Keynote.present(:view, model)
|
31
46
|
rx = /<div><script>alert\(/
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: keynote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ryan Fitzgerald
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|