navigable-server 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3238ea73512027978b85f41e2c6c43b3af251f3290beb980356f568a8f95702
4
- data.tar.gz: 226b37a18f21fec58e6cf87492ccb9e9867371848545c38b822f51dad7b40a81
3
+ metadata.gz: c771752d4b34288dd0f2966832963e02c508cd4c5c6acdb2821c711e4d860f31
4
+ data.tar.gz: f1cc6c1f393481d756a68c07d02b126a326b672490ef3ce2c66f8d72db663134
5
5
  SHA512:
6
- metadata.gz: 5301252d54622cd12f6438f11b2e9cb5b7960833559aab0fd6fdcd61525905359a7167ac98404b3bcf0a3f7d7c579e7074dc389accdbcb93ce68a904fd2facdb
7
- data.tar.gz: 4cb4ea7f3ba6bad54a31da6535e7dc633779757f0471c9a44db64b57434a4b2217dd753e3cde52d06ee81c3743f4b2a5053d98cbaa984aff080b2ea9f1d35f1f
6
+ metadata.gz: 508ed86c09a35f38a5401fddbb48e27dfdabb034e920d3d00578ac3d88059742c9954b872fa6275c6b79e81961940759a5ffb9434f7d96f3cd65e25a62de3b9f
7
+ data.tar.gz: 179a44935ec22b2505de42cc90f10d9c4f64d9b42c88a5e6389667808365eaeb34ee0674dd495ead7e30114c6ae9a0868db4f9e9bf909b47df43a1b1811802aa
@@ -6,10 +6,12 @@ require 'navigable'
6
6
  require 'rack'
7
7
  require 'rack/accept_media_types'
8
8
  require 'rack/abstract_format'
9
- require 'rack/bodyparser'
10
9
 
11
10
  require 'navigable/server'
12
11
  require 'navigable/server/version'
12
+ require 'navigable/server/parsers/json'
13
+ require 'navigable/server/parsers/null'
14
+ require 'navigable/server/parsers/factory'
13
15
  require 'navigable/server/request'
14
16
  require 'navigable/server/response'
15
17
  require 'navigable/server/rack_adapter'
@@ -26,7 +28,6 @@ module Navigable
26
28
  def self.rack_app
27
29
  @server ||= Rack::Builder.new(Server.router) do
28
30
  use Navigable::Server::CORS::Middleware
29
- use Rack::BodyParser, :parsers => BODY_PARSERS
30
31
  use Rack::AbstractFormat
31
32
  end
32
33
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Navigable
4
+ module Server
5
+ module Parsers
6
+ class Factory
7
+ def self.build(media_type:)
8
+ case media_type
9
+ when /application\/json/
10
+ Parsers::JSON
11
+ else
12
+ Parsers::Null
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Navigable
4
+ module Server
5
+ module Parsers
6
+ class JSON
7
+ def self.parse(text)
8
+ text ? ::JSON.parse(text) : {}
9
+ rescue ::JSON::ParserError
10
+ {}
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Navigable
4
+ module Server
5
+ module Parsers
6
+ class Null
7
+ def self.parse(*args); end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -38,7 +38,19 @@ module Navigable
38
38
  end
39
39
 
40
40
  def body_params
41
- symbolize_keys(env[PARSED_BODY] || {})
41
+ symbolize_keys(parsed_body || {})
42
+ end
43
+
44
+ def parsed_body
45
+ Parsers::Factory.build(media_type: media_type).parse(body)
46
+ end
47
+
48
+ def body
49
+ @body ||= rack_request.body.read.tap { rack_request.body.rewind }
50
+ end
51
+
52
+ def media_type
53
+ rack_request.media_type
42
54
  end
43
55
 
44
56
  def url_params
@@ -54,4 +66,4 @@ module Navigable
54
66
  end
55
67
  end
56
68
  end
57
- end
69
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Navigable
4
4
  module Server
5
- VERSION = "0.7.0"
5
+ VERSION = "0.7.1"
6
6
  end
7
7
  end
@@ -29,7 +29,6 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'rack', '~> 2.2'
30
30
  spec.add_dependency 'rack-abstract-format', '~> 0.9.9'
31
31
  spec.add_dependency 'rack-accept-media-types', '~> 0.9'
32
- spec.add_dependency 'rack-bodyparser', '~> 1.0'
33
32
 
34
33
  spec.add_development_dependency "bundler", "~> 2.0"
35
34
  spec.add_development_dependency "rake", "~> 12.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: navigable-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Ridlehoover
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-12-18 00:00:00.000000000 Z
12
+ date: 2020-12-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -95,20 +95,6 @@ dependencies:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0.9'
98
- - !ruby/object:Gem::Dependency
99
- name: rack-bodyparser
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '1.0'
105
- type: :runtime
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '1.0'
112
98
  - !ruby/object:Gem::Dependency
113
99
  name: bundler
114
100
  requirement: !ruby/object:Gem::Requirement
@@ -199,6 +185,9 @@ files:
199
185
  - lib/navigable/server.rb
200
186
  - lib/navigable/server/cors.rb
201
187
  - lib/navigable/server/endpoint.rb
188
+ - lib/navigable/server/parsers/factory.rb
189
+ - lib/navigable/server/parsers/json.rb
190
+ - lib/navigable/server/parsers/null.rb
202
191
  - lib/navigable/server/rack_adapter.rb
203
192
  - lib/navigable/server/request.rb
204
193
  - lib/navigable/server/response.rb