edifice 0.6.9 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Edifice
2
- VERSION = "0.6.9"
2
+ VERSION = "0.7.0"
3
3
  end
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
- - 6
8
- - 9
9
- version: 0.6.9
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-16 00:00:00 +10:00
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