sawyer 0.5.4 → 0.5.5

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: f6de3df7914dedda29d5d502b9adb7b6df07eb2e
4
- data.tar.gz: 26b8e89d2c2555949081f5229dac86394399a421
3
+ metadata.gz: 8c9a99c50756921f097b19c3d4a42ef54cfdf0d8
4
+ data.tar.gz: 93540df1ca29c6aa1fed7a383602fb109839409d
5
5
  SHA512:
6
- metadata.gz: 5efb922a2238670effddd63acea45632d784317708446c5e6c858acb9600c6a85fa71b6002591514b0059f46d96392b7423dfeadff6b2e82fd9446b696d55de9
7
- data.tar.gz: efaffd42000f611e68a7c59364a6b4d0f1b3df0ed9709550e432a8dea5159293d127d1265f06eb9694257077b663ac968e76f1bf9fcb389a47767d7ccb96dffd
6
+ metadata.gz: 3de8890ee3174ea4dd745c3cb9ab64fd66d496cda4cb5b35501963a4883066f426b7389b73ffae29b44b0ac1efaeb3fc2f512f7d4e440410d1474c494eb3f0a1
7
+ data.tar.gz: 10ae9c4b564272abf48abccbc0817bc2e8545275377ccb0bcfa796bec68494a66fc7ace234b92bf1b7e79a7f3480dc9265dc79a24294ffc347d2455d76a6592d
@@ -1,5 +1,5 @@
1
1
  module Sawyer
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
 
4
4
  class Error < StandardError; end
5
5
  end
@@ -83,11 +83,11 @@ module Sawyer
83
83
  elsif attr_name && @_fields.include?(attr_name.to_sym)
84
84
  value = @attrs[attr_name.to_sym]
85
85
  case suffix
86
- when nil
87
- @_metaclass.send(:attr_accessor, attr_name)
88
- value
89
- when ATTR_PREDICATE then !!value
90
- end
86
+ when nil
87
+ @_metaclass.send(:attr_accessor, attr_name)
88
+ value
89
+ when ATTR_PREDICATE then !!value
90
+ end
91
91
  elsif suffix.nil? && SPECIAL_METHODS.include?(attr_name)
92
92
  instance_variable_get "@_#{attr_name}"
93
93
  elsif attr_name && !@_fields.include?(attr_name.to_sym)
@@ -141,7 +141,7 @@ module Sawyer
141
141
 
142
142
  def marshal_load(dumped)
143
143
  @attrs, @_fields, @_rels = *dumped.shift(3)
144
+ @_metaclass = (class << self; self; end)
144
145
  end
145
146
  end
146
147
  end
147
-
@@ -58,7 +58,7 @@ module Sawyer
58
58
  #
59
59
  # Returns a decoded Object.
60
60
  def decode(data)
61
- return nil if data.nil? || data.empty?
61
+ return nil if data.nil? || data.strip.empty?
62
62
  decode_object(@load.call(data))
63
63
  end
64
64
 
@@ -100,9 +100,15 @@ module Sawyer
100
100
 
101
101
  def decode_hash_value(key, value)
102
102
  if time_field?(key, value)
103
- begin
104
- Time.parse(value)
105
- rescue ArgumentError
103
+ if value.is_a?(String)
104
+ begin
105
+ Time.parse(value)
106
+ rescue ArgumentError
107
+ value
108
+ end
109
+ elsif value.is_a?(Integer) || value.is_a?(Float)
110
+ Time.at(value)
111
+ else
106
112
  value
107
113
  end
108
114
  elsif value.is_a?(Hash)
@@ -127,6 +127,9 @@ module Sawyer
127
127
  :published_at => nil,
128
128
  :updated_at => "An invalid date",
129
129
  :pub_date => time,
130
+ :subscribed_at => time.to_i,
131
+ :lost_at => time.to_f,
132
+ :first_date => false,
130
133
  :validate => true
131
134
  }
132
135
  data = [data.merge(:foo => [data])]
