module OutPut
Constants
- VERSION
Public Instance Methods
_output_cache(time, data: { }, only: nil, &block)
click to toggle source
# File lib/out_put.rb, line 40 def _output_cache(time, data: { }, only: nil, &block) cached = Rails.cache.fetch("output/#{action_name}", expires_in: time) do instance_eval(&block) end [ data.merge(cached), cached&.[](:only)&.merge(only || { }) ] end
_output_result(code, msg)
click to toggle source
***
# File lib/out_put.rb, line 33 def _output_result(code, msg) # code = code.zero? ? 0 : Config.project_code + code msg = 'success' if msg.blank? && code.zero? msg = "[#{instance_exec(&Config.request_id)}] #{msg}" if Config.request_id && !code.zero? { code: code, message: msg } end
build_with(code = 0, msg = 'success', **data)
click to toggle source
# File lib/out_put.rb, line 26 def build_with(code = 0, msg = 'success', **data) (@view ||= View.new(code, msg)).merge!(data) # Then jump to your view end
error(code = 0, msg = '', only: nil, http: 200, cache: nil, data: nil, **d, &block)
Alias for: output
error_with(code = 0, msg = '', only: nil, http: 200, cache: nil, data: nil, **d, &block)
Alias for: output
ok_with(code = 0, msg = '', only: nil, http: 200, cache: nil, data: nil, **d, &block)
Alias for: output
output(code = 0, msg = '', only: nil, http: 200, cache: nil, data: nil, **d, &block)
click to toggle source
# File lib/out_put.rb, line 8 def output(code = 0, msg = '', only: nil, http: 200, cache: nil, data: nil, **d, &block) data ||= d || { } if !code.is_a?(Integer) && code.respond_to?(:info) only = code.info[:only] code, msg, http, data = code.info.values_at(:code, :msg, :http, :data) elsif cache && block_given? data, only = _output_cache(cache, data: data, only: only, &block) end return render json: only.except(:http), status: only[:http] || http if only.present? render json: { result: _output_result(code, msg), data: data }, status: http end