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.
@@ -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