@@ -145,6 +148,9 @@ module Sawyer
145
148
  assert_equal "An invalid date", decoded[:updated_at]
146
149
  assert_equal time, decoded[:pub_date], "Did not parse pub_date as Time"
147
150
  assert_equal true, decoded[:validate]
151
+ assert_equal time, decoded[:subscribed_at], "Did not parse subscribed_at as Time"
152
+ assert_equal time, decoded[:lost_at], "Did not parse lost_at as Time"
153
+ assert_equal false, decoded[:first_date], "Parsed first_date"
148
154
  decoded = decoded[:foo]
149
155
  end
150
156
  end
@@ -176,6 +182,20 @@ module Sawyer
176
182
  Marshal.load(Marshal.dump(res))
177
183
  end
178
184
  end
185
+
186
+ def test_blank_response_doesnt_raise
187
+ @stubs.get "/a/" do |env|
188
+ assert_equal "foo.com", env[:url].host
189
+ [200, { "Content-Type" => "application/json" }, " "]
190
+ end
191
+
192
+ agent = Sawyer::Agent.new "http://foo.com/a/" do |conn|
193
+ conn.adapter :test, @stubs
194
+ end
195
+
196
+ assert_nothing_raised do
197
+ assert_equal 200, agent.root.status
198
+ end
199
+ end
179
200
  end
180
201
  end
181
-
@@ -166,8 +166,9 @@ module Sawyer
166
166
 
167
167
  def test_handle_marshal_dump
168
168
  assert_nothing_raised do
169
- res = Resource.new @agent, :a => 1
170
- Marshal.dump(res)
169
+ dump = Marshal.dump(Resource.new(@agent, :a => 1))
170
+ resource = Marshal.load(dump)
171
+ assert_equal 1, resource.a
171
172
  end
172
173
  end
173
174
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sawyer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Olson
@@ -9,40 +9,40 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-22 00:00:00.000000000 Z
12
+ date: 2014-08-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0.8'
21
- - - <
21
+ - - "<"
22
22
  - !ruby/object:Gem::Version
23
23
  version: '0.10'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - ~>
28
+ - - "~>"
29
29
  - !ruby/object:Gem::Version
30
30
  version: '0.8'
31
- - - <
31
+ - - "<"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.10'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: addressable
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.3.5
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.3.5
48
48
  description:
@@ -55,7 +55,7 @@ files:
55
55
  - LICENSE.md
56
56
  - README.md
57
57
  - Rakefile
58
- - sawyer.gemspec
58
+ - lib/sawyer.rb
59
59
  - lib/sawyer/agent.rb
60
60
  - lib/sawyer/link_parsers/hal.rb
61
61
  - lib/sawyer/link_parsers/simple.rb
@@ -63,17 +63,17 @@ files:
63
63
  - lib/sawyer/resource.rb
64
64
  - lib/sawyer/response.rb
65
65
  - lib/sawyer/serializer.rb
66
- - lib/sawyer.rb
67
- - test/agent_test.rb
68
- - test/helper.rb
69
- - test/relation_test.rb
70
- - test/resource_test.rb
71
- - test/response_test.rb
66
+ - sawyer.gemspec
72
67
  - script/bootstrap
73
68
  - script/console
74
69
  - script/package
75
70
  - script/release
76
71
  - script/test
72
+ - test/agent_test.rb
73
+ - test/helper.rb
74
+ - test/relation_test.rb
75
+ - test/resource_test.rb
76
+ - test/response_test.rb
77
77
  homepage: https://github.com/lostisland/sawyer
78
78
  licenses:
79
79
  - MIT
@@ -84,17 +84,17 @@ require_paths:
84
84
  - lib
85
85
  required_ruby_version: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - '>='
92
+ - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: 1.3.5
95
95
  requirements: []
96
96
  rubyforge_project:
97
- rubygems_version: 2.0.3
97
+ rubygems_version: 2.2.2
98
98
  signing_key:
99
99
  specification_version: 2
100
100
  summary: Secret User Agent of HTTP