render_parent 0.0.1 → 0.0.2
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/VERSION +1 -1
- data/lib/render_parent/rails2.rb +44 -3
- data/lib/render_parent/rails3.rb +3 -0
- data/lib/render_parent/rails3/on_load_action_mailer.rb +11 -0
- data/lib/render_parent/rails3/on_load_action_view.rb +26 -5
- metadata +60 -75
- data/render_parent.gemspec +0 -59
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/render_parent/rails2.rb
CHANGED
@@ -2,10 +2,9 @@ require 'action_view/base'
|
|
2
2
|
|
3
3
|
ActionView::Base.class_eval do
|
4
4
|
def render_parent_template(local_assigns = {}, &block)
|
5
|
-
|
6
|
-
view_paths.delete_if {|p| p.to_s == template.load_path.to_s}
|
5
|
+
view_paths.exclusions << template
|
7
6
|
result = render({:file => template.to_s}, local_assigns, &block)
|
8
|
-
view_paths.
|
7
|
+
view_paths.exclusions.delete template
|
9
8
|
result
|
10
9
|
end
|
11
10
|
|
@@ -18,4 +17,46 @@ ActionView::Base.class_eval do
|
|
18
17
|
end
|
19
18
|
|
20
19
|
alias_method_chain :render, :parent
|
20
|
+
end
|
21
|
+
|
22
|
+
ActionView::PathSet.class_eval do
|
23
|
+
attr_writer :exclusions
|
24
|
+
|
25
|
+
def exclusions
|
26
|
+
@exclusions ||= []
|
27
|
+
end
|
28
|
+
|
29
|
+
def find_template(original_template_path, format = nil, html_fallback = true)
|
30
|
+
return original_template_path if original_template_path.respond_to?(:render)
|
31
|
+
template_path = original_template_path.sub(/^\//, '')
|
32
|
+
|
33
|
+
each do |load_path|
|
34
|
+
if format && (template = load_path["#{template_path}.#{I18n.locale}.#{format}"]) && !exclusions.include?(template)
|
35
|
+
return template
|
36
|
+
# Try the default locale version if the current locale doesn't have one
|
37
|
+
# (i.e. you haven't translated this view to German yet, but you have the English version on hand)
|
38
|
+
elsif format && (template = load_path["#{template_path}.#{I18n.default_locale}.#{format}"]) && !exclusions.include?(template)
|
39
|
+
return template
|
40
|
+
elsif format && (template = load_path["#{template_path}.#{format}"]) && !exclusions.include?(template)
|
41
|
+
return template
|
42
|
+
elsif (template = load_path["#{template_path}.#{I18n.locale}"]) && !exclusions.include?(template)
|
43
|
+
return template
|
44
|
+
elsif (template = load_path["#{template_path}.#{I18n.default_locale}"]) && !exclusions.include?(template)
|
45
|
+
return template
|
46
|
+
elsif (template = load_path[template_path]) && !exclusions.include?(template)
|
47
|
+
return template
|
48
|
+
# Try to find html version if the format is javascript
|
49
|
+
elsif format == :js && html_fallback && (template = load_path["#{template_path}.#{I18n.locale}.html"]) && !exclusions.include?(template)
|
50
|
+
return template
|
51
|
+
elsif format == :js && html_fallback && (template = load_path["#{template_path}.#{I18n.default_locale}.html"]) && !exclusions.include?(template)
|
52
|
+
return template
|
53
|
+
elsif format == :js && html_fallback && (template = load_path["#{template_path}.html"]) && !exclusions.include?(template)
|
54
|
+
return template
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
return ActionView::Template.new(original_template_path) if File.file?(original_template_path)
|
59
|
+
|
60
|
+
raise ActionView::MissingTemplate.new(self, original_template_path, format)
|
61
|
+
end
|
21
62
|
end
|
data/lib/render_parent/rails3.rb
CHANGED
@@ -6,6 +6,9 @@ module RenderParent
|
|
6
6
|
ActiveSupport.on_load(:action_controller) do
|
7
7
|
require 'render_parent/rails3/on_load_action_controller'
|
8
8
|
end
|
9
|
+
ActiveSupport.on_load(:action_mailer) do
|
10
|
+
require 'render_parent/rails3/on_load_action_mailer'
|
11
|
+
end
|
9
12
|
ActiveSupport.on_load(:action_view) do
|
10
13
|
require 'render_parent/rails3/on_load_action_view'
|
11
14
|
end
|
@@ -4,10 +4,9 @@ require 'action_view/renderer/template_renderer'
|
|
4
4
|
ActionView::Helpers::RenderingHelper.module_eval do
|
5
5
|
def render_parent_template(locals = {}, &block)
|
6
6
|
template = controller.active_template
|
7
|
-
|
8
|
-
view_paths.paths.delete_if {|p| template.identifier.start_with? p.to_s}
|
7
|
+
view_paths.exclusions << template
|
9
8
|
result = render({:file => template.virtual_path}, locals, &block)
|
10
|
-
view_paths.
|
9
|
+
view_paths.exclusions.delete template
|
11
10
|
result
|
12
11
|
end
|
13
12
|
|
@@ -22,9 +21,31 @@ ActionView::Helpers::RenderingHelper.module_eval do
|
|
22
21
|
alias_method_chain :render, :parent
|
23
22
|
end
|
24
23
|
|
24
|
+
ActionView::PathSet.class_eval do
|
25
|
+
attr_writer :exclusions
|
26
|
+
|
27
|
+
def exclusions
|
28
|
+
@exclusions ||= []
|
29
|
+
end
|
30
|
+
|
31
|
+
def find_all_with_exclusions(path, prefixes = [], *args)
|
32
|
+
prefixes = [prefixes] if String === prefixes
|
33
|
+
prefixes.each do |prefix|
|
34
|
+
paths.each do |resolver|
|
35
|
+
templates = resolver.find_all(path, prefix, *args)
|
36
|
+
templates.delete_if {|t| exclusions.include? t}
|
37
|
+
return templates unless templates.empty?
|
38
|
+
end
|
39
|
+
end
|
40
|
+
[]
|
41
|
+
end
|
42
|
+
|
43
|
+
alias_method_chain :find_all, :exclusions
|
44
|
+
end
|
45
|
+
|
25
46
|
ActionView::TemplateRenderer.class_eval do
|
26
47
|
def render_template_with_active_template(template, layout_name = nil, locals = {})
|
27
|
-
template_stack = @view.controller.
|
48
|
+
template_stack = @view.controller.respond_to?(:active_template_stack) && @view.controller.active_template_stack
|
28
49
|
template_stack.push(template) if template_stack
|
29
50
|
result = render_template_without_active_template( template, layout_name, locals)
|
30
51
|
template_stack.pop if template_stack
|
@@ -36,7 +57,7 @@ end
|
|
36
57
|
|
37
58
|
ActionView::PartialRenderer.class_eval do
|
38
59
|
def render_partial_with_active_template
|
39
|
-
template_stack = @view.controller.
|
60
|
+
template_stack = @view.controller.respond_to?(:active_template_stack) && @view.controller.active_template_stack
|
40
61
|
template_stack.push(@template) if template_stack
|
41
62
|
result = render_partial_without_active_template
|
42
63
|
template_stack.pop if template_stack
|
metadata
CHANGED
@@ -1,81 +1,72 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: render_parent
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 0.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Anton Argirov
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-10-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rails
|
23
|
-
|
24
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 3
|
33
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 2.3.0
|
35
|
-
|
22
|
+
type: :runtime
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.3.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
38
31
|
name: bundler
|
39
|
-
|
40
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
41
33
|
none: false
|
42
|
-
requirements:
|
34
|
+
requirements:
|
43
35
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 19
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 1
|
49
|
-
- 0
|
36
|
+
- !ruby/object:Gem::Version
|
50
37
|
version: 1.1.0
|
51
|
-
|
38
|
+
type: :development
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.1.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
54
47
|
name: jeweler
|
55
|
-
|
56
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
57
49
|
none: false
|
58
|
-
requirements:
|
50
|
+
requirements:
|
59
51
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 49
|
62
|
-
segments:
|
63
|
-
- 1
|
64
|
-
- 8
|
65
|
-
- 3
|
52
|
+
- !ruby/object:Gem::Version
|
66
53
|
version: 1.8.3
|
67
|
-
|
54
|
+
type: :development
|
68
55
|
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.8.3
|
69
62
|
description:
|
70
63
|
email: anton.argirov@gmail.com
|
71
64
|
executables: []
|
72
|
-
|
73
65
|
extensions: []
|
74
|
-
|
75
|
-
extra_rdoc_files:
|
66
|
+
extra_rdoc_files:
|
76
67
|
- LICENSE.txt
|
77
68
|
- README.rdoc
|
78
|
-
files:
|
69
|
+
files:
|
79
70
|
- .document
|
80
71
|
- Gemfile
|
81
72
|
- LICENSE.txt
|
@@ -87,43 +78,37 @@ files:
|
|
87
78
|
- lib/render_parent/rails2.rb
|
88
79
|
- lib/render_parent/rails3.rb
|
89
80
|
- lib/render_parent/rails3/on_load_action_controller.rb
|
81
|
+
- lib/render_parent/rails3/on_load_action_mailer.rb
|
90
82
|
- lib/render_parent/rails3/on_load_action_view.rb
|
91
|
-
- render_parent.gemspec
|
92
83
|
- test/helper.rb
|
93
84
|
- test/test_render_parent.rb
|
94
|
-
has_rdoc: true
|
95
85
|
homepage: http://redmine.academ.org
|
96
|
-
licenses:
|
86
|
+
licenses:
|
97
87
|
- MIT
|
98
88
|
post_install_message:
|
99
89
|
rdoc_options: []
|
100
|
-
|
101
|
-
require_paths:
|
90
|
+
require_paths:
|
102
91
|
- lib
|
103
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
93
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
|
109
|
-
segments:
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
segments:
|
110
99
|
- 0
|
111
|
-
|
112
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
hash: 117922609
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
102
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
version: "0"
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
121
107
|
requirements: []
|
122
|
-
|
123
108
|
rubyforge_project:
|
124
|
-
rubygems_version: 1.
|
109
|
+
rubygems_version: 1.8.24
|
125
110
|
signing_key:
|
126
111
|
specification_version: 3
|
127
|
-
summary: Adds Rails "render :parent" helper, which renders template with the same
|
112
|
+
summary: Adds Rails "render :parent" helper, which renders template with the same
|
113
|
+
name as current but higher on the view path
|
128
114
|
test_files: []
|
129
|
-
|
data/render_parent.gemspec
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{render_parent}
|
8
|
-
s.version = "0.0.1"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Anton Argirov"]
|
12
|
-
s.date = %q{2012-09-17}
|
13
|
-
s.email = %q{anton.argirov@gmail.com}
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"LICENSE.txt",
|
16
|
-
"README.rdoc"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
".document",
|
20
|
-
"Gemfile",
|
21
|
-
"LICENSE.txt",
|
22
|
-
"README.rdoc",
|
23
|
-
"Rakefile",
|
24
|
-
"VERSION",
|
25
|
-
"lib/rails/init.rb",
|
26
|
-
"lib/render_parent.rb",
|
27
|
-
"lib/render_parent/rails2.rb",
|
28
|
-
"lib/render_parent/rails3.rb",
|
29
|
-
"lib/render_parent/rails3/on_load_action_controller.rb",
|
30
|
-
"lib/render_parent/rails3/on_load_action_view.rb",
|
31
|
-
"render_parent.gemspec",
|
32
|
-
"test/helper.rb",
|
33
|
-
"test/test_render_parent.rb"
|
34
|
-
]
|
35
|
-
s.homepage = %q{http://redmine.academ.org}
|
36
|
-
s.licenses = ["MIT"]
|
37
|
-
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.6.2}
|
39
|
-
s.summary = %q{Adds Rails "render :parent" helper, which renders template with the same name as current but higher on the view path}
|
40
|
-
|
41
|
-
if s.respond_to? :specification_version then
|
42
|
-
s.specification_version = 3
|
43
|
-
|
44
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
-
s.add_runtime_dependency(%q<rails>, [">= 2.3.0"])
|
46
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
|
47
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
48
|
-
else
|
49
|
-
s.add_dependency(%q<rails>, [">= 2.3.0"])
|
50
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.0"])
|
51
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
52
|
-
end
|
53
|
-
else
|
54
|
-
s.add_dependency(%q<rails>, [">= 2.3.0"])
|
55
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.0"])
|
56
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|