Sha256: f63bf16bc58468a9b7b67cdfe59a10e0e4c9fa534f64908c97abc1af334676b8

Contents?: true

Size: 1.05 KB

Versions: 30

Compression:

Stored size: 1.05 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
      {
        :code => code,
        :description => description,
        :metadata => metadata
      }
    end

  end

end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
apipie-rails-0.9.1 lib/apipie/error_description.rb
apipie-rails-0.9.0 lib/apipie/error_description.rb
apipie-rails-0.8.2 lib/apipie/error_description.rb
apipie-rails-0.8.1 lib/apipie/error_description.rb
apipie-rails-0.8.0 lib/apipie/error_description.rb
apipie-rails-0.7.2 lib/apipie/error_description.rb
apipie-rails-0.7.1 lib/apipie/error_description.rb
apipie-rails-0.7.0 lib/apipie/error_description.rb
apipie-rails-0.6.0 lib/apipie/error_description.rb
apipie-rails-0.5.20 lib/apipie/error_description.rb
apipie-rails-0.5.19 lib/apipie/error_description.rb
apipie-rails-0.5.18 lib/apipie/error_description.rb
apipie-rails-0.5.17 lib/apipie/error_description.rb
apipie-rails-0.5.16 lib/apipie/error_description.rb
apipierails3-0.0.1 lib/apipie/error_description.rb
apipie-rails-0.5.15 lib/apipie/error_description.rb
apipie-rails-0.5.14 lib/apipie/error_description.rb
apipie-rails-0.5.13 lib/apipie/error_description.rb
apipie-rails-0.5.12 lib/apipie/error_description.rb
apipie-rails-0.5.11 lib/apipie/error_description.rb