nut 0.1.10 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c841b20b0df09d5e161d2a5e4738a12de945111
4
- data.tar.gz: 6c4cb93c825327bc141bde1f76dae63b9d0531e5
3
+ metadata.gz: 19def3f8c723375cf6a2710b6d6dc1fdd5ce0e5b
4
+ data.tar.gz: d70138e71b04c33cae1bab25ca8c771157e17aaf
5
5
  SHA512:
6
- metadata.gz: e68c90b01d6e3e413973a7ed48f1efccb01cf84ecf7ca41442c91292100ac6098fdef2f8668a3c684e270d583a0eb3f21f4dc653d82660a35bf368b74e636449
7
- data.tar.gz: c4c8e8e837a4c64159d19500a020cea6549cb6628633caf35653e037f9bb56fa8cfe5e59dfa1d57db44db0eb5fa7e371aa5a7634d59cfeef4687b6b0e96cdff8
6
+ metadata.gz: 6945558f671b19235c41f31ea5ead0099655f3cd265e71c50d87a83ee05d86c019fab9b372fd314833e8361d3f396f4d10100d21e65255e405b1e653ef4f3092
7
+ data.tar.gz: 5187aa6fba2b0e888956c2ef2876d98d5b2e3aec2ac0e65f9ec1ca9216d8fea86ddd5af8c919d601208300203e6f81fb503aaeb0f7f034da00ec7326a6f73a5c
data/lib/nut/codes.rb CHANGED
@@ -15,6 +15,7 @@ module Nut
15
15
 
16
16
  # HTTP Response Codes
17
17
  CODES = {
18
+ 100 => 'Continue',
18
19
  200 => 'OK',
19
20
  301 => 'Moved',
20
21
  302 => 'Found',
data/lib/nut/request.rb CHANGED
@@ -16,6 +16,9 @@ module Nut
16
16
  # Multipart Field Regex
17
17
  MULTIPART_FIELD_REX = /^([^=]+)=(.+)$/
18
18
 
19
+ # Expect: 100-continue
20
+ EXPECT_CONTINUE_REX = /100.continue/i
21
+
19
22
  # Pull Request Details:
20
23
  # Extracts any possible Form Data and extended Request details from a Request Hash.
21
24
  # @param [Hash] req Request Hash
@@ -121,6 +124,9 @@ module Nut
121
124
 
122
125
  # Acquire Clean Content-Type
123
126
  creq[:ctype] = CTYPE_REX.match(creq[:headz][:content_type]).try :[], 0
127
+
128
+ # Respond to 100-continue Requests
129
+ Nut::Handler.write creq[:client], "HTTP/1.1 100 Continue\r\n\r\n" if EXPECT_CONTINUE_REX =~ creq[:headz][:expect]
124
130
  end
125
131
  end
126
132
 
data/lib/nut/response.rb CHANGED
@@ -26,9 +26,13 @@ module Nut
26
26
  # Set Response Code
27
27
  response[:code] ||= 200
28
28
 
29
+ # Ensure Body is present
30
+ response[:body] = '0' unless response[:body].nstr
31
+ response[:type] = 'text/plain'
32
+
29
33
  # Determine Content-Type
30
34
  response[:type] = TYPE_SYMBOLS[response[:type]] if response[:type].is_a? Symbol
31
- response[:type] ||= Typor.data response[:body]
35
+ response[:type] ||= Typor.data(response[:body]) || 'text/html'
32
36
 
33
37
  # Prepare Headers
34
38
  response[:headers] = {
data/lib/nut/version.rb CHANGED
@@ -5,5 +5,5 @@
5
5
  module Nut
6
6
 
7
7
  # Version
8
- VERSION = '0.1.10'
8
+ VERSION = '1.0.0'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nut
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eresse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-01 00:00:00.000000000 Z
11
+ date: 2017-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler