edifice 0.6.9 → 0.7.0
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/lib/edifice/controller.rb +56 -0
- data/lib/edifice/renderer.rb +20 -0
- data/lib/edifice/version.rb +1 -1
- data/lib/edifice.rb +4 -53
- metadata +6 -4
@@ -0,0 +1,56 @@
|
|
1
|
+
module Edifice
|
2
|
+
|
3
|
+
module Controller
|
4
|
+
def self.included(controller)
|
5
|
+
controller.helper_method(:view_path, :view_path_normalized,
|
6
|
+
:view_name, :view_name_normalized, :layout_name)
|
7
|
+
|
8
|
+
unless (controller == ActionMailer::Base)
|
9
|
+
controller.after_filter(:write_edifice_headers)
|
10
|
+
end
|
11
|
+
|
12
|
+
controller.class_eval do
|
13
|
+
def self.responder
|
14
|
+
Edifice::Responder
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# this will get called once per template. So we make sure it only writes for the first
|
20
|
+
def set_edifice_names(view_name, view_path, layout)
|
21
|
+
unless @edifice_names_set
|
22
|
+
@view_name = view_name
|
23
|
+
@view_path = view_path
|
24
|
+
@layout = layout
|
25
|
+
|
26
|
+
@edifice_names_set = true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def write_edifice_headers
|
31
|
+
response.headers['x-edifice-view_path'] = view_path_normalized
|
32
|
+
response.headers['x-edifice-view_name'] = view_name_normalized
|
33
|
+
response.headers['x-edifice-layout'] = layout_name
|
34
|
+
end
|
35
|
+
|
36
|
+
def view_path
|
37
|
+
(@view_path || 'no_controller').gsub('/', '_')
|
38
|
+
end
|
39
|
+
|
40
|
+
def view_path_normalized
|
41
|
+
view_path.camelcase(:lower)
|
42
|
+
end
|
43
|
+
|
44
|
+
def view_name
|
45
|
+
@view_name || 'no_view'
|
46
|
+
end
|
47
|
+
|
48
|
+
def view_name_normalized
|
49
|
+
view_name.camelcase(:lower)
|
50
|
+
end
|
51
|
+
|
52
|
+
def layout_name
|
53
|
+
@layout || 'no_layout'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Edifice
|
2
|
+
module Renderer
|
3
|
+
def self.included(renderer)
|
4
|
+
renderer.class_eval do
|
5
|
+
def _template_renderer #:nodoc:
|
6
|
+
@_template_renderer ||= Edifice::TemplateRenderer.new(@lookup_context)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class TemplateRenderer < ActionView::TemplateRenderer
|
13
|
+
def render_template(template, layout_name = nil, locals = {})
|
14
|
+
@view.controller.set_edifice_names(template.virtual_path.name,
|
15
|
+
template.virtual_path.prefix, (layout_name.nil? ? '' : layout_name.split('/').last))
|
16
|
+
|
17
|
+
super(template, layout_name, locals)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/edifice/version.rb
CHANGED
data/lib/edifice.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'edifice/helper'
|
2
|
+
require 'edifice/controller'
|
3
|
+
require 'edifice/renderer'
|
2
4
|
require 'edifice/form_model'
|
3
5
|
require 'edifice/responder'
|
4
6
|
|
@@ -12,60 +14,9 @@ module Edifice
|
|
12
14
|
FileUtils.rm_r File.join(install_dir, 'edifice')
|
13
15
|
FileUtils.cp_r edifice_js_dir, install_dir
|
14
16
|
end
|
15
|
-
|
16
|
-
module Controller
|
17
|
-
def self.included(controller)
|
18
|
-
controller.helper_method(:view_path, :view_path_normalized,
|
19
|
-
:view_name, :view_name_normalized, :layout_name)
|
20
|
-
|
21
|
-
unless (controller == ActionMailer::Base)
|
22
|
-
controller.after_filter(:write_edifice_headers)
|
23
|
-
controller.alias_method_chain(:_render_template, :edifice)
|
24
|
-
end
|
25
|
-
|
26
|
-
controller.class_eval do
|
27
|
-
def self.responder
|
28
|
-
Edifice::Responder
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def _render_template_with_edifice(options)
|
34
|
-
@view_path = options[:prefix]
|
35
|
-
@view_name = options[:template]
|
36
|
-
@layout = options[:layout] ? File.split(options[:layout]).last : nil
|
37
|
-
|
38
|
-
_render_template_without_edifice(options)
|
39
|
-
end
|
40
|
-
|
41
|
-
def write_edifice_headers
|
42
|
-
response.headers['x-edifice-view_path'] = view_path_normalized
|
43
|
-
response.headers['x-edifice-view_name'] = view_name_normalized
|
44
|
-
response.headers['x-edifice-layout'] = layout_name
|
45
|
-
end
|
46
|
-
|
47
|
-
def view_path
|
48
|
-
(@view_path || 'no_controller').gsub('/', '_')
|
49
|
-
end
|
50
|
-
|
51
|
-
def view_path_normalized
|
52
|
-
view_path.camelcase(:lower)
|
53
|
-
end
|
54
|
-
|
55
|
-
def view_name
|
56
|
-
@view_name || 'no_view'
|
57
|
-
end
|
58
|
-
|
59
|
-
def view_name_normalized
|
60
|
-
view_name.camelcase(:lower)
|
61
|
-
end
|
62
|
-
|
63
|
-
def layout_name
|
64
|
-
@layout || 'no_layout'
|
65
|
-
end
|
66
|
-
end
|
67
17
|
end
|
68
18
|
|
69
19
|
ActionController::Base.send :include, Edifice::Controller
|
70
20
|
# ActionMailer::Base.send :include, Edifice::Controller
|
71
|
-
ActionView::Base.send :include, Edifice::Helper
|
21
|
+
ActionView::Base.send :include, Edifice::Helper
|
22
|
+
ActionView::Renderer.send :include, Edifice::Renderer
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 0.7.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Tom Coleman
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-09-
|
19
|
+
date: 2011-09-20 00:00:00 +10:00
|
20
20
|
default_executable:
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -42,9 +42,11 @@ files:
|
|
42
42
|
- edifice.gemspec
|
43
43
|
- init.rb
|
44
44
|
- lib/edifice.rb
|
45
|
+
- lib/edifice/controller.rb
|
45
46
|
- lib/edifice/form_model.rb
|
46
47
|
- lib/edifice/helper.rb
|
47
48
|
- lib/edifice/railtie.rb
|
49
|
+
- lib/edifice/renderer.rb
|
48
50
|
- lib/edifice/responder.rb
|
49
51
|
- lib/edifice/version.rb
|
50
52
|
- lib/public/javascripts/edifice/edifice_form.js
|