pakyow-presenter 0.7.0 → 0.7.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/pakyow-presenter/CHANGES +17 -0
- data/pakyow-presenter/lib/presenter/base.rb +7 -7
- data/pakyow-presenter/lib/presenter/binder.rb +4 -4
- data/pakyow-presenter/lib/presenter/presenter.rb +13 -12
- data/pakyow-presenter/lib/presenter/view.rb +3 -4
- data/pakyow-presenter/lib/presenter/views.rb +3 -2
- metadata +9 -9
data/pakyow-presenter/CHANGES
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
= 0.7.1 / 2012-01-08
|
2
|
+
|
3
|
+
* View caching fixes
|
4
|
+
* Changed binder to allow definition for multiple endpoints
|
5
|
+
* Changed in_context to accept context as block argument
|
6
|
+
* Changed action binder to add leading slash if needed
|
7
|
+
* Change to allow a view's content to be set to nil
|
8
|
+
* Fixed Views#find method
|
9
|
+
|
10
|
+
= 0.7.0 / 2011-11-19
|
11
|
+
|
12
|
+
* Cleaned up core/presenter interface
|
13
|
+
* Optimized view caching
|
14
|
+
* Binding occurs on the label an object is being bound to, not the object type
|
15
|
+
* Root view override in index directories no longer specify a root view for siblings
|
16
|
+
* Fixed problem binding to a checkbox who’s value attribute is not set
|
17
|
+
|
1
18
|
= 0.6.3 / 2011-09-13
|
2
19
|
|
3
20
|
* Fixes binding to bindings defined by HTML 'name' attribute
|
@@ -1,11 +1,11 @@
|
|
1
|
+
require 'presenter/view_lookup_store'
|
2
|
+
require 'presenter/view'
|
3
|
+
require 'presenter/lazy_view'
|
4
|
+
require 'presenter/binder'
|
5
|
+
require 'presenter/views'
|
6
|
+
require 'presenter/view_context'
|
7
|
+
|
1
8
|
module Pakyow
|
2
9
|
module Presenter
|
3
|
-
autoload :PresenterBase, 'core/presenter_base'
|
4
|
-
autoload :ViewLookupStore, 'presenter/view_lookup_store'
|
5
|
-
autoload :View, 'presenter/view'
|
6
|
-
autoload :LazyView, 'presenter/lazy_view'
|
7
|
-
autoload :Binder, 'presenter/binder'
|
8
|
-
autoload :Views, 'presenter/views'
|
9
|
-
autoload :ViewContext, 'presenter/view_context'
|
10
10
|
end
|
11
11
|
end
|
@@ -6,9 +6,9 @@ module Pakyow
|
|
6
6
|
class << self
|
7
7
|
attr_accessor :options
|
8
8
|
|
9
|
-
def binder_for(
|
10
|
-
View.binders
|
11
|
-
View.binders[klass.to_s.to_sym] = self
|
9
|
+
def binder_for(*args)
|
10
|
+
View.binders ||= {}
|
11
|
+
args.each { |klass| View.binders[klass.to_s.to_sym] = self }
|
12
12
|
end
|
13
13
|
|
14
14
|
def options_for(*args)
|
@@ -53,7 +53,7 @@ module Pakyow
|
|
53
53
|
method = "post"
|
54
54
|
end
|
55
55
|
|
56
|
-
return { :action => action, :method => method }
|
56
|
+
return { :action => File.join('/', action), :method => method }
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -128,7 +128,8 @@ module Pakyow
|
|
128
128
|
#
|
129
129
|
|
130
130
|
def with_container(container, &block)
|
131
|
-
|
131
|
+
v = self.view.find("##{container}").first
|
132
|
+
ViewContext.new(v).instance_exec(v, &block)
|
132
133
|
end
|
133
134
|
|
134
135
|
#
|
@@ -166,18 +167,17 @@ module Pakyow
|
|
166
167
|
end
|
167
168
|
return unless v_p
|
168
169
|
|
170
|
+
return unless view_info = @view_lookup_store.view_info(v_p)
|
171
|
+
@root_path ||= view_info[:root_view]
|
172
|
+
|
169
173
|
if Configuration::Base.presenter.view_caching
|
170
|
-
r_v = @populated_root_view_cache[v_p]
|
171
|
-
|
174
|
+
r_v = @populated_root_view_cache.get([v_p, @root_path]) {
|
175
|
+
populate_view(LazyView.new(@root_path, true), view_info[:views])
|
176
|
+
}
|
172
177
|
@root_view = r_v.dup
|
173
178
|
@presented = true
|
174
|
-
end
|
175
179
|
else
|
176
|
-
|
177
|
-
@root_path ||= view_info[:root_view]
|
178
|
-
@root_view = LazyView.new(@root_path, true)
|
179
|
-
views = view_info[:views]
|
180
|
-
populate_view(self.view, views)
|
180
|
+
@root_view = populate_view(LazyView.new(@root_path, true), view_info[:views])
|
181
181
|
@presented = true
|
182
182
|
end
|
183
183
|
end
|
@@ -198,13 +198,14 @@ module Pakyow
|
|
198
198
|
end
|
199
199
|
|
200
200
|
def build_root_view_cache(view_info)
|
201
|
-
|
201
|
+
cache = Pakyow::Cache.new
|
202
202
|
view_info.each{|dir,info|
|
203
203
|
r_v = LazyView.new(info[:root_view], true)
|
204
204
|
populate_view(r_v, info[:views])
|
205
|
-
|
205
|
+
key = [dir, info[:root_view]]
|
206
|
+
cache.put(key, r_v)
|
206
207
|
}
|
207
|
-
|
208
|
+
cache
|
208
209
|
end
|
209
210
|
|
210
211
|
# populates the top_view using view_store data by recursively building
|
@@ -85,7 +85,7 @@ module Pakyow
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def in_context(&block)
|
88
|
-
ViewContext.new(self).
|
88
|
+
ViewContext.new(self).instance_exec(self, &block)
|
89
89
|
end
|
90
90
|
|
91
91
|
def bind(object, opts = {})
|
@@ -122,7 +122,7 @@ module Pakyow
|
|
122
122
|
objects.each do |object|
|
123
123
|
view = View.new(self)
|
124
124
|
view.bind(object, opts)
|
125
|
-
ViewContext.new(view).instance_exec(object, &block) if block_given?
|
125
|
+
ViewContext.new(view).instance_exec(object, view, &block) if block_given?
|
126
126
|
|
127
127
|
o.add_previous_sibling(view.doc)
|
128
128
|
end
|
@@ -219,10 +219,9 @@ module Pakyow
|
|
219
219
|
alias :html :content
|
220
220
|
|
221
221
|
def content=(content)
|
222
|
-
return unless content
|
223
222
|
self.doc.inner_html = Nokogiri::HTML.fragment(content.to_s)
|
224
223
|
end
|
225
|
-
|
224
|
+
|
226
225
|
alias :html= :content=
|
227
226
|
|
228
227
|
def append(content)
|
@@ -12,7 +12,7 @@ module Pakyow
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def in_context(&block)
|
15
|
-
ViewContext.new(self).
|
15
|
+
ViewContext.new(self).instance_exec(self, &block)
|
16
16
|
end
|
17
17
|
|
18
18
|
def attributes(*args)
|
@@ -102,9 +102,10 @@ module Pakyow
|
|
102
102
|
self.each {|e| e.bind(object, opts)}
|
103
103
|
end
|
104
104
|
|
105
|
-
def find(element)
|
105
|
+
def find(element, &block)
|
106
106
|
views = Views.new
|
107
107
|
self.each {|e| e.find(element, &block).each { |v| views << v }}
|
108
|
+
views
|
108
109
|
end
|
109
110
|
end
|
110
111
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pakyow-presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,22 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2012-01-08 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pakyow-core
|
17
|
-
requirement: &
|
17
|
+
requirement: &70243486230860 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - =
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.7.
|
22
|
+
version: 0.7.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70243486230860
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: nokogiri
|
28
|
-
requirement: &
|
28
|
+
requirement: &70243486229100 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '1.5'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70243486229100
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: shoulda
|
39
|
-
requirement: &
|
39
|
+
requirement: &70243486228220 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '2.11'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70243486228220
|
48
48
|
description: pakyow-presenter
|
49
49
|
email: bryan@metabahn.com
|
50
50
|
executables: []
|