meme 0.1.2 → 0.2.0

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.
data/spec/info_spec.rb ADDED
@@ -0,0 +1,87 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Meme::Info" do
4
+
5
+ describe "#user not found" do
6
+ it "should return nil" do
7
+ query = "SELECT * FROM meme.info WHERE name='memeusernotfound'"
8
+ fake_web(query, 'meme_info_not_found.json')
9
+ Meme::Info.find('memeusernotfound').should be_nil
10
+ end
11
+ end
12
+
13
+ before :each do
14
+ query = "SELECT * FROM meme.info WHERE name='jtadeulopes'"
15
+ fake_web(query, 'meme_info.json')
16
+ @profile = Meme::Info.find('jtadeulopes')
17
+ end
18
+
19
+ it "should return name" do
20
+ @profile.name.should == "jtadeulopes"
21
+ end
22
+
23
+ it "should return guid" do
24
+ @profile.guid.should == "EMREXCV4R5OTM3CZW3HBD5QAGY"
25
+ end
26
+
27
+ it "should return page title" do
28
+ @profile.title.should == "Jésus Lopes"
29
+ end
30
+
31
+ it "should return description" do
32
+ @profile.description.should == "software developer"
33
+ end
34
+
35
+ it "should return url" do
36
+ @profile.url.should == "http://meme.yahoo.com/jtadeulopes/"
37
+ end
38
+
39
+ it "should return avatar" do
40
+ @profile.avatar_url.should == "http://d.yimg.com/gg/jtadeulopes/avatars/44251e70378d4d225f8cda09a6c3aec87301833a.jpeg"
41
+ end
42
+
43
+ it "should return language" do
44
+ @profile.language.should == "pt"
45
+ end
46
+
47
+ describe "#followers" do
48
+
49
+ it "should return followers" do
50
+ query = "SELECT * FROM meme.followers(10) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
51
+ fake_web(query, 'meme_followers.json')
52
+ @profile.followers.count.should == 10
53
+ end
54
+
55
+ it "should return five followers" do
56
+ query = "SELECT * FROM meme.followers(5) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
57
+ fake_web(query, 'meme_followers_count.json')
58
+ @profile.followers(5).count.should == 5
59
+ end
60
+
61
+ it "should return all followers" do
62
+ query = "SELECT * FROM meme.followers(0) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
63
+ fake_web(query, 'meme_followers_all.json')
64
+ @profile.followers(:all).count.should == 36
65
+ end
66
+
67
+ end
68
+
69
+ describe "#following" do
70
+ it "should return following" do
71
+ query = "SELECT * FROM meme.following(10) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
72
+ fake_web(query, 'meme_following.json')
73
+ @profile.following.count.should == 10
74
+ end
75
+ it "should return seven following" do
76
+ query = "SELECT * FROM meme.following(7) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
77
+ fake_web(query, 'meme_following_count.json')
78
+ @profile.following(7).count.should == 7
79
+ end
80
+ it "should return all following" do
81
+ query = "SELECT * FROM meme.following(0) WHERE owner_guid='EMREXCV4R5OTM3CZW3HBD5QAGY'"
82
+ fake_web(query, 'meme_following_all.json')
83
+ @profile.following(:all).count.should == 39
84
+ end
85
+ end
86
+
87
+ end
data/spec/meme_spec.rb CHANGED
@@ -1,140 +1,4 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "Meme" do
4
-
5
- describe "info" do
6
-
7
- describe "#user not found" do
8
- it "should return nil" do
9
- url = URI.escape("https://query.yahooapis.com/v1/public/yql?q=SELECT * FROM meme.info WHERE name='memeusernotfound'&format=json")
10
- FakeWeb.register_uri(:get, url, :body => load_fixture('meme_info_not_found.json'))
11
- Meme::Info.find('memeusernotfound').should be_nil
12
- end
13
- end
14
-
15
- before :each do
16
- name = "jtadeulopes"
17
- url = URI.escape("https://query.yahooapis.com/v1/public/yql?q=SELECT * FROM meme.info WHERE name='#{name}'&format=json")
18
- FakeWeb.register_uri(:get, url, :body => load_fixture('meme_info.json'))
19
- @profile = Meme::Info.find(name)
20
- end
21
-
22
- it "should return name" do
23
- @profile.name.should == "jtadeulopes"
24
- end
25
-
26
- it "should return guid" do
27
- @profile.guid.should == "EMREXCV4R5OTM3CZW3HBD5QAGY"
28
- end
29
-
30
- it "should return page title" do
31
- @profile.title.should == "Jésus Lopes"
32
- end
33
-
34
- it "should return description" do
35
- @profile.description.should == "software developer"
36
- end
37
-
38
- it "should return url" do
39
- @profile.url.should == "http://meme.yahoo.com/jtadeulopes/"
40
- end
41
-
42
- it "should return avatar" do
43
- @profile.avatar_url.should == "http://d.yimg.com/gg/jtadeulopes/avatars/44251e70378d4d225f8cda09a6c3aec87301833a.jpeg"
44
- end
45
-
46
- it "should return language" do
47
- @profile.language.should == "pt"
48
- end
49
-
50
- it "should return followers" do
51
- @profile.followers.should == "34"
52
- end
53
-
54
- end
55
-
56
- describe "#search" do
57
-
58
- before :each do
59
- query = 'meme rocks'
60
- url = URI.escape("https://query.yahooapis.com/v1/public/yql?q=SELECT * FROM meme.search WHERE query='#{query}'&format=json")
61
- FakeWeb.register_uri(:get, url, :body => load_fixture('meme_search.json'))
62
- @results = Meme::Post.find(query)
63
- end
64
-
65
- it "should return pubid" do
66
- @results.first.pubid.should == "yC8nqOd"
67
- end
68
-
69
- it "should return guid" do
70
- @results.first.guid.should == "7Z7XFAPD5FLXFKJVT4NG6XTTA4"
71
- end
72
-
73
- it "should return url" do
74
- @results.first.url.should == "http://meme.yahoo.com/celizelove/p/yC8nqOd/"
75
- end
76
-
77
- it "should return timestamp" do
78
- @results.first.timestamp.should == "1268410909000"
79
- end
80
-
81
- it "should return category" do
82
- @results.first.category.should == "text"
83
- end
84
-
85
- it "should return type" do
86
- @results.first.type.should == "text"
87
- end
88
-
89
- it "should return content" do
90
- @results[4].content.should == "http://d.yimg.com/gg/u/2441eceb4b334c6fc29c9bd306fe1957693d605e.jpeg"
91
- end
92
-
93
- it "should return repost_count" do
94
- @results.first.repost_count.should == "0"
95
- end
96
-
97
- it "should return caption" do
98
- @results[1].caption.should == "This is good. But a lot of things happening means a high chance that I, the man who lives and breathes Panic and has a giant status board in my head, might not properly explain everything to everyone. Steve and I realized it was high time we made this Cabel Status Board public… using technology!"
99
- end
100
-
101
- end
102
-
103
- describe "#search by type" do
104
-
105
- describe "#posts not found" do
106
- it "should return nil" do
107
- query = 'brhackday'
108
- fake_web(query, 'audio')
109
- Meme::Post.find(query, :type => :audio).should be_nil
110
- end
111
- end
112
-
113
- it "should search by type photo" do
114
- query = 'meme rocks'
115
- fake_web(query, 'photo')
116
- @results = Meme::Post.find(query, :type => :photo)
117
- @results.count.should == 3
118
- @results.first.type.should == "photo"
119
- end
120
- it "should search by type video" do
121
- query = 'keyboard cat'
122
- fake_web(query, 'video')
123
- @results = Meme::Post.find(query, :type => :video)
124
- @results.count.should == 2
125
- @results.first.type.should == "video"
126
- end
127
-
128
- def fake_web(query, type)
129
- select = "SELECT * FROM meme.search WHERE query='#{query}' and type='#{type}'"
130
- url = URI.escape("https://query.yahooapis.com/v1/public/yql?q=#{select}&format=json")
131
- FakeWeb.register_uri(:get, url, :body => load_fixture("meme_search_type_#{type}.json"))
132
- end
133
-
134
- end
135
-
136
- def load_fixture(name)
137
- File.join(File.expand_path(File.dirname(__FILE__)), '/fixtures', name)
138
- end
139
-
140
4
  end
