Module: Valideizer::Rails
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/valideizer/rails.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/valideizer/rails.rb', line 9 def self.included(base) base.before_action :valideize! base.class_eval do class << self def valideize(*methods, &) methods.each do |method| method = method.to_s holder = Valideizer::Holder.instance holder.valideizers[controller_path] = {} if holder.valideizers[controller_path].nil? # raise "Action #{method} is not defined in #{controller_name}" unless action_methods.include? method.to_s if holder.valideizers[controller_path][method].nil? holder.valideizers[controller_path][method] = Valideizer::Core.new end valideizer = holder.valideizers[controller_path][method] valideizer.instance_eval(&) end end def valideizer_callback(method_name) holder = Valideizer::Holder.instance unless holder.output_type.present? # holder.raise_exception holder.callback_controller = controller_path holder.callback_method = method_name.to_s holder.output_type = Valideizer::Holder::CALLBACK_TYPE end end def valideizer_method(method_name) holder = Valideizer::Holder.instance unless holder.output_type.present? holder.render_controller = controller_path holder.render_method = method_name.to_s holder.output_type = Valideizer::Holder::METHOD_TYPE end end def valideizer_render(status = 400, &block) holder = Valideizer::Holder.instance unless holder.output_type.present? holder.status = status holder.render_block = block holder.output_type = Valideizer::Holder::RENDER_TYPE end end end end end |
Instance Method Details
#valideize! ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/valideizer/rails.rb', line 62 def valideize! valideizer = holder.valideizers[controller_path][action_name] rescue nil return if valideizer.nil? unless valideizer.valideized?(params) case holder.output_type when Valideizer::Holder::CALLBACK_TYPE redirect_to controller: holder.callback_controller, action: holder.callback_method, errors: valideizer.errors when Valideizer::Holder::RENDER_TYPE render json: instance_exec(valideizer.errors, &holder.render_block), status: holder.status else render json: valideizer.errors, status: 400 end end end |
#valideized?(params) ⇒ Boolean
78 79 80 |
# File 'lib/valideizer/rails.rb', line 78 def valideized?(params) holder.valideizers[controller_path][action_name].valideized?(params) end |
#valideizer_errors ⇒ Object
82 83 84 |
# File 'lib/valideizer/rails.rb', line 82 def valideizer_errors holder.valideizers[controller_path][action_name].errors end |