hyperfeed 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,82 @@
1
+ require 'spec_helper'
2
+
3
+ describe Hyperfeed do
4
+
5
+ let(:url) { "http://quatrorodas.abril.com.br/lst_mob.xml" }
6
+ #let(:url_page) { "http://quatrorodas.abril.com.br/lst_mob.xml?page=2" }
7
+ #let(:url_per_page) { "http://quatrorodas.abril.com.br/lst_mob.xml?per_page=20" }
8
+ let(:resource_id) {"f91f93b7061233a9c13c20376c450012"}
9
+
10
+ context "with response code equal 200" do
11
+ before do
12
+ register_uri(:get, url, :body => fixture("lst_mob.xml"))
13
+ end
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 }
20
+
21
+ context "#result" do
22
+ def subject
23
+ super.result.first
24
+ end
25
+
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" }
30
+ end
31
+ end
32
+
33
+ context "with per_page param" do
34
+ before do
35
+ register_uri(:get, url, :body => fixture("lst_mob.xml"))
36
+ end
37
+
38
+ subject { Hyperfeed::Client.at(url, :per_page => 20).get }
39
+ its(:per_page) { should == 20 }
40
+ it { subject.result.size.should == 20 }
41
+ its(:current_page) { should == 1 }
42
+ its(:total_pages) { should == 18 }
43
+ its(:total_results) { should == 350 }
44
+ end
45
+
46
+ context "with page param" do
47
+ before do
48
+ register_uri(:get, url, :body => fixture("lst_mob.xml"))
49
+ end
50
+
51
+ subject { Hyperfeed::Client.at(url, :page => 2).get }
52
+ its(:per_page) { should == 10 }
53
+ its(:current_page) { should == 2 }
54
+ its(:total_pages) { should == 35 }
55
+ its(:total_results) { should == 350 }
56
+ end
57
+
58
+ context "with item" do
59
+ before do
60
+ register_uri(:get, url, :body => fixture("lst_mob.xml"))
61
+ end
62
+
63
+ subject { Hyperfeed::Client.at(url).get(resource_id) }
64
+ its(:title) { should == "BMW e maior marca do mundo, diz Forbes" }
65
+ its(:id) { should == "f91f93b7061233a9c13c20376c450012" }
66
+ its(:subtitle) { should == "Empresa e a unica montadora no top 10" }
67
+ its(:category) { should == "mercado" }
68
+ its(:author) { should == "Vitor Matsubara" }
69
+ its(:enclosure) { should be_a Array }
70
+
71
+ context "item enclosure" do
72
+ def subject
73
+ super.enclosure
74
+ end
75
+ its(:size) { should == 1 }
76
+
77
+ it { subject.first.url.should == "http://quatrorodas.abril.com.br/100513_bmw1.jpg" }
78
+ it { subject.first.type.should == "image/jpeg" }
79
+ it { subject.first.title.should == "BMW e maior marca do mundo, diz Forbes" }
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,17 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require 'rspec'
4
+ require 'hyperfeed'
5
+ require 'fakeweb'
6
+
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
8
+ RSpec.configure do |config|
9
+ def fixture(name)
10
+ File.read("#{File.dirname(__FILE__)}/fixtures/#{name}")
11
+ end
12
+
13
+ def register_uri(method, uri, options = {})
14
+ options.merge!(:content_type => "application/xml") unless options[:content_type].nil?
15
+ FakeWeb.register_uri(method, uri, options)
16
+ end
17
+ 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.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-05 00:00:00.000000000 Z
12
+ date: 2013-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: http_monkey
16
- requirement: &70347311578380 !ruby/object:Gem::Requirement
16
+ requirement: &70150867271620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: '0.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70347311578380
24
+ version_requirements: *70150867271620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70347311577860 !ruby/object:Gem::Requirement
27
+ requirement: &70150867271120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.5'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70150867271120
36
+ - !ruby/object:Gem::Dependency
37
+ name: methodize
38
+ requirement: &70150867270740 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,21 @@ dependencies:
32
43
  version: '0'
33
44
  type: :runtime
34
45
  prerelease: false
35
- version_requirements: *70347311577860
46
+ version_requirements: *70150867270740
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &70150867270280 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70150867270280
36
58
  - !ruby/object:Gem::Dependency
37
- name: ruby-debug19
38
- requirement: &70347311577360 !ruby/object:Gem::Requirement
59
+ name: fakeweb
60
+ requirement: &70150867269780 !ruby/object:Gem::Requirement
39
61
  none: false
40
62
  requirements:
41
63
  - - ! '>='
@@ -43,7 +65,7 @@ dependencies:
43
65
  version: '0'
44
66
  type: :development
45
67
  prerelease: false
46
- version_requirements: *70347311577360
68
+ version_requirements: *70150867269780
47
69
  description: An adapter to plug feeds content on hypermedia engines
48
70
  email:
49
71
  - guilherme.kato@abril.com.br
@@ -58,11 +80,12 @@ files:
58
80
  - Rakefile
59
81
  - hyperfeed.gemspec
60
82
  - lib/hyperfeed.rb
61
- - lib/hyperfeed/discover.rb
62
- - lib/hyperfeed/middleware/adapter_middleware.rb
63
83
  - lib/hyperfeed/resource_builder.rb
64
84
  - lib/hyperfeed/version.rb
65
- homepage: ''
85
+ - spec/fixtures/lst_mob.xml
86
+ - spec/hyperfeed/hyperfeed_spec.rb
87
+ - spec/spec_helper.rb
88
+ homepage: https://github.com/gkato/hyperfeed
66
89
  licenses: []
67
90
  post_install_message:
68
91
  rdoc_options: []
@@ -86,4 +109,7 @@ rubygems_version: 1.8.15
86
109
  signing_key:
87
110
  specification_version: 3
88
111
  summary: An adapter to plug feeds content on hypermedia engines
89
- test_files: []
112
+ test_files:
113
+ - spec/fixtures/lst_mob.xml
114
+ - spec/hyperfeed/hyperfeed_spec.rb
115
+ - spec/spec_helper.rb
@@ -1,20 +0,0 @@
1
- module Hyperfeed
2
- class Discover
3
-
4
- include Hyperfeed::ResourceBuilder
5
-
6
- def initialize(url, rss)
7
- @url = url
8
- @rss = rss
9
- end
10
-
11
- def hyperfeed
12
- if @url =~ /resource_id=([0-9]+)/
13
- hyperfeed = get_resource(@rss, @url, $1.to_i)
14
- else
15
- hyperfeed = retrieve_resources_list(@rss, @url, {})
16
- end
17
- end
18
-
19
- end
20
- end
@@ -1,22 +0,0 @@
1
- module Hyperfeed
2
- class AdapterMiddleware
3
-
4
- def initialize(app)
5
- @app = app
6
- end
7
-
8
- def call(env)
9
- code, headers, body = @app.call(env)
10
-
11
- url = env.uri.to_s
12
- rss = Nokogiri::XML(body)
13
-
14
- discover = Hyperfeed::Discover.new(url, rss)
15
- HttpMonkey::Client::Response.inject_with(:hyperfeed, discover.hyperfeed)
16
-
17
- [code, headers, body]
18
- end
19
-
20
- end
21
- end
22
-