tilia-http 4.1.0.8 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,67 +9,40 @@ module Tilia
9
9
  include Tilia::Http::Message
10
10
  include Tilia::Http::RequestInterface
11
11
 
12
- protected
13
-
14
- # HTTP Method
15
- #
16
- # @return [String]
17
- attr_accessor :method
18
-
19
- # Request Url
20
- #
21
- # @return [String]
22
- attr_accessor :url
23
-
24
- public
25
-
26
12
  # Creates the request object
27
13
  #
28
14
  # @param [String] method
29
15
  # @param [String] url
30
- # @param array headers
31
- # @param resource body
16
+ # @param [Hash] headers
17
+ # @param [String, IO] body
32
18
  def initialize(method = nil, url = nil, headers = nil, body = nil)
33
- initialize_message
19
+ super()
20
+
34
21
  @base_url = '/' # RUBY
35
22
  @post_data = {}
36
23
  @raw_server_data = {}
37
24
 
38
25
  fail ArgumentError, 'The first argument for this constructor should be a string or null, not an array. Did you upgrade from sabre/http 1.0 to 2.0?' if method.is_a?(Array)
39
26
 
40
- self.method = method if method
41
- self.url = url if url
27
+ @method = method if method
28
+ @url = url if url
42
29
  update_headers(headers) if headers
43
- self.body = body if body
30
+ @body = body if body
44
31
  end
45
32
 
46
- # Returns the current HTTP method
47
- #
48
- # @return [String]
33
+ # (see RequestInterface#method)
49
34
  attr_reader :method
50
35
 
51
- # Sets the HTTP method
52
- #
53
- # @param [String] method
54
- # @return [void]
36
+ # (see RequestInterface#method=)
55
37
  attr_writer :method
56
38
 
57
- # Returns the request url.
58
- #
59
- # @return [String]
39
+ # (see RequestInterface#url)
60
40
  attr_reader :url
61
41
 
62
- # Sets the request url.
63
- #
64
- # @param [String] url
65
- # @return [void]
42
+ # (see RequestInterface#url=)
66
43
  attr_writer :url
67
44
 
68
- # Returns the list of query parameters.
69
- #
70
- # This is equivalent to PHP's $_GET superglobal.
71
- #
72
- # @return array
45
+ # (see RequestInterface#query_parameters)
73
46
  def query_parameters
74
47
  url = self.url
75
48
 
@@ -85,54 +58,19 @@ module Tilia
85
58
  end
86
59
  end
87
60
 
88
- # Sets the absolute url.
89
- #
90
- # @param [String] url
91
- # @return [void]
61
+ # (see RequestInterface#absolute_url=)
92
62
  attr_writer :absolute_url
93
63
 
94
- # Returns the absolute url.
95
- #
96
- # @return [String]
64
+ # (see RequestInterface#absolute_url)
97
65
  attr_reader :absolute_url
98
66
 
99
- protected
100
-
101
- # Base url
102
- #
103
- # @return [String]
104
- attr_accessor :base_url
105
-
106
- public
107
-
108
- # Sets a base url.
109
- #
110
- # This url is used for relative path calculations.
111
- #
112
- # @param [String] url
113
- # @return [void]
67
+ # (see RequestInterface#base_url=)
114
68
  attr_writer :base_url
115
69
 
116
- # Returns the current base url.
117
- #
118
- # @return [String]
70
+ # (see RequestInterface#base_url)
119
71
  attr_reader :base_url
120
72
 
121
- # Returns the relative path.
122
- #
123
- # This is being calculated using the base url. This path will not start
124
- # with a slash, so it will always return something like
125
- # 'example/path.html'.
126
- #
127
- # If the full path is equal to the base url, this method will return an
128
- # empty string.
129
- #
130
- # This method will also urldecode the path, and if the url was incoded as
131
- # ISO-8859-1, it will convert it to UTF-8.
132
- #
133
- # If the path is outside of the base url, a LogicException will be thrown.
134
- #
135
- # @return [String]
73
+ # (see RequestInterface#path)
136
74
  def path
137
75
  # Removing duplicated slashes.
138
76
  uri = (url || '').gsub('//', '/')
@@ -153,56 +91,18 @@ module Tilia
153
91
  fail "Requested uri (#{url}) is out of base uri (#{base_url})"
154
92
  end
155
93
 
