hyperfeed 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,8 @@ module Hyperfeed
6
6
  def get_resource(feed, id)
7
7
  item = feed.content.xpath("//item").find { |i| generate_id(i) == id }
8
8
 
9
+ return nil unless item
10
+
9
11
  collect_fields(item).extend(Methodize)
10
12
  end
11
13
 
@@ -1,3 +1,3 @@
1
1
  module Hyperfeed
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/hyperfeed.rb CHANGED
@@ -9,10 +9,14 @@ require 'methodize'
9
9
  class Hyperfeed::Client
10
10
  include Hyperfeed::ResourceBuilder
11
11
 
12
+ attr_accessor :code, :body
13
+
12
14
  def initialize(url, options)
13
15
  @options = options
14
16
 
15
17
  response = HttpMonkey.at(url).get
18
+ self.code = response.code
19
+ self.body = response.body
16
20
  raise "Error: #{response.code} - #{response.body}" unless response.code == 200
17
21
 
18
22
  content = Nokogiri::XML(response.body)
@@ -12,22 +12,30 @@ describe Hyperfeed do
12
12
  register_uri(:get, url, :body => fixture("lst_mob.xml"))
13
13
  end
14
14
 
15
- subject { Hyperfeed::Client.at(url).get }
16
- its(:per_page) { should == 10 }
17
- its(:current_page) { should == 1 }
18
- its(:total_pages) { should == 35 }
19
- its(:total_results) { should == 350 }
15
+ subject { Hyperfeed::Client.at(url) }
16
+ its(:code) { should == 200}
20
17
 
21
- context "#result" do
18
+ context "get" do
22
19
  def subject
23
- super.result.first
20
+ super.get
24
21
  end
22
+ its(:per_page) { should == 10 }
23
+ its(:current_page) { should == 1 }
24
+ its(:total_pages) { should == 35 }
25
+ its(:total_results) { should == 350 }
25
26
 
26
- its(:id) { should == "f91f93b7061233a9c13c20376c450012" }
27
- its(:pubdate) { should == "10/05/2013" }
28
- its(:title) { should == "BMW e maior marca do mundo, diz Forbes" }
29
- its(:source) { should == "QUATRO RODAS" }
27
+ context "#result" do
28
+ def subject
29
+ super.result.first
30
+ end
31
+
32
+ its(:id) { should == "f91f93b7061233a9c13c20376c450012" }
33
+ its(:pubdate) { should == "10/05/2013" }
34
+ its(:title) { should == "BMW e maior marca do mundo, diz Forbes" }
35
+ its(:source) { should == "QUATRO RODAS" }
36
+ end
30
37
  end
38
+
31
39
  end
32
40
 
33
41
  context "with per_page param" do
@@ -79,4 +87,14 @@ describe Hyperfeed do
79
87
  it { subject.first.title.should == "BMW e maior marca do mundo, diz Forbes" }
80
88
  end
81
89
  end
90
+
91
+ context "with non valid id" do
92
+ before do
93
+ register_uri(:get, url, :body => fixture("lst_mob.xml"))
94
+ end
95
+
96
+ subject { Hyperfeed::Client.at(url).get("nonVALIDid") }
97
+
98
+ it { should == nil }
99
+ end
82
100
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperfeed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-16 00:00:00.000000000 Z
12
+ date: 2013-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: http_monkey
16
- requirement: &70254332367760 !ruby/object:Gem::Requirement
16
+ requirement: &70351443146720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70254332367760
24
+ version_requirements: *70351443146720
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70254332367260 !ruby/object:Gem::Requirement
27
+ requirement: &70351443146220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70254332367260
35
+ version_requirements: *70351443146220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: methodize
38
- requirement: &70254332366880 !ruby/object:Gem::Requirement
38
+ requirement: &70351443145840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70254332366880
46
+ version_requirements: *70351443145840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70254332366420 !ruby/object:Gem::Requirement
49
+ requirement: &70351443145380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70254332366420
57
+ version_requirements: *70351443145380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: fakeweb
60
- requirement: &70254332365920 !ruby/object:Gem::Requirement
60
+ requirement: &70351443144880 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70254332365920
68
+ version_requirements: *70351443144880
69
69
  description: An adapter to plug feeds content on hypermedia engines
70
70
  email:
71
71
  - guilherme.kato@abril.com.br