Sha256: 9670c6d10e743f3e9124ff943afd98d412e7dc6fe0cc682d568039ad26b38a15

Contents?: true

Size: 1.27 KB

Versions: 15

Compression:

Stored size: 1.27 KB

Contents

# coding: utf-8
module Lanmao
  module Http

    class Response
      attr_accessor :service, :flow_id
      attr_accessor :http_response, :raw_body
      attr_accessor :data, :data_valid

      def initialize(params)
        self.data_valid = true

        params.each do |key, value|
          self.instance_variable_set("@#{key}", value)
        end

        self.data = {} if self.data.nil? # 默认一定要有

        unless self.data_valid
          self.data[:code] = 'sign_valid_fail'
          self.data[:msg] = '数据签名错误'
        end

      end

      def [] key
        instance_variable_get("#{key}")
      end

      def to_s
        arr = ["{"]
        self.instance_variables.map{ |value|
          arr << "\t#{value.to_s} => #{self[value.to_sym]}"
        }
        arr << ["}"]
        arr.join("\n")
      end

      def http_success?
        http_response && /^2/ =~ http_response.code.to_s
      end

      def http_fail?
        # 而 400 错误一般都是地址不存在或者没有权限,都当成错误处理
        http_response && http_response.code.to_s == '404'
      end

      def http_pending?
        # nil 的时候是超时,非 404 的其他错误都是 pending
        http_response.nil? || (!http_success? && !http_fail?)
      end
    end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
lanmao-0.16.0 lib/lanmao/http/response.rb
lanmao-0.15.0 lib/lanmao/http/response.rb
lanmao-0.14.0 lib/lanmao/http/response.rb
lanmao-0.13.0 lib/lanmao/http/response.rb
lanmao-0.12.0 lib/lanmao/http/response.rb
lanmao-0.11.0 lib/lanmao/http/response.rb
lanmao-0.10.0 lib/lanmao/http/response.rb
lanmao-0.9.1 lib/lanmao/http/response.rb
lanmao-0.8.0 lib/lanmao/http/response.rb
lanmao-0.7.0 lib/lanmao/http/response.rb
lanmao-0.6.0 lib/lanmao/http/response.rb
lanmao-0.5.0 lib/lanmao/http/response.rb
lanmao-0.4.0 lib/lanmao/http/response.rb
lanmao-0.2.0 lib/lanmao/http/response.rb
lanmao-0.1.0 lib/lanmao/http/response.rb