156
- protected
157
-
158
- # Equivalent of PHP's $_POST.
159
- #
160
- # @return array
161
- attr_accessor :post_data
162
-
163
- public
164
-
165
- # Sets the post data.
166
- #
167
- # This is equivalent to PHP's $_POST superglobal.
168
- #
169
- # This would not have been needed, if POST data was accessible as
170
- # php://input, but unfortunately we need to special case it.
171
- #
172
- # @param array post_data
173
- # @return [void]
94
+ # (see RequestInterface#post_data=)
174
95
  attr_writer :post_data
175
96
 
176
- # Returns the POST data.
177
- #
178
- # This is equivalent to PHP's $_POST superglobal.
179
- #
180
- # @return array
97
+ # (see RequestInterface#post_data)
181
98
  attr_reader :post_data
182
99
 
183
- protected
184
-
185
- # An array containing the raw _SERVER array.
186
- #
187
- # @return array
188
- attr_accessor :raw_server_data
189
-
190
- public
191
-
192
- # Returns an item from the _SERVER array.
193
- #
194
- # If the value does not exist in the array, null is returned.
195
- #
196
- # @param [String] value_name
197
- # @return [String, nil]
100
+ # (see RequestInterface#raw_server_value)
198
101
  def raw_server_value(value_name)
199
102
  @raw_server_data[value_name]
200
103
  end
201
104
 
202
- # Sets the _SERVER array.
203
- #
204
- # @param array data
205
- # @return [void]
105
+ # (see RequestInterface#raw_server_data=)
206
106
  def raw_server_data=(data)
207
107
  @raw_server_data = data.dup
208
108
  end
@@ -10,139 +10,77 @@ module Tilia
10
10
 
11
11
  # Constructor.
12
12
  #
13
- # @param RequestInterface inner
13
+ # @param [RequestInterface] inner
14
14
  def initialize(inner)
15
15
  @inner = inner
16
16
  end
17
17
 
18
- # Returns the current HTTP method
19
- #
20
- # @return [String]
18
+ # (see RequestInterface#method)
21
19
  def method
22
20
  @inner.method
23
21
  end
24
22
 
25
- # Sets the HTTP method
26
- #
27
- # @param [String] method
28
- # @return [void]
23
+ # (see RequestInterface#method=)
29
24
  def method=(method)
30
25
  @inner.method = method
31
26
  end
32
27
 
33
- # Returns the request url.
34
- #
35
- # @return [String]
28
+ # (see RequestInterface#url)
36
29
  def url
37
30
  @inner.url
38
31
  end
39
32
 
40
- # Sets the request url.
41
- #
42
- # @param [String] url
43
- # @return [void]
33
+ # (see RequestInterface#url=)
44
34
  def url=(url)
45
35
  @inner.url = url
46
36
  end
47
37
 
48
- # Returns the absolute url.
49
- #
50
- # @return [String]
38
+ # (see RequestInterface#absolute_url)
51
39
  def absolute_url
52
40
  @inner.absolute_url
53
41
  end
54
42
 
55
- # Sets the absolute url.
56
- #
57
- # @param [String] url
58
- # @return [void]
43
+ # (see RequestInterface#absolute_url=)
59
44
  def absolute_url=(url)
60
45
  @inner.absolute_url = url
61
46
  end
62
47
 
63
- # Returns the current base url.
64
- #
65
- # @return [String]
48
+ # (see RequestInterface#base_url)
66
49
  def base_url
67
50
  @inner.base_url
68
51
  end
69
52
 
70
- # Sets a base url.
71
- #
72
- # This url is used for relative path calculations.
73
- #
74
- # The base url should default to /
75
- #
76
- # @param [String] url
77
- # @return [void]
53
+ # (see RequestInterface#base_url=)
78
54
  def base_url=(url)
79
55
  @inner.base_url = url
80
56
  end
81
57
 
82
- # Returns the relative path.
83
- #
84
- # This is being calculated using the base url. This path will not start
85
- # with a slash, so it will always return something like
86
- # 'example/path.html'.
87
- #
88
- # If the full path is equal to the base url, this method will return an
89
- # empty string.
90
- #
91
- # This method will also urldecode the path, and if the url was incoded as
92
- # ISO-8859-1, it will convert it to UTF-8.
93
- #
94
- # If the path is outside of the base url, a LogicException will be thrown.
95
- #
96
- # @return [String]
58
+ # (see RequestInterface#path)
97
59
  def path
