http-exceptions_parser 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d28f6cb6e74f627e8afa1e1b695214be05095c4e
4
+ data.tar.gz: fa13a8600c304fd00ac0fec70d504edf44a1c524
5
+ SHA512:
6
+ metadata.gz: da3011227c3573256da65ee6dd70724df2c5e9d172248650b4ac9447470221824f84fd91b7836a3fea2483ece443f89ba09300be7007596437f7ac70fdd0023d
7
+ data.tar.gz: 9ab4be0041421003247238a9ea54ab6e801db041751d5087a136a087f0f90083c09d33322a0a102aa0ac6f1b49e0432f2ca46f26c4368666035b0bb43015d248
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /.byebug_history
4
+ /Gemfile.lock
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ /http-exceptions_parser-*.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1 @@
1
+ 2.3.1
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ before_install: gem install bundler -v 1.13.2
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,41 @@
1
+ # Http::ExceptionsParser
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/http-exceptions_parser.svg)](https://rubygems.org/gems/http-exceptions_parser)
4
+
5
+ Parser that parses the exception message returned from the exception message returned from the [Http::Exceptions](https://github.com/rainforestapp/http-exceptions) gem.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'http-exceptions_parser'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install http-exceptions_parser
20
+
21
+ ## Usage
22
+
23
+ Add the following to your ruby program:
24
+
25
+ require 'http/exceptions_parser'
26
+
27
+ Now parse the message returned from HttpExceptions
28
+
29
+ msg = "An error as occured while processing response. Status 404\nNot Found"
30
+ e = Http::ExceptionsParser.new(msg)
31
+ e.response.code
32
+ e.response.body
33
+ e.original_exception
34
+
35
+ ## Contributing
36
+
37
+ 1. Fork it
38
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
39
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
40
+ 4. Push to the branch (`git push origin my-new-feature`)
41
+ 5. Create new Pull Request
@@ -0,0 +1,8 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ begin
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task default: :spec
7
+ rescue LoadError
8
+ end
@@ -0,0 +1,36 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'http/exceptions_parser/version'
5
+ require 'time'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'http-exceptions_parser'
9
+ s.version = Http::ExceptionsParser::VERSION
10
+ s.date = Date.today.to_s
11
+ s.authors = ['Kobus Joubert']
12
+ s.email = ['kobus@translate3d.com']
13
+ s.license = 'MIT'
14
+
15
+ s.summary = %q{http-exceptions message parser}
16
+ s.description = %q{Parses the exception message returned from the http-exceptions gem.}
17
+ s.homepage = "http://rubygems.org/gems/http-exceptions_parser"
18
+
19
+ if s.respond_to?(:metadata)
20
+ s.metadata['allowed_push_host'] = 'https://rubygems.org'
21
+ else
22
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
23
+ end
24
+
25
+ s.required_ruby_version = '>= 2.3.0'
26
+
27
+ s.add_development_dependency 'bundler', '~> 1.13'
28
+ s.add_development_dependency 'rspec', '~> 3.4'
29
+ s.add_development_dependency 'rake', '~> 10.0'
30
+
31
+ s.files = `git ls-files -z`.split("\x0").reject do |f|
32
+ f.match(%r{^(test|spec|features)/})
33
+ end
34
+
35
+ s.require_paths = ['lib']
36
+ end
@@ -0,0 +1,14 @@
1
+ require 'ostruct'
2
+
3
+ require 'http/exceptions_parser/version'
4
+ require 'http/exceptions_parser/parser'
5
+
6
+ module Http
7
+ module ExceptionsParser
8
+ class << self
9
+ def new(msg)
10
+ Parser.new(msg)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ module Http
2
+ module ExceptionsParser
3
+ class Parser
4
+ attr_reader :response, :original_exception
5
+
6
+ def initialize(msg)
7
+ msg = msg.to_s
8
+ msg_code = /Status (\d{1,})/.match(msg)
9
+ msg_body = /\n(.*)( Original Exception: )/.match(msg)
10
+ msg_body = /\n(.*)/.match(msg) unless msg_body
11
+ code = msg_code[1].to_i if msg_code
12
+ body = msg_body[1] if msg_body
13
+ @response = OpenStruct.new(code: code, body: body)
14
+
15
+ original_exception = /Original Exception: (.*)/.match(msg)
16
+ @original_exception = original_exception[1] if original_exception
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,5 @@
1
+ module Http
2
+ module ExceptionsParser
3
+ VERSION = '0.1.0'
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: http-exceptions_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kobus Joubert
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-03-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.13'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.13'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description: Parses the exception message returned from the http-exceptions gem.
56
+ email:
57
+ - kobus@translate3d.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".ruby-version"
65
+ - ".travis.yml"
66
+ - Gemfile
67
+ - README.md
68
+ - Rakefile
69
+ - http-exceptions_parser.gemspec
70
+ - lib/http/exceptions_parser.rb
71
+ - lib/http/exceptions_parser/parser.rb
72
+ - lib/http/exceptions_parser/version.rb
73
+ homepage: http://rubygems.org/gems/http-exceptions_parser
74
+ licenses:
75
+ - MIT
76
+ metadata:
77
+ allowed_push_host: https://rubygems.org
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 2.3.0
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 2.5.1
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: http-exceptions message parser
98
+ test_files: []