problem_detail 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1c48d34bd23a4fac2967fb379aaf9caba102022b
4
+ data.tar.gz: 9434a0365304cc2ea66c6f9bf5ce02ed10316204
5
+ SHA512:
6
+ metadata.gz: d2a19c79d47240d77dc6eac7c5e85116006c43e34cda3e50c8f02bc75a15dd18517c4a724394faad44663e5e615b475a66eca296a4a3d98231fb34881f6b186c
7
+ data.tar.gz: 8b665ed9b61522a38027f7203a0903027d343b3ae38632f180747a3767a83c5ff19bc5056dbf0707bcb8d767f3a49ae85fe608ff06f738e7cf1eb37e4d2dac59
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ �s`�U%�I2[���}u��/ NM�p��[�����۷N�������7!*B�]?ݞ!5`i|�}�������<!�(��qu���2'|8T����֮�7d2|rEcq�s�J���-�b�h�/W@}d?��ي&v�!k���c�l�V^�+�]���0�k��SʳB�
2
+ ����!�Ci4ܡ ]*�|�O˔���8:v'#��ׂ̈��Q����NE򗁧sj�f��^��/���%G�P��ۧTɷ��Ց�t�儂�
data.tar.gz.sig ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ sudo: false
3
+ cache: bundler
4
+ script: 'bundle exec rake test:coverage --trace'
5
+ before_install:
6
+ - gem install bundler
7
+ rvm:
8
+ - 2.2
9
+ - ruby-head
10
+ - jruby
11
+ - jruby-head
12
+ - rbx-2
13
+ matrix:
14
+ allow_failures:
15
+ - rvm: rbx-2
16
+ - rvm: jruby-head
17
+ - rvm: ruby-head
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at contact@cyril.email. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Cyril Wack
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # Problem Detail
2
+
3
+ [![Build Status](https://travis-ci.org/cyril/problem_detail.rb.svg?branch=master)][travis]
4
+ [![Code Climate](https://codeclimate.com/github/cyril/problem_detail.rb/badges/gpa.svg)][codeclimate]
5
+ [![Dependency Status](https://gemnasium.com/cyril/problem_detail.rb.svg)][gemnasium]
6
+ [![Gem Version](https://badge.fury.io/rb/problem_detail.rb.svg)][gem]
7
+ [![Inline docs](http://inch-ci.org/github/cyril/problem_detail.rb.svg?branch=master)][inchpages]
8
+ [![Documentation](http://img.shields.io/:yard-docs-38c800.svg)][rubydoc]
9
+ [![Gitter](https://badges.gitter.im/Join%20Chat.svg)][gitter]
10
+
11
+ > Problem Details for HTTP APIs.
12
+
13
+ A structure to define a *problem detail* as a way to carry machine-readable details of errors in a HTTP response, to avoid the need to define new error response formats for HTTP APIs.
14
+
15
+ To read more: [Indicating Problems in HTTP APIs](http://www.mnot.net/blog/2013/05/15/http_problem).
16
+
17
+ Supported version: [draft-nottingham-http-problem-07](https://www.ietf.org/archive/id/draft-nottingham-http-problem-07.txt).
18
+
19
+ ## Rubies
20
+
21
+ * [MRI](https://www.ruby-lang.org/)
22
+ * [Rubinius](http://rubini.us/)
23
+ * [JRuby](http://jruby.org/)
24
+
25
+ ## Installation
26
+
27
+ __ProblemDetail__ is cryptographically signed.
28
+
29
+ To be sure the gem you install hasn't been tampered with, add my public key (if you haven't already) as a trusted certificate:
30
+
31
+ $ gem cert --add <(curl -Ls https://raw.github.com/cyril/problem_detail.rb/master/certs/gem-cyril-public_cert.pem)
32
+ $ gem install problem_detail -P HighSecurity
33
+
34
+ The `HighSecurity` trust profile will verify all gems. All of __ProblemDetail__'s dependencies are signed.
35
+
36
+ Or add this line to your application's Gemfile:
37
+
38
+ ```ruby
39
+ gem 'problem_detail'
40
+ ```
41
+
42
+ And then execute:
43
+
44
+ $ bundle
45
+
46
+ ## Usage
47
+
48
+ ```ruby
49
+ http_pb = ProblemDetail::Document.new(
50
+ type: 'http://example.com/probs/out-of-credit',
51
+ title: 'You do not have enough credit.',
52
+ detail: 'Your current balance is 30, but that costs 50.',
53
+ instance: 'http://example.net/account/12345/msgs/abc',
54
+ balance: 30,
55
+ accounts: [
56
+ 'http://example.net/account/12345',
57
+ 'http://example.net/account/67890'
58
+ ]
59
+ )
60
+
61
+ http_pb.type # => #<URI::HTTP http://example.com/probs/out-of-credit>
62
+ http_pb.to_h # => {:balance=>30, :accounts=>["http://example.net/account/12345", "http://example.net/account/67890"], :detail=>"Your current balance is 30, but that costs 50.", :instance=>#<URI::HTTP http://example.net/account/12345/msgs/abc>, :title=>"You do not have enough credit.", :type=>#<URI::HTTP http://example.com/probs/out-of-credit>}
63
+ ```
64
+
65
+ ## Security
66
+
67
+ As a basic form of security __ProblemDetail__ provides a set of SHA512 checksums for
68
+ every Gem release. These checksums can be found in the `checksum/` directory.
69
+ Although these checksums do not prevent malicious users from tampering with a
70
+ built Gem they can be used for basic integrity verification purposes.
71
+
72
+ The checksum of a file can be checked using the `sha512sum` command. For
73
+ example:
74
+
75
+ $ sha512sum pkg/problem_detail-0.0.1.gem
76
+ d12d7d9c2a4fdfe075cbb7a141fa5f2195175891e4098c7e1a28c8bca655ab44fb9d67b6a2e3991d0f852026c5e4537fdf7e314575c68d1c80b3a4b1eb1c041f pkg/problem_detail-0.0.1.gem
77
+
78
+ ## Versioning
79
+
80
+ __ProblemDetail__ follows [Semantic Versioning 2.0](http://semver.org/).
81
+
82
+ ## Contributing
83
+
84
+ 1. [Fork it](https://github.com/cyril/problem_detail.rb/fork)
85
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
86
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
87
+ 4. Push to the branch (`git push origin my-new-feature`)
88
+ 5. Create a new Pull Request
89
+
90
+ ## License
91
+
92
+ See `LICENSE.md` file.
93
+
94
+ [gem]: https://rubygems.org/gems/problem_detail
95
+ [travis]: https://travis-ci.org/cyril/problem_detail.rb
96
+ [codeclimate]: https://codeclimate.com/github/cyril/problem_detail.rb
97
+ [gemnasium]: https://gemnasium.com/cyril/problem_detail.rb
98
+ [inchpages]: http://inch-ci.org/github/cyril/problem_detail.rb
99
+ [rubydoc]: http://rubydoc.info/gems/problem_detail/frames
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+ require 'rubocop/rake_task'
4
+
5
+ RuboCop::RakeTask.new
6
+
7
+ Rake::TestTask.new do |t|
8
+ t.verbose = true
9
+ t.warning = true
10
+ t.pattern = File.join('test', '**', '*_fix.rb')
11
+ end
12
+
13
+ namespace :test do
14
+ task :coverage do
15
+ ENV['COVERAGE'] = 'true'
16
+ Rake::Task['test'].invoke
17
+ end
18
+ end
19
+
20
+ task(:doc_stats) { ruby '-S yard stats' }
21
+ task default: [:test, :doc_stats, :rubocop]
data/VERSION.semver ADDED
@@ -0,0 +1 @@
1
+ 0.0.7
data/bin/console ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'problem_detail'
5
+
6
+ require 'irb'
7
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdjb250
3
+ YWN0MRUwEwYKCZImiZPyLGQBGRYFY3lyaWwxFTATBgoJkiaJk/IsZAEZFgVlbWFp
4
+ bDAeFw0xNTA3MzExMjExMDZaFw0xNjA3MzAxMjExMDZaMEAxEDAOBgNVBAMMB2Nv
5
+ bnRhY3QxFTATBgoJkiaJk/IsZAEZFgVjeXJpbDEVMBMGCgmSJomT8ixkARkWBWVt
6
+ YWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6hUEYoxnn1mtoaiK
7
+ NiwjzVPqPgQCR9ZeYdWjLJ3UUG2h5Q6awJCnbaGr8LGGcKtveCDbOJRjtdKNuOTH
8
+ O2FLTkf46nrMGiF+6/j//qh8o0EQHBRKIVMYkxZxZe4Fcqtdf1bWNMZuXeyoDjdt
9
+ 4yiGfizbbTOu0gBf7Yrsv5DsL0a5CU/We7zxMfgGXCVb9PYkD+OWUMcTARYDKfYa
10
+ nN9ECI7CFm/yXcsof/eIQA5EmJNmQnhx8B+8L6jDqQeSUAUrBZnC9CdloKOoqmEL
11
+ weqM2g6LM932Ba74rEl4QlFRYDcs8kjr71UcvseHRCUkFr36j26OU8+gKelsTNdO
12
+ 7OZNKQIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
13
+ LSJTN9h29D6bqOhp+vyvhyM0AF4wHgYDVR0RBBcwFYETY29udGFjdEBjeXJpbC5l
14
+ bWFpbDAeBgNVHRIEFzAVgRNjb250YWN0QGN5cmlsLmVtYWlsMA0GCSqGSIb3DQEB
15
+ BQUAA4IBAQArqCC1rUyGJlF0DF9ZhUOgggyROvO0/WroSI5zWgzdB8EU7RJpsDIV
16
+ caGnpji7h0rQIGWQuJ6TL2fTFLfeGRFdIzRZwWC7TeXhcXngJHZxSjDBt2OpfM8A
17
+ P5eElSQS9iJCetBGGMyt354PfgZkg3URaC+JA6mdEisdtEdo64ElnMsLg9shCqye
18
+ JSR3BbejbyPVva0/MHKD+dR6RswlcM9KMiYOXQml7a/kH6huOHvVq9gj5xC2ih8W
19
+ dzJvWzQ1+dJU6WQv75E9ddSkaQrK3nhdgQVu+/wgvGSrsMvOGNz+LXaSDxQqZuwX
20
+ 0KNQFuIukfrdk8URwRnHoAnvx4U93iUw
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,78 @@
1
+ require 'uri'
2
+
3
+ # A parser and emitter for Problem Details for HTTP APIs.
4
+ # Version: https://www.ietf.org/archive/id/draft-nottingham-http-problem-07.txt
5
+ module ProblemDetail
6
+ # This document defines a "problem detail" as a way to carry machine-readable
7
+ # details of errors in a HTTP response, to avoid the need to define new error
8
+ # response formats for HTTP APIs.
9
+ class Document
10
+ # A problem details object can have some members.
11
+ #
12
+ # @param title [#to_s] A short, human-readable summary of the problem type.
13
+ # It SHOULD NOT change from occurrence to occurrence of the problem,
14
+ # except for purposes of localisation (e.g., using proactive content
15
+ # negotiation).
16
+ # @param type [#to_s, nil] A URI reference that identifies the problem type.
17
+ # When dereferenced, it is encouraged to provide human-readable
18
+ # documentation for the problem type (e.g., using HTML. When this member
19
+ # is not present, its value is assumed to be "about:blank".
20
+ # @param options [Hash] Extend the problem details with additional members
21
+ # such as:
22
+ # * status: the HTTP status code generated by the origin server for this
23
+ # occurrence of the problem;
24
+ # * detail: an human readable explanation specific to this occurrence of
25
+ # the problem;
26
+ # * instance: a URI reference that identifies the specific occurrence of
27
+ # the problem.
28
+ def initialize(title:, type: 'about:blank', **options)
29
+ @title = title.to_s
30
+ @type = URI(type.to_s)
31
+ @options = options
32
+ end
33
+
34
+ # @!attribute [r] title
35
+ #
36
+ # @return [String] A short, human-readable summary of the problem type.
37
+ attr_reader :title
38
+
39
+ # @!attribute [r] type
40
+ #
41
+ # @return [URI] A URI reference that identifies the problem type.
42
+ attr_reader :type
43
+
44
+ # @return [Fixnum, nil] The HTTP status code generated by the origin server.
45
+ def status
46
+ @options[:status].to_i unless @options[:status].nil?
47
+ end
48
+
49
+ # @return [String, nil] An human readable explanation.
50
+ def detail
51
+ @options[:detail].to_s unless @options[:detail].nil?
52
+ end
53
+
54
+ # @return [URI, nil] The specific occurrence of the problem.
55
+ def instance
56
+ URI(@options[:instance].to_s) unless @options[:instance].nil?
57
+ end
58
+
59
+ # @return [Hash] Additional members.
60
+ def options
61
+ @options.reject { |k, _v| %i(status detail instance).include?(k) }
62
+ end
63
+
64
+ # Properties of the result.
65
+ #
66
+ # @return [Hash] The properties of the result.
67
+ def to_h
68
+ options.merge({
69
+ status: status,
70
+ detail: detail,
71
+ instance: instance
72
+ }.reject { |_k, v| v.nil? }).merge(
73
+ title: title,
74
+ type: type
75
+ )
76
+ end
77
+ end
78
+ end
data/pkg_checksum ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'digest/sha2'
4
+
5
+ gemname = 'problem_detail'.to_sym
6
+ ARGV[0] = File.read('VERSION.semver').chomp if ARGV[0].nil?
7
+ built_gem_path = "pkg/#{gemname}-#{ARGV[0]}.gem"
8
+ checksum = Digest::SHA512.new.hexdigest(File.read(built_gem_path))
9
+ checksum_path = "checksum/#{gemname}-#{ARGV[0]}.gem.sha512"
10
+
11
+ File.open(checksum_path, 'w') { |f| f.write("#{checksum}\n") }
@@ -0,0 +1,31 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'problem_detail'
3
+ spec.version = File.read('VERSION.semver').chomp
4
+ spec.authors = ['Cyril Wack']
5
+ spec.email = ['contact@cyril.email']
6
+
7
+ spec.summary = 'Problem Details for HTTP APIs.'
8
+ spec.description = 'A "problem detail" as a way to carry machine-readable' \
9
+ ' details of errors in a HTTP response, to avoid the' \
10
+ ' need to define new error response formats for HTTP' \
11
+ ' APIs.'
12
+ spec.homepage = 'https://github.com/cyril/problem_detail.rb'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files =
16
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^test/}) }
17
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_dependency 'fix', '~> 0.17.0'
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.10'
23
+ spec.add_development_dependency 'rake', '~> 10.4'
24
+ spec.add_development_dependency 'yard', '~> 0.8'
25
+ spec.add_development_dependency 'simplecov', '~> 0.10'
26
+ spec.add_development_dependency 'rubocop', '~> 0.35'
27
+
28
+ spec.cert_chain = ['certs/gem-cyril-public_cert.pem']
29
+ private_key = File.expand_path('~/.ssh/gem-cyril-private_key.pem')
30
+ spec.signing_key = private_key if File.exist?(private_key)
31
+ end
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: problem_detail
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Cyril Wack
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdjb250
14
+ YWN0MRUwEwYKCZImiZPyLGQBGRYFY3lyaWwxFTATBgoJkiaJk/IsZAEZFgVlbWFp
15
+ bDAeFw0xNTA3MzExMjExMDZaFw0xNjA3MzAxMjExMDZaMEAxEDAOBgNVBAMMB2Nv
16
+ bnRhY3QxFTATBgoJkiaJk/IsZAEZFgVjeXJpbDEVMBMGCgmSJomT8ixkARkWBWVt
17
+ YWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6hUEYoxnn1mtoaiK
18
+ NiwjzVPqPgQCR9ZeYdWjLJ3UUG2h5Q6awJCnbaGr8LGGcKtveCDbOJRjtdKNuOTH
19
+ O2FLTkf46nrMGiF+6/j//qh8o0EQHBRKIVMYkxZxZe4Fcqtdf1bWNMZuXeyoDjdt
20
+ 4yiGfizbbTOu0gBf7Yrsv5DsL0a5CU/We7zxMfgGXCVb9PYkD+OWUMcTARYDKfYa
21
+ nN9ECI7CFm/yXcsof/eIQA5EmJNmQnhx8B+8L6jDqQeSUAUrBZnC9CdloKOoqmEL
22
+ weqM2g6LM932Ba74rEl4QlFRYDcs8kjr71UcvseHRCUkFr36j26OU8+gKelsTNdO
23
+ 7OZNKQIDAQABo3kwdzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU
24
+ LSJTN9h29D6bqOhp+vyvhyM0AF4wHgYDVR0RBBcwFYETY29udGFjdEBjeXJpbC5l
25
+ bWFpbDAeBgNVHRIEFzAVgRNjb250YWN0QGN5cmlsLmVtYWlsMA0GCSqGSIb3DQEB
26
+ BQUAA4IBAQArqCC1rUyGJlF0DF9ZhUOgggyROvO0/WroSI5zWgzdB8EU7RJpsDIV
27
+ caGnpji7h0rQIGWQuJ6TL2fTFLfeGRFdIzRZwWC7TeXhcXngJHZxSjDBt2OpfM8A
28
+ P5eElSQS9iJCetBGGMyt354PfgZkg3URaC+JA6mdEisdtEdo64ElnMsLg9shCqye
29
+ JSR3BbejbyPVva0/MHKD+dR6RswlcM9KMiYOXQml7a/kH6huOHvVq9gj5xC2ih8W
30
+ dzJvWzQ1+dJU6WQv75E9ddSkaQrK3nhdgQVu+/wgvGSrsMvOGNz+LXaSDxQqZuwX
31
+ 0KNQFuIukfrdk8URwRnHoAnvx4U93iUw
32
+ -----END CERTIFICATE-----
33
+ date: 2015-12-18 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: fix
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 0.17.0
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.17.0
49
+ - !ruby/object:Gem::Dependency
50
+ name: bundler
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.10'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.10'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.4'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '10.4'
77
+ - !ruby/object:Gem::Dependency
78
+ name: yard
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.8'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.8'
91
+ - !ruby/object:Gem::Dependency
92
+ name: simplecov
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.10'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.10'
105
+ - !ruby/object:Gem::Dependency
106
+ name: rubocop
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.35'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.35'
119
+ description: A "problem detail" as a way to carry machine-readable details of errors
120
+ in a HTTP response, to avoid the need to define new error response formats for HTTP
121
+ APIs.
122
+ email:
123
+ - contact@cyril.email
124
+ executables: []
125
+ extensions: []
126
+ extra_rdoc_files: []
127
+ files:
128
+ - ".gitignore"
129
+ - ".travis.yml"
130
+ - CODE_OF_CONDUCT.md
131
+ - Gemfile
132
+ - LICENSE.md
133
+ - README.md
134
+ - Rakefile
135
+ - VERSION.semver
136
+ - bin/console
137
+ - bin/setup
138
+ - certs/gem-cyril-public_cert.pem
139
+ - lib/problem_detail.rb
140
+ - pkg_checksum
141
+ - problem_detail.gemspec
142
+ homepage: https://github.com/cyril/problem_detail.rb
143
+ licenses:
144
+ - MIT
145
+ metadata: {}
146
+ post_install_message:
147
+ rdoc_options: []
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubyforge_project:
162
+ rubygems_version: 2.4.5.1
163
+ signing_key:
164
+ specification_version: 4
165
+ summary: Problem Details for HTTP APIs.
166
+ test_files: []
167
+ has_rdoc:
metadata.gz.sig ADDED
Binary file