sawyer 0.5.4 → 0.5.5

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