Sha256: c3d33cb7aed93b2a82a23851edcf24db4914ce3cc2e9ab3e7b04604952462607

Contents?: true

Size: 1.09 KB

Versions: 9

Compression:

Stored size: 1.09 KB

Contents

module Apipie

  class ErrorDescription
    attr_reader :code, :description, :metadata

    def self.from_dsl_data(args)
      code_or_options, desc, options = args
      Apipie::ErrorDescription.new(code_or_options,
                                   desc,
                                   options)
    end

    def initialize(code_or_options, desc = nil, options = {})
      if code_or_options.is_a? Hash
        code_or_options.symbolize_keys!
        @code = code_or_options[:code]
        @metadata = code_or_options[:meta]
        @description = code_or_options[:desc] || code_or_options[:description]
      else
        @code = 
          if code_or_options.is_a? Symbol
            Rack::Utils::SYMBOL_TO_STATUS_CODE[code_or_options]
          else
            code_or_options
          end

        raise UnknownCode, code_or_options unless @code

        @metadata = options[:meta]
        @description = desc
      end
    end

    def to_json(lang)
      {
        :code => code,
        :description => Apipie.app.translate(description, lang),
        :metadata => metadata
      }
    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
apipie-rails-1.4.0 lib/apipie/error_description.rb
apipie-rails-1.3.0 lib/apipie/error_description.rb
apipie-rails-1.2.3 lib/apipie/error_description.rb
apipie-rails-1.2.2 lib/apipie/error_description.rb
apipie-rails-1.2.1 lib/apipie/error_description.rb
apipie-rails-1.2.0 lib/apipie/error_description.rb
apipie-rails-1.1.0 lib/apipie/error_description.rb
apipie-rails-1.0.0 lib/apipie/error_description.rb
apipie-rails-0.9.4 lib/apipie/error_description.rb