Sha256: 6b736820e1aa34f07bdd0938d6f581de35f269b85a761cae18779f152306d793

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 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
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mushikago-sdk-0.3.7 lib/mushikago/http/response.rb
mushikago-sdk-0.3.6 lib/mushikago/http/response.rb
mushikago-sdk-0.3.5 lib/mushikago/http/response.rb