Class: RespondForHelper::Respond
- Inherits:
-
Object
- Object
- RespondForHelper::Respond
- Defined in:
- lib/respond_for_helper/respond.rb
Instance Method Summary collapse
- #after_failure(&block) ⇒ Object
- #after_success(&block) ⇒ Object
- #before_failure(&block) ⇒ Object
- #before_success(&block) ⇒ Object
- #check_success ⇒ Object
- #formatters ⇒ Object
-
#initialize(controller, item, options) ⇒ Respond
constructor
A new instance of Respond.
- #run_after_callbacks ⇒ Object
- #run_before_callbacks ⇒ Object
- #run_callbacks_for(name) ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(controller, item, options) ⇒ Respond
Returns a new instance of Respond.
5 6 7 8 9 10 11 12 |
# File 'lib/respond_for_helper/respond.rb', line 5 def initialize(controller, item, ) @controller = controller @item = item @options = @success = check_success @callbacks = {} end |
Instance Method Details
#after_failure(&block) ⇒ Object
43 44 45 46 |
# File 'lib/respond_for_helper/respond.rb', line 43 def after_failure(&block) @callbacks[:after_failure] ||= [] @callbacks[:after_failure] << block end |
#after_success(&block) ⇒ Object
38 39 40 41 |
# File 'lib/respond_for_helper/respond.rb', line 38 def after_success(&block) @callbacks[:after_success] ||= [] @callbacks[:after_success] << block end |
#before_failure(&block) ⇒ Object
33 34 35 36 |
# File 'lib/respond_for_helper/respond.rb', line 33 def before_failure(&block) @callbacks[:before_failure] ||= [] @callbacks[:before_failure] << block end |
#before_success(&block) ⇒ Object
28 29 30 31 |
# File 'lib/respond_for_helper/respond.rb', line 28 def before_success(&block) @callbacks[:before_success] ||= [] @callbacks[:before_success] << block end |
#check_success ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/respond_for_helper/respond.rb', line 14 def check_success if @options.key?(:success) @options[:success] elsif @controller.request.get? true else Array(@item).all? { |item| item.errors.blank? } end end |
#formatters ⇒ Object
72 73 74 75 76 |
# File 'lib/respond_for_helper/respond.rb', line 72 def formatters Lookups::Format.new(@controller, @options).call.map do |_, klass| klass.new(@controller, @item, @success, @options) end end |
#run_after_callbacks ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/respond_for_helper/respond.rb', line 56 def run_after_callbacks if success? run_callbacks_for(:after_success) else run_callbacks_for(:after_failure) end end |
#run_before_callbacks ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/respond_for_helper/respond.rb', line 48 def run_before_callbacks if success? run_callbacks_for(:before_success) else run_callbacks_for(:before_failure) end end |
#run_callbacks_for(name) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/respond_for_helper/respond.rb', line 64 def run_callbacks_for(name) if @callbacks[name] @callbacks[name].each do |callback| callback.call end end end |
#success? ⇒ Boolean
24 25 26 |
# File 'lib/respond_for_helper/respond.rb', line 24 def success? @success end |