98
60
  @inner.path
99
61
  end
100
62
 
101
- # Returns the list of query parameters.
102
- #
103
- # This is equivalent to PHP's $_GET superglobal.
104
- #
105
- # @return array
63
+ # (see RequestInterface#query_parameters)
106
64
  def query_parameters
107
65
  @inner.query_parameters
108
66
  end
109
67
 
110
- # Returns the POST data.
111
- #
112
- # This is equivalent to PHP's $_POST superglobal.
113
- #
114
- # @return array
68
+ # (see RequestInterface#post_data)
115
69
  def post_data
116
70
  @inner.post_data
117
71
  end
118
72
 
119
- # Sets the post data.
120
- #
121
- # This is equivalent to PHP's $_POST superglobal.
122
- #
123
- # This would not have been needed, if POST data was accessible as
124
- # php://input, but unfortunately we need to special case it.
125
- #
126
- # @param array post_data
127
- # @return [void]
73
+ # (see RequestInterface#post_data=)
128
74
  def post_data=(post_data)
129
75
  @inner.post_data = post_data
130
76
  end
131
77
 
132
- # Returns an item from the _SERVER array.
133
- #
134
- # If the value does not exist in the array, null is returned.
135
- #
136
- # @param [String] value_name
137
- # @return [String, nil]
78
+ # (see RequestInterface#raw_server_value)
138
79
  def raw_server_value(value_name)
139
80
  @inner.raw_server_value(value_name)
140
81
  end
141
82
 
142
- # Sets the _SERVER array.
143
- #
144
- # @param array data
145
- # @return [void]
83
+ # (see RequestInterface#raw_server_data=)
146
84
  def raw_server_data=(data)
147
85
  @inner.raw_server_data = data
148
86
  end
@@ -14,7 +14,7 @@ module Tilia
14
14
  #
15
15
  # @param [String] method
16
16
  # @return [void]
17
- def method=(_method)
17
+ def method=(method)
18
18
  end
19
19
 
20
20
  # Returns the request url.
@@ -27,7 +27,7 @@ module Tilia
27
27
  #
28
28
  # @param [String] url
29
29
  # @return [void]
30
- def url=(_url)
30
+ def url=(url)
31
31
  end
32
32
 
33
33
  # Returns the absolute url.
@@ -40,7 +40,7 @@ module Tilia
40
40
  #
41
41
  # @param [String] url
42
42
  # @return [void]
43
- def absolute_url=(_url)
43
+ def absolute_url=(url)
44
44
  end
45
45
 
46
46
  # Returns the current base url.
@@ -57,7 +57,7 @@ module Tilia
57
57
  #
58
58
  # @param [String] url
59
59
  # @return [void]
60
- def base_url=(_url)
60
+ def base_url=(url)
61
61
  end
62
62
 
63
63
  # Returns the relative path.
@@ -82,7 +82,7 @@ module Tilia
82
82
  #
83
83
  # This is equivalent to PHP's $_GET superglobal.
84
84
  #
85
- # @return array
85
+ # @return [Hash]
86
86
  def query_parameters
87
87
  end
88
88
 
@@ -90,7 +90,7 @@ module Tilia
90
90
  #
91
91
  # This is equivalent to PHP's $_POST superglobal.
92
92
  #
93
- # @return array
93
+ # @return [Hash]
94
94
  def post_data
95
95
  end
96
96
 
@@ -101,9 +101,9 @@ module Tilia
101
101
  # This would not have been needed, if POST data was accessible as
102
102
  # php://input, but unfortunately we need to special case it.
103
103
  #
104
- # @param array post_data
104
+ # @param [Hash] post_data
105
105
  # @return [void]
106
- def post_data=(_post_data)
106
+ def post_data=(post_data)
107
107
  end
108
108
 
109
109
  # Returns an item from the _SERVER array.
@@ -112,14 +112,14 @@ module Tilia
112
112
  #
113
113
  # @param [String] value_name
114
114
  # @return [String, nil]
115
- def raw_server_value(_value_name)
115
+ def raw_server_value(value_name)
116
116
  end
117
117
 
118
118
  # Sets the _SERVER array.
119
119
  #
120
- # @param array data
120
+ # @param [Hash] data
121
121
  # @return [void]
122
- def raw_server_data=(_data)
122
+ def raw_server_data=(data)
123
123
  end
