way 0.0.2 → 1.0.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.
Files changed (2) hide show
  1. data/lib/way.rb +50 -13
  2. metadata +2 -2
data/lib/way.rb CHANGED
@@ -1,22 +1,59 @@
1
1
  module ActionView
2
- PartialRenderer.class_eval do
3
- def render_partial
4
- locals, view, block = @locals, @view, @block
5
- object, as = @object, @variable
2
+ if defined? PartialRenderer
3
+ PartialRenderer.class_eval do
4
+ def render_partial
5
+ locals, view, block = @locals, @view, @block
6
+ object, as = @object, @variable
6
7
 
7
- if !block && (layout = @options[:layout])
8
- layout = find_template(layout)
9
- end
8
+ if !block && (layout = @options[:layout])
9
+ layout = find_template(layout)
10
+ end
11
+
12
+ object ||= locals[as]
13
+ locals[as] = object
10
14
 
11
- object ||= locals[as]
12
- locals[as] = object
15
+ content = @template.render(view, locals) do |*name|
16
+ view._layout_for(*name, &block)
17
+ end
13
18
 
14
- content = @template.render(view, locals) do |*name|
15
- view._layout_for(*name, &block)
19
+ content = layout.render(view, locals){ content } if layout
20
+ content << "#{@template.inspect}"
16
21
  end
22
+ end
23
+ end
24
+
25
+ Base.class_eval do
26
+ def render_partial options = {}
27
+ local_assigns = options[:locals] || {}
17
28
 
18
- content = layout.render(view, locals){ content } if layout
19
- content << "#{@template.inspect}"
29
+ case partial_path = options[:partial]
30
+ when String, Symbol, NilClass
31
+ if options.has_key?(:collection)
32
+ render_partial_collection(options)
33
+ else
34
+ partial_template = _pick_partial_template(partial_path)
35
+ partial_content = partial_template.render_partial(self, options[:object], local_assigns)
36
+ partial_content << "app/views/#{partial_template.to_s}"
37
+ end
38
+ when ActionView::Helpers::FormBuilder
39
+ builder_partial_path = partial_path.class.to_s.demodulize.underscore.sub(/_builder$/, '')
40
+ local_assigns.merge!(builder_partial_path.to_sym => partial_path)
41
+ render_partial(:partial => builder_partial_path, :object => options[:object], :locals => local_assigns)
42
+ else
43
+ if Array === partial_path ||
44
+ (defined?(ActiveRecord) &&
45
+ (ActiveRecord::Associations::AssociationCollection === partial_path ||
46
+ ActiveRecord::NamedScope::Scope === partial_path))
47
+ render_partial_collection(options.except(:partial).merge(:collection => partial_path))
48
+ else
49
+ object = partial_path
50
+ render_partial(
51
+ :partial => ActionController::RecordIdentifier.partial_path(object, controller.class.controller_path),
52
+ :object => object,
53
+ :locals => local_assigns
54
+ )
55
+ end
56
+ end
20
57
  end
21
58
  end
22
59
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: way
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-27 00:00:00.000000000 Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: calebcohoon@gmail.com