Sha256: 8671e425e9a34b673a7c1531fc3b2d39382ebe88d35023a1ceb2c60b957884c9

Contents?: true

Size: 522 Bytes

Versions: 4

Compression:

Stored size: 522 Bytes

Contents

module Moneybird
  module Traits
    module Save
      def save(resource)
        response =
          if resource.persisted?
            client.patch(resource_path(resource), resource.to_json)
          else
            client.post(resource_path(resource), resource.to_json)
          end
        resource.attributes = response
        resource
      end

      def create(attributes)
        build(attributes).tap do |resource|
          save(resource)
        end
      end

      alias update create
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
moneybird-0.10.2 lib/moneybird/traits/save.rb
moneybird-0.10.1 lib/moneybird/traits/save.rb
moneybird-0.9.9 lib/moneybird/traits/save.rb
moneybird-0.9.8 lib/moneybird/traits/save.rb