124
124
  end
125
125
  end
@@ -74,61 +74,31 @@ module Tilia
74
74
  }
75
75
  end
76
76
 
77
- protected
78
-
79
- # HTTP status code
80
- #
81
- # @return int
82
- attr_accessor :status
83
-
84
- # HTTP status text
85
- #
86
- # @return [String]
87
- attr_accessor :status_text
88
-
89
- public
90
-
91
77
  # Creates the response object
92
78
  #
93
79
  # @param [String, Fixnum] status
94
- # @param array headers
95
- # @param resource body
80
+ # @param [Hash] headers
81
+ # @param [String, IO] body
96
82
  # @return [void]
97
83
  def initialize(status = nil, headers = nil, body = nil)
98
- initialize_message # RUBY
84
+ super()
99
85
 
100
- self.status = status if status
86
+ self.status = status if status # Don't set @status directly!
101
87
  update_headers(headers) if headers
102
- self.body = body if body
88
+ @body = body if body
103
89
  end
104
90
 
105
- # Returns the current HTTP status code.
106
- #
107
- # @return int
91
+ # (see ResponseInterface#status)
108
92
  attr_reader :status
109
93
 
110
- # Returns the human-readable status string.
111
- #
112
- # In the case of a 200, this may for example be 'OK'.
113
- #
114
- # @return [String]
94
+ # (see ResponseInterface#status_text)
115
95
  attr_reader :status_text
116
96
 
117
- # Sets the HTTP status code.
118
- #
119
- # This can be either the full HTTP status code with human readable string,
120
- # for example: "403 I can't let you do that, Dave".
121
- #
122
- # Or just the code, in which case the appropriate default message will be
123
- # added.
124
- #
125
- # @param [String, Fixnum] status
126
- # @throws \InvalidArgumentExeption
127
- # @return [void]
97
+ # (see ResponseInterface#status=)
128
98
  def status=(status)
129
99
  if status.is_a?(Fixnum) || status =~ /^\d+$/
130
100
  status_code = status
131
- status_text = self.class.status_codes.key?(status.to_i) ? self.class.status_codes[status.to_i] : 'Unkown'
101
+ status_text = Response.status_codes.key?(status.to_i) ? Response.status_codes[status.to_i] : 'Unkown'
132
102
  else
133
103
  (
134
104
  status_code,
@@ -136,9 +106,11 @@ module Tilia
136
106
  ) = status.split(' ', 2)
137
107
  end
138
108
 
139
- fail ArgumentError, 'The HTTP status code must be exactly 3 digits' if status_code.to_i < 100 || status_code.to_i > 999
109
+ status_code = status_code.to_i unless status_code.is_a?(Fixnum)
110
+
111
+ fail ArgumentError, 'The HTTP status code must be exactly 3 digits' if status_code < 100 || status_code > 999
140
112
 
141
- @status = status_code.to_i
113
+ @status = status_code
142
114
  @status_text = status_text
143
115
  end
144
116
 
@@ -10,37 +10,22 @@ module Tilia
10
10
 
11
11
  # Constructor.
12
12
  #
13
- # @param ResponseInterface inner
13
+ # @param [ResponseInterface] inner
14
14
  def initialize(inner)
15
15
  @inner = inner
16
16
  end
17
17
 
18
- # Returns the current HTTP status code.
19
- #
20
- # @return int
18
+ # (see ResponseInterface#status)
21
19
  def status
22
20
  @inner.status
23
21
  end
24
22
 
25
- # Returns the human-readable status string.
26
- #
27
- # In the case of a 200, this may for example be 'OK'.
28
- #
29
- # @return [String]
23
+ # (see ResponseInterface#status_text)
30
24
  def status_text
31
25
  @inner.status_text
32
26
  end
33
27
 
34
- # Sets the HTTP status code.
35
- #
36
- # This can be either the full HTTP status code with human readable string,
37
- # for example: "403 I can't let you do that, Dave".
38
- #
39
- # Or just the code, in which case the appropriate default message will be
40
- # added.
41
- #
42
- # @param [String, Fixnum] status
43
- # @return [void]
28
+ # (see ResponseInterface#status=)
44
29
  def status=(status)
45
30
  @inner.status = status
46
31
  end
@@ -6,7 +6,7 @@ module Tilia
6
6
 
