nut 0.1.10 → 1.0.0

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
  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