Sha256: 8a47938e8c2cc5905fc056e7af8acad6016f6f8baedf28330b84b2ad3705e906

Contents?: true

Size: 877 Bytes

Versions: 1

Compression:

Stored size: 877 Bytes

Contents

# We are using hashie-forbidden_attributes gem to prevent ActiveModel from
# raising a ForbiddenAttributesProtection exception when we mass assign
# attributes.
#
require 'hashie_forbidden_attributes'

module Gris
  module CrudHelpers
    def create(type, options = {})
      instance = type.create! options[:from]
      present instance, with: options[:with]
    end

    def update(instance, options = {})
      instance.update_attributes! options[:from]
      present instance, with: options[:with]
    end

    def delete(instance, options = {})
      instance.destroy
      present instance, with: options[:with]
    end

    def permitted_params(options = {})
      options = { include_missing: false }.merge(options)
      declared(params, options)
    end

    # extend all endpoints to include this
    Grape::Endpoint.send :include, self if defined?(Grape)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gris-0.1.1 lib/gris/grape_extensions/crud_helpers.rb