7
7
  # Returns the current HTTP status code.
8
8
  #
9
- # @return int
9
+ # @return [Fixnum]
10
10
  def status
11
11
  end
12
12
 
@@ -27,9 +27,9 @@ module Tilia
27
27
  # added.
28
28
  #
29
29
  # @param [String, Fixnum] status
30
- # @throws \InvalidArgumentExeption
30
+ # @raise [ArgumentError] if the status code deoes not have 3 digits
31
31
  # @return [void]
32
- def status=(_status)
32
+ def status=(status)
33
33
  end
34
34
  end
35
35
  end
@@ -26,7 +26,7 @@ module Tilia
26
26
  # This static method will create a new Request object, based on the
27
27
  # current PHP request.
28
28
  #
29
- # @return Request
29
+ # @return [Request]
30
30
  def self.request
31
31
  fail NotImplementedError, 'This object method now is an instance method'
32
32
  end
@@ -35,7 +35,7 @@ module Tilia
35
35
  #
36
36
  # This calls php's header function and streams the body to php://output.
37
37
  #
38
- # @param ResponseInterface response
38
+ # @param [ResponseInterface] response
39
39
  # @return [void]
40
40
  def self.send_response(response)
41
41
  # RUBY: Rack does not support HTTP Version (?)
@@ -62,8 +62,8 @@ module Tilia
62
62
  # This static method will create a new Request object, based on a PHP
63
63
  # $_SERVER array.
64
64
  #
65
- # @param array server_array
66
- # @return Request
65
+ # @param [Hash] server_array
66
+ # @return [Request]
67
67
  def self.create_from_server_array(server_array)
68
68
  headers = {}
69
69
  method = nil
@@ -5,7 +5,7 @@ module Tilia
5
5
  # Note: this class is deprecated. All its functionality moved to functions.php
6
6
  # or sabre\uri.
7
7
  #
8
- # @deprectated
8
+ # @deprecated
9
9
  module UrlUtil
10
10
  # Encodes the path of a url.
11
11
  #
@@ -51,7 +51,7 @@ module Tilia
51
51
  #
52
52
  # @deprecated Use Sabre\Uri\split.
53
53
  # @param [String] path
54
- # @return array
54
+ # @return [Array]
55
55
  def self.split_path(path)
56
56
  Tilia::Uri.split(path)
57
57
  end
@@ -8,7 +8,7 @@ module Tilia
8
8
  #
9
9
  # @deprecated Use Tilia::Http::negotiate_content_type
10
10
  # @param [String, nil] accept_header_value
11
- # @param array available_options
11
+ # @param [Array<String>] available_options
12
12
  # @return [String, nil]
13
13
  def self.negotiate_content_type(accept_header_value, available_options)
14
14
  Http.negotiate_content_type(accept_header_value, available_options)
@@ -17,8 +17,8 @@ module Tilia
17
17
  # Deprecated! Use negotiateContentType.
18
18
  #
19
19
  # @deprecated Use Tilia::Http::negotiate_content_type
20
- # @param [String, nil] accept_header
21
- # @param array available_options
20
+ # @param [String, nil] accept_header_value
21
+ # @param [Array<String>] available_options
22
22
  # @return [String, nil]
23
23
  def self.negotiate(accept_header_value, available_options)
24
24
  Http.negotiate_content_type(accept_header_value, available_options)
@@ -30,7 +30,7 @@ module Tilia
30
30
  #
31
31
  # @deprecated Use Tilia::Http::parse_date
32
32
  # @param [String] date_header
33
- # @return bool|DateTime
33
+ # @return [Time, nil]
34
34
  def self.parse_http_date(date_header)
35
35
  Http.parse_date(date_header)
36
36
  end
@@ -41,7 +41,7 @@ module Tilia
41
41
  # specified as GMT.
42
42
  #
43
43
  # @deprecated Use Tilia::Http::to_date
44
- # @param \DateTime date_time
44
+ # @param [Time] date_time
45
45
  # @return [String]
46
46
  def self.to_http_date(date_time)
47
47
  Http.to_date(date_time)
@@ -3,7 +3,7 @@ module Tilia
3
3
  # This class contains the version number for the HTTP package
4
4
  class Version
5
5
  # Full version number
6
- VERSION = '4.1.0.8'
6
+ VERSION = '4.2.1'.freeze
7
7
  end
8
8
  end
9
9
  end