Module: Upmin::Railties::Render
- Defined in:
- lib/upmin/railties/render.rb
Instance Method Summary collapse
- #up_action(model, action_name, options = {}) ⇒ Object
- #up_association(model, assoc_name, options = {}) ⇒ Object
- #up_attribute(model, attr_name, options = {}) ⇒ Object
- #up_model(model, options = {}) ⇒ Object
-
#up_render(data, partials, options = {}, calling_method = nil) ⇒ Object
Generic render method that is used by all of the up_<something> methods.
- #up_search_box(klass, options = {}) ⇒ Object
- #up_search_result(model, options = {}) ⇒ Object
- #up_search_results(ransack_search, ransack_results, options = {}) ⇒ Object
Instance Method Details
#up_action(model, action_name, options = {}) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/upmin/railties/render.rb', line 50 def up_action(model, action_name, = {}) [:locals] ||= {} [:locals][:model] ||= model [:locals][:action_name] = action_name upmin_model = Upmin::Model.new(model) [:locals][:upmin_model] ||= upmin_model partials = RenderHelpers.action_partials(upmin_model, action_name, ) data = upmin_model.action_parameters(action_name) return up_render(data, partials, , :up_action) end |
#up_association(model, assoc_name, options = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/upmin/railties/render.rb', line 36 def up_association(model, assoc_name, = {}) [:locals] ||= {} [:locals][:model] ||= model [:locals][:assoc_name] = assoc_name upmin_model = Upmin::Model.new(model) [:locals][:upmin_model] ||= upmin_model partials = RenderHelpers.association_partials(upmin_model, assoc_name, ) data = upmin_model.association(assoc_name, ) return up_render([data].flatten, partials, , :up_association) end |
#up_attribute(model, attr_name, options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/upmin/railties/render.rb', line 15 def up_attribute(model, attr_name, = {}) [:locals] ||= {} [:locals][:model] ||= model [:locals][:attr_name] = attr_name upmin_model = Upmin::Model.new(model) [:locals][:upmin_model] ||= upmin_model [:locals][:form_id] ||= upmin_model.attribute_form_id(attr_name) # Only fill this in if it was never set so the user can override this. if [:locals][:editable].nil? [:locals][:editable] = upmin_model.attribute_editable?(attr_name) end partials = RenderHelpers.attribute_partials(upmin_model, attr_name, ) data = upmin_model.attribute(attr_name) return up_render(data, partials, , :up_attribute) end |
#up_model(model, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/upmin/railties/render.rb', line 5 def up_model(model, = {}) [:locals] ||= {} upmin_model = Upmin::Model.new(model) [:locals][:upmin_model] ||= upmin_model partials = RenderHelpers.model_partials(upmin_model, ) return up_render(model, partials, , :up_model) end |
#up_render(data, partials, options = {}, calling_method = nil) ⇒ Object
Generic render method that is used by all of the up_<something> methods. Tries to render the partials in order, passing data in as the :object, along with options.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/upmin/railties/render.rb', line 103 def up_render(data, partials, = {}, calling_method = nil) # Use options as the render hash, and set :object as the data being used for rendering. [:object] = data partials.each do |partial| begin [:partial] = partial return render() rescue ActionView::MissingTemplate => e end end # If we get here we tried all of the partials and nothing matched. This *shouldn't* be possible but might happen if partials are deleted. raise "Failed to find a matching partial while trying to render `#{calling_method}` with the following data: #{data.inspect}" end |
#up_search_box(klass, options = {}) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/upmin/railties/render.rb', line 86 def up_search_box(klass, = {}) [:locals] ||= {} klass = Upmin::Klass.find(klass) unless klass.is_a?(Upmin::Klass) if klass.nil? raise "Invalid klass provided in `up_search_box`" end [:locals][:klass] = klass partials = RenderHelpers.search_box_partials(klass, ) return up_render(klass, partials, , :up_search_box) end |
#up_search_result(model, options = {}) ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/upmin/railties/render.rb', line 75 def up_search_result(model, = {}) [:locals] ||= {} upmin_model = Upmin::Model.new(model) [:locals][:upmin_model] ||= upmin_model partials = RenderHelpers.search_result_partials(upmin_model, ) return up_render(model, partials, , :up_search_result) end |
#up_search_results(ransack_search, ransack_results, options = {}) ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/upmin/railties/render.rb', line 64 def up_search_results(ransack_search, ransack_results, = {}) [:locals] ||= {} [:locals][:klass] ||= Upmin::Klass.find(ransack_search.klass) [:locals][:ransack_search] ||= ransack_search [:locals][:ransack_results] ||= ransack_results partials = RenderHelpers.search_results_partials(ransack_search, ) return up_render(ransack_results, partials, , :up_search_results) end |