@@ -0,0 +1,75 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Meme::Search" do
4
+
5
+ before :each do
6
+ query = "SELECT * FROM meme.search WHERE query='meme rocks'"
7
+ fake_web(query, 'meme_search.json')
8
+ @results = Meme::Post.find('meme rocks')
9
+ end
10
+
11
+ it "should return pubid" do
12
+ @results.first.pubid.should == "yC8nqOd"
13
+ end
14
+
15
+ it "should return guid" do
16
+ @results.first.guid.should == "7Z7XFAPD5FLXFKJVT4NG6XTTA4"
17
+ end
18
+
19
+ it "should return url" do
20
+ @results.first.url.should == "http://meme.yahoo.com/celizelove/p/yC8nqOd/"
21
+ end
22
+
23
+ it "should return timestamp" do
24
+ @results.first.timestamp.should == "1268410909000"
25
+ end
26
+
27
+ it "should return category" do
28
+ @results.first.category.should == "text"
29
+ end
30
+
31
+ it "should return type" do
32
+ @results.first.type.should == "text"
33
+ end
34
+
35
+ it "should return content" do
36
+ @results[4].content.should == "http://d.yimg.com/gg/u/2441eceb4b334c6fc29c9bd306fe1957693d605e.jpeg"
37
+ end
38
+
39
+ it "should return repost_count" do
40
+ @results.first.repost_count.should == "0"
41
+ end
42
+
43
+ it "should return caption" do
44
+ @results[1].caption.should == "This is good. But a lot of things happening means a high chance that I, the man who lives and breathes Panic and has a giant status board in my head, might not properly explain everything to everyone. Steve and I realized it was high time we made this Cabel Status Board public… using technology!"
45
+ end
46
+
47
+ describe "#search by" do
48
+
49
+ describe "#posts not found" do
50
+ it "should return nil" do
51
+ query = "SELECT * FROM meme.search WHERE query='brhackday' and type='audio'"
52
+ fake_web(query, 'meme_search_type_audio.json')
53
+ Meme::Post.find('brhackday', :type => :audio).should be_nil
54
+ end
55
+ end
56
+
57
+ it "type photo" do
58
+ query = "SELECT * FROM meme.search WHERE query='meme rocks' and type='photo'"
59
+ fake_web(query, 'meme_search_type_photo.json')
60
+ @results = Meme::Post.find('meme rocks', :type => :photo)
61
+ @results.count.should == 3
62
+ @results.first.type.should == "photo"
63
+ end
64
+
65
+ it "type video" do
66
+ query = "SELECT * FROM meme.search WHERE query='keyboard cat' and type='video'"
67
+ fake_web(query, 'meme_search_type_video.json')
68
+ @results = Meme::Post.find('keyboard cat', :type => :video)
69
+ @results.count.should == 2
70
+ @results.first.type.should == "video"
71
+ end
72
+
73
+ end
74
+
75
+ end
data/spec/spec_helper.rb CHANGED
@@ -9,5 +9,13 @@ require 'json'
9
9
  require 'fakeweb'
