http_objects 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,7 +31,7 @@ module HttpObjects
31
31
 
32
32
  def initialize(hash = nil)
33
33
  super()
34
- hash.each { |(key, value)| self[key] = value } unless hash.nil?
34
+ hash.each_pair { |(key, value)| self[key] = value } unless hash.nil?
35
35
  end
36
36
 
37
37
  # Public: Associates key with value. If key is a valid HTTP Header name,
@@ -14,10 +14,11 @@ module HttpObjects::Parameters
14
14
 
15
15
  def self.parse(value)
16
16
  raw = value
17
- value, params = value.split(";", 2)
17
+ value, params = value.to_s.split(";", 2)
18
+ value = value.to_s
19
+ params = params.to_s
18
20
 
19
21
  parameters = {}
20
- params = params.to_s
21
22
  params.split(/\s*;\s*/).each do |param|
22
23
  name, param_value = param.split(/=/)
23
24
  name = name.gsub(/\s*/, "")
@@ -27,7 +28,9 @@ module HttpObjects::Parameters
27
28
  end
28
29
 
29
30
  def initialize(raw, value, parameters)
30
- @raw, @value, @parameters = raw, value, parameters
31
+ @raw = raw
32
+ @value = value
33
+ @parameters = parameters
31
34
  end
32
35
 
33
36
  def charset?
@@ -1,3 +1,3 @@
1
1
  module HttpObjects
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -29,6 +29,7 @@ describe HttpObjects::Hash do
29
29
  it "with values" do
30
30
  hash = subject.new("MyObject" => "value")
31
31
  hash.myobject.must_be_instance_of(MyObject)
32
+ hash.myobject!.must_equal("value")
32
33
  end
33
34
  it "should reuse same object" do
34
35
  hash_headers = subject.new("MyObject" => "value")
@@ -15,4 +15,14 @@ describe HttpObjects::HeadersHash do
15
15
  end
16
16
  end
17
17
 
18
+ describe "#initialize" do
19
+ subject { HttpObjects::HeadersHash }
20
+ it "with values" do
21
+ hash = subject.new("MyObject" => "value", "Content-Type" => "text/plain")
22
+ hash["MyObject"].must_equal("value")
23
+ hash.content_type.wont_be_nil
24
+ hash.content_type.value.must_equal("text/plain")
25
+ end
26
+ end
27
+
18
28
  end
@@ -4,6 +4,13 @@ include HttpObjects::Parameters
4
4
 
5
5
  describe MediaType do
6
6
 
7
+ it "support nil value" do
8
+ subject = MediaType.parse(nil)
9
+ subject.must_be_instance_of(MediaType)
10
+ subject.raw.must_be_nil
11
+ subject.value.must_equal("")
12
+ end
13
+
7
14
  describe "with only type/subtype" do
8
15
  subject { MediaType.parse("text/html") }
9
16
  it "#raw" do
metadata CHANGED
@@ -1,56 +1,76 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: http_objects
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.3
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Roger Leite
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-12-27 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-12-28 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rake
16
- requirement: &70157426897660 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :development
23
- prerelease: false
24
- version_requirements: *70157426897660
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: minitest
27
- requirement: &70157426896300 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
28
38
  none: false
29
- requirements:
39
+ requirements:
30
40
  - - ~>
31
- - !ruby/object:Gem::Version
32
- version: '3'
41
+ - !ruby/object:Gem::Version
42
+ hash: 5
43
+ segments:
44
+ - 3
45
+ version: "3"
33
46
  type: :development
34
- prerelease: false
35
- version_requirements: *70157426896300
36
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
37
49
  name: minitest-reporters
38
- requirement: &70157426895080 !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
39
52
  none: false
40
- requirements:
53
+ requirements:
41
54
  - - ~>
42
- - !ruby/object:Gem::Version
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ - 7
60
+ - 0
43
61
  version: 0.7.0
44
62
  type: :development
45
- prerelease: false
46
- version_requirements: *70157426895080
63
+ version_requirements: *id003
47
64
  description: HTTP 1.1 by the spec, specially headers
48
- email:
65
+ email:
49
66
  - roger.barreto@gmail.com
50
67
  executables: []
68
+
51
69
  extensions: []
70
+
52
71
  extra_rdoc_files: []
53
- files:
72
+
73
+ files:
54
74
  - .gitignore
55
75
  - Gemfile
56
76
  - LICENSE
@@ -113,29 +133,38 @@ files:
113
133
  - test/test_helper.rb
114
134
  homepage: https://github.com/rogerleite/http_objects
115
135
  licenses: []
136
+
116
137
  post_install_message:
117
138
  rdoc_options: []
118
- require_paths:
139
+
140
+ require_paths:
119
141
  - lib
120
- required_ruby_version: !ruby/object:Gem::Requirement
142
+ required_ruby_version: !ruby/object:Gem::Requirement
121
143
  none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
152
  none: false
128
- requirements:
129
- - - ! '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ hash: 3
157
+ segments:
158
+ - 0
159
+ version: "0"
132
160
  requirements: []
161
+
133
162
  rubyforge_project:
134
163
  rubygems_version: 1.8.15
135
164
  signing_key:
136
165
  specification_version: 3
137
166
  summary: HTTP 1.1 by the spec, specially headers
138
- test_files:
167
+ test_files:
139
168
  - test/http_objects/hash_test.rb
140
169
  - test/http_objects/headers/attributes_test.rb
141
170
  - test/http_objects/headers/directives/cache_test.rb