http_objects 0.0.3 → 0.0.4

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