Sha256: 748b2db8a5b00965f678ecfed7bab9dd418dc7aad7cc55c73280d4c30d06e0eb

Contents?: true

Size: 1023 Bytes

Versions: 2

Compression:

Stored size: 1023 Bytes

Contents

require "ribose/actions/base"

module Ribose
  module Actions
    module Create
      extend Ribose::Actions::Base

      def create
        create_resource[resource]
      end

      private

      # Attribute validations
      #
      # This method will be invoked by the create action to validate the
      # attributes before submitting to the actual endpoint. We can override
      # this one to validate user provider attributes.
      #
      def validate(attributes)
        attributes
      end

      def request_body(attributes)
        custom_option.merge(resource_key.to_sym => validate(attributes))
      end

      def create_resource
        Ribose::Request.post(resources_path, request_body(attributes))
      end

      module ClassMethods
        # Create resource
        #
        # @param attributes [Hash] Resoruce attributes
        # @return [Sawyer::Resource] Newly created resource
        #
        def create(attributes)
          new(attributes).create
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ribose-0.3.0 lib/ribose/actions/create.rb
ribose-0.2.0 lib/ribose/actions/create.rb