module CRUDRequest
Public Instance Methods
create_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 14 def create_for klass object = klass.create( @params ) return Response.ok if object.valid? Response.unprocessable_entity_for object.errors.full_messages end
delete_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 64 def delete_for klass object = klass.find( @url_params[ :id ]) if object.nil? Log.info "#{ __method__ } #{ klass } could not delete id #{ @url_params[ :id ]}" else object.delete end Response.ok end
edit_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 41 def edit_for klass id = @url_params[ :id ] attributes = klass.find( id ).attributes submit_method = "putObject('#{ klass.to_s.downcase }', '#{ id }')" data = { id:id, instance:attributes, submit_method:submit_method, header:"Edit #{ klass }" } Response.ok_for render( klass.to_s.downcase, :form, data ) end
get_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 22 def get_for klass instances = klass.all .map( &:attributes ) .sort_by{| instance | instance[ :display_name ]} fields = klass.new.editable_fields count = instances.count data = { fields:fields, instances:instances, count:count } Response.ok_for render( klass.to_s.downcase, :all, data ) end
new_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 2 def new_for klass fields = klass.new.editable_fields attributes = Hash[ *fields.map{| f | [ f.to_sym, '' ]}.flatten ] submit_method = "postObject('#{ klass.to_s.downcase }')" data = { instance:attributes , submit_method:submit_method , header:"Create New #{ klass }" } Response.ok_for render( klass.to_s.downcase, :form, data ) end
put_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 54 def put_for klass instance = klass.find( @url_params[ :id ]) if instance.update_attributes( @params ) return Response.ok end Response.unprocessable_entity_for instance.errors.full_messages end
show_for(klass)
click to toggle source
# File lib/rack/requests/crud.rb, line 33 def show_for klass attributes = klass.find( @url_params[ :id ]).attributes data = { id:attributes[ '_id' ], instance:attributes } Response.ok_for render( klass.to_s.downcase, :show, data ) end