Sha256: 58a03a7bd58ddd6584cc18b6718de7bcbf4a69537d5e9386fa935241c323a694

Contents?: true

Size: 879 Bytes

Versions: 11

Compression:

Stored size: 879 Bytes

Contents

# frozen_string_literal: true

module Shark
  class Base < JsonApiClient::Resource
    self.json_key_format = :underscored_key
    self.connection_class = Shark::Client::Connection
    self.connection_options = {
      headers: {
        'Content-Type' => 'application/vnd.api+json',
        'Accept' => 'application/vnd.api+json',
        'X-Forwarded-Proto' => 'https'
      }
    }

    class << self
      def add_datetime_accessors(*method_names)
        method_names.each do |name|
          # get
          define_method name do
            value = super()
            DateTime.parse(value) if value
          end

          # set
          define_method "#{name}=" do |value|
            if value.respond_to?(:iso8601)
              super(value.iso8601(0))
            else
              super(value)
            end
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
bima-shark-sdk-3.1.1 lib/shark/base.rb
bima-shark-sdk-2.5.0 lib/shark/base.rb
bima-shark-sdk-3.1.0 lib/shark/base.rb
bima-shark-sdk-3.0.0 lib/shark/base.rb
bima-shark-sdk-2.4.4 lib/shark/base.rb
bima-shark-sdk-2.4.3 lib/shark/base.rb
bima-shark-sdk-2.4.2 lib/shark/base.rb
bima-shark-sdk-2.4.1 lib/shark/base.rb
bima-shark-sdk-2.4.0 lib/shark/base.rb
bima-shark-sdk-2.3.1 lib/shark/base.rb
bima-shark-sdk-2.3.0 lib/shark/base.rb