Sha256: 54d2756f17b9d11af5ad44efb082767937a7842cd09777c7453be1b304c60532

Contents?: true

Size: 1.59 KB

Versions: 12

Compression:

Stored size: 1.59 KB

Contents

# -*- coding: utf-8 -*-
module Mushikago
  module Http
    # Mushikagoサービスのレスポンスを扱うクラス
    # Mushikagoサービスのレスポンスは以下のような構造になっている
    #   {
    #     meta : {
    #       status : 200,
    #       message : 'OK'
    #     },
    #     response : {
    #       // サービス毎に異なる情報
    #     }
    #   }
    #
    class Response
      # @return [Object] レスポンスのメタ情報
      attr_reader :meta
      # @return [Object] レスポンスの本体
      attr_reader :response
      
      # @param [Hash] options オプション
      # @option options [Object] :meta レスポンスのメタ情報
      # @option options [Object] :response レスポンスの本体
      def initialize options={}
        @meta = options[:meta] || options['meta']
        @response = options[:response] || options['response']
      end

      # メタ情報中のstatusを返す
      # @return [Integer] ステータス
      def status
        meta[:status].to_i
      end

      # メタ情報中のmessageを返す
      # @return [String] メッセージ
      def message
        meta[:message]
      end

      # レスポンスの各要素にアクセスする
      # @param [Symbol] key レスポンスの各要素へのキー
      # @return [Object] レスポンスの要素
      def [] key
        response[key]
      end

      def []= key, value
        response[key] = value
      end

      def to_s
        {
          '@meta' => meta,
          '@response' => response
        }.to_json
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mushikago-sdk-2.4.3 lib//mushikago/http/response.rb
mushikago-sdk-2.4.2 lib//mushikago/http/response.rb
mushikago-sdk-2.4.1 lib/mushikago/http/response.rb
mushikago-sdk-2.4 lib/mushikago/http/response.rb
mushikago-sdk-2.2 lib//mushikago/http/response.rb
mushikago-sdk-2.1.1 lib/mushikago/http/response.rb
mushikago-sdk-2.1.0 lib/mushikago/http/response.rb
mushikago-sdk-2.0.0 lib/mushikago/http/response.rb
mushikago-sdk-0.4.3 lib/mushikago/http/response.rb
mushikago-sdk-0.4.2 lib/mushikago/http/response.rb
mushikago-sdk-0.4.1 lib/mushikago/http/response.rb
mushikago-sdk-0.4.0 lib/mushikago/http/response.rb