Module: Daredevil::Responder::Actions
- Included in:
- Daredevil::Responder
- Defined in:
- lib/daredevil/responder/actions.rb
Constant Summary collapse
- ACTIONS =
%w(index show create edit update destroy).freeze
Instance Method Summary collapse
- #jbuilder_resource_render_options ⇒ Object
- #relation? ⇒ Boolean
- #render_resource ⇒ Object
- #resource_class ⇒ Object
- #resource_render_options ⇒ Object
- #respond_to_create_action ⇒ Object
- #respond_to_destroy_action ⇒ Object
- #respond_to_update_action ⇒ Object
- #responder_type ⇒ Object
- #serializer_class ⇒ Object
- #serializers_resource_render_options ⇒ Object
- #supported_responders ⇒ Object
Instance Method Details
#jbuilder_resource_render_options ⇒ Object
46 47 48 |
# File 'lib/daredevil/responder/actions.rb', line 46 def end |
#relation? ⇒ Boolean
73 74 75 |
# File 'lib/daredevil/responder/actions.rb', line 73 def relation? resource.is_a?(ActiveRecord::Relation) end |
#render_resource ⇒ Object
38 39 40 |
# File 'lib/daredevil/responder/actions.rb', line 38 def render_resource controller.render() end |
#resource_class ⇒ Object
68 69 70 71 |
# File 'lib/daredevil/responder/actions.rb', line 68 def resource_class return resource.model if relation? resource.class end |
#resource_render_options ⇒ Object
42 43 44 |
# File 'lib/daredevil/responder/actions.rb', line 42 def self.send(:"#{Daredevil.config.responder_type.to_s}_resource_render_options") end |
#respond_to_create_action ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/daredevil/responder/actions.rb', line 13 def respond_to_create_action if resource.persisted? && resource.valid? self.status ||= :created render_resource else self.status ||= :conflict render_error end end |
#respond_to_destroy_action ⇒ Object
33 34 35 36 |
# File 'lib/daredevil/responder/actions.rb', line 33 def respond_to_destroy_action self.status ||= :no_content controller.head(status, ) end |
#respond_to_update_action ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/daredevil/responder/actions.rb', line 23 def respond_to_update_action if resource.valid? self.status ||= :ok render_resource else self.status ||= :conflict render_error end end |
#responder_type ⇒ Object
77 78 79 80 81 |
# File 'lib/daredevil/responder/actions.rb', line 77 def responder_type supported_responders.each do |type, klass| return type.to_sym if defined?(klass.safe_constantize).eql?('constant') end end |
#serializer_class ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/daredevil/responder/actions.rb', line 59 def serializer_class [:serializer] ||= [ namespace, "#{resource_class}Serializer" ].compact.join('::').safe_constantize [:serializer] ||= "#{resource_class}Serializer".safe_constantize end |
#serializers_resource_render_options ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/daredevil/responder/actions.rb', line 50 def serializer_key = relation? ? :each_serializer : :serializer .merge( json: resource, serializer_key => serializer_class ) end |
#supported_responders ⇒ Object
83 84 85 86 87 88 89 |
# File 'lib/daredevil/responder/actions.rb', line 83 def supported_responders { jbuilder: 'Jbuilder', serializers: 'ActiveModel::Serializers', rabl: 'RABL' } end |