10
10
 
11
11
  Spec::Runner.configure do |config|
12
-
12
+ end
13
+
14
+ def load_fixture(name)
15
+ File.join(File.expand_path(File.dirname(__FILE__)), '/fixtures', name)
16
+ end
17
+
18
+ def fake_web(query, fixture)
19
+ url = URI.escape("https://query.yahooapis.com/v1/public/yql?q=#{query}&format=json")
20
+ FakeWeb.register_uri(:get, url, :body => load_fixture(fixture))
13
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "J\xC3\xA9sus Lopes"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-23 00:00:00 -03:00
12
+ date: 2010-04-01 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -39,14 +39,25 @@ files:
39
39
  - Rakefile
40
40
  - VERSION
41
41
  - lib/meme.rb
42
+ - lib/meme/info.rb
43
+ - lib/meme/request.rb
44
+ - lib/meme/search.rb
42
45
  - meme.gemspec
46
+ - spec/fixtures/meme_followers.json
47
+ - spec/fixtures/meme_followers_all.json
48
+ - spec/fixtures/meme_followers_count.json
49
+ - spec/fixtures/meme_following.json
50
+ - spec/fixtures/meme_following_all.json
51
+ - spec/fixtures/meme_following_count.json
43
52
  - spec/fixtures/meme_info.json
44
53
  - spec/fixtures/meme_info_not_found.json
45
54
  - spec/fixtures/meme_search.json
46
55
  - spec/fixtures/meme_search_type_audio.json
47
56
  - spec/fixtures/meme_search_type_photo.json
48
57
  - spec/fixtures/meme_search_type_video.json
58
+ - spec/info_spec.rb
49
59
  - spec/meme_spec.rb
60
+ - spec/search_spec.rb
50
61
  - spec/spec.opts
51
62
  - spec/spec_helper.rb
52
63
  has_rdoc: true
@@ -79,4 +90,6 @@ specification_version: 3
79
90
  summary: Ruby Yahoo! Meme API
80
91
  test_files:
81
92
  - spec/meme_spec.rb
93
+ - spec/search_spec.rb
82
94
  - spec/spec_helper.rb
95
+ - spec/info_spec.rb