module Crudmonster
Constants
- VERSION
Public Instance Methods
crud_api()
click to toggle source
# File lib/crudmonster.rb, line 9 def crud_api define_method 'index' do render json: { resource_name.pluralize.downcase => collection } end define_method 'show' do render json: { resource_name.downcase => resource } end define_method 'create' do created_resource = resource_class.create!(permitted_params) render json: { resource_name.downcase => created_resource } end define_method 'update' do resource.update(permitted_params) render json: { resource_name.downcase => resource } end define_method 'destroy' do if resource.delete head :ok else head 400 end end define_method 'permitted_params' do if self.private_methods.include? "#{resource_name.downcase}_params".to_sym send "#{resource_name.downcase}_params".to_sym else resource_params end end define_method 'resource_params' do params.require(resource_name.downcase.to_sym).permit! end define_method 'collection' do resource_class.all end define_method 'resource' do @resource ||= resource_class.find(params[:id]) end define_method 'resource_name' do self.class.name .gsub(/Controller/, '') .singularize end define_method 'resource_class' do resource_name .constantize end private :permitted_params, :resource_params, :collection, :resource, :resource_name, :resource_class end