fetcher-microdata 0.0.1 → 0.0.2
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.
@@ -0,0 +1,21 @@
|
|
1
|
+
module Fetcher
|
2
|
+
class Microdata
|
3
|
+
class Review < Fetcher::Microdata
|
4
|
+
|
5
|
+
def initialize *args
|
6
|
+
super *args
|
7
|
+
@_type = "http://schema.org/Review"
|
8
|
+
end
|
9
|
+
|
10
|
+
attribute :additionalType
|
11
|
+
attribute :id
|
12
|
+
attribute :articleBody
|
13
|
+
attribute :author
|
14
|
+
attribute :viewer
|
15
|
+
attribute :dateCreated
|
16
|
+
attribute :provider
|
17
|
+
attribute :url
|
18
|
+
attribute :original_tweet
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/fetcher-microdata.rb
CHANGED
@@ -39,6 +39,8 @@ end
|
|
39
39
|
require 'fetcher-microdata/version'
|
40
40
|
require 'fetcher-microdata/person_user'
|
41
41
|
require 'fetcher-microdata/article_small'
|
42
|
+
require 'fetcher-microdata/review'
|
42
43
|
|
43
44
|
require 'writer/fetcher-microdata/person_user'
|
44
|
-
require 'writer/fetcher-microdata/article_small'
|
45
|
+
require 'writer/fetcher-microdata/article_small'
|
46
|
+
require 'writer/fetcher-microdata/review'
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Writer
|
2
|
+
module Fetcher
|
3
|
+
module Microdata
|
4
|
+
class Review
|
5
|
+
attr_accessor :source
|
6
|
+
|
7
|
+
def initialize the_source
|
8
|
+
self.source = the_source
|
9
|
+
end
|
10
|
+
|
11
|
+
def hash
|
12
|
+
@attributes = @source.attributes
|
13
|
+
{
|
14
|
+
"type" => [@source._type],
|
15
|
+
"properties" => {
|
16
|
+
"additionalType" => [
|
17
|
+
@attributes[:additionalType]
|
18
|
+
],
|
19
|
+
"Item#id" => [
|
20
|
+
@attributes[:id]
|
21
|
+
],
|
22
|
+
"articleBody" => [
|
23
|
+
@attributes[:articleBody]
|
24
|
+
],
|
25
|
+
"author" => [
|
26
|
+
@attributes[:author].to.hash
|
27
|
+
],
|
28
|
+
"Item#viewer" => [
|
29
|
+
@attributes[:viewer].to.hash
|
30
|
+
],
|
31
|
+
"dateCreated" => [
|
32
|
+
@attributes[:dateCreated]
|
33
|
+
],
|
34
|
+
"provider" => @attributes[:provider],
|
35
|
+
"url" => [
|
36
|
+
@attributes[:url]
|
37
|
+
],
|
38
|
+
"itemReviewed" => [
|
39
|
+
@attributes[:itemReviewed]
|
40
|
+
]
|
41
|
+
}
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fetcher::Microdata::Review do
|
4
|
+
describe '.new' do
|
5
|
+
it 'should set the _type to schema.org/Review' do
|
6
|
+
article = Fetcher::Microdata::Review.new @argument, @viewer
|
7
|
+
article._type.should == "http://schema.org/Review"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should inherit from Fetcher::Microdata' do
|
12
|
+
Fetcher::Microdata::Review.superclass.should == Fetcher::Microdata
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'attributes' do
|
16
|
+
before do
|
17
|
+
Fetcher::Microdata::Review.any_instance.stub :coerce
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should set attribute additionalType' do
|
21
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
22
|
+
.attributes.should have_key :additionalType
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should set attribute id' do
|
26
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
27
|
+
.attributes.should have_key :id
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should set attribute articleBody' do
|
31
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
32
|
+
.attributes.should have_key :articleBody
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should set attribute author' do
|
36
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
37
|
+
.attributes.should have_key :author
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should set attribute viewer' do
|
41
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
42
|
+
.attributes.should have_key :viewer
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should set attribute dateCreated' do
|
46
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
47
|
+
.attributes.should have_key :dateCreated
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should set attribute provider' do
|
51
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
52
|
+
.attributes.should have_key :provider
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should set attribute url' do
|
56
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
57
|
+
.attributes.should have_key :url
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should set attribute original_tweet' do
|
61
|
+
Fetcher::Microdata::Review.new(@argument_stub, @viewer_stub)
|
62
|
+
.attributes.should have_key :original_tweet
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Writer::Fetcher::Microdata::Review do
|
4
|
+
describe '#hash' do
|
5
|
+
before do
|
6
|
+
@schema_stub = stub 'schema'
|
7
|
+
@author_stub = stub 'author', :to => stub( :hash => nil)
|
8
|
+
@viewer_stub = stub 'viewer', :to => stub( :hash => nil)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return a hash with the type' do
|
12
|
+
final_hash = {
|
13
|
+
"type" => [
|
14
|
+
'the type'
|
15
|
+
]
|
16
|
+
}
|
17
|
+
@schema_stub.should_receive(:_type).and_return "the type"
|
18
|
+
@schema_stub.should_receive(:attributes).and_return stub('the hash', :[] => @author_stub)
|
19
|
+
|
20
|
+
writer = Writer::Fetcher::Microdata::Review.new @schema_stub
|
21
|
+
writer.hash.should include final_hash
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'properties hash' do
|
25
|
+
before do
|
26
|
+
@schema_stub.should_receive(:_type).and_return nil
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should include the additionalType' do
|
30
|
+
@properties_hash = {
|
31
|
+
"additionalType" => [
|
32
|
+
"http://getfetcher.net/Item"
|
33
|
+
]
|
34
|
+
}
|
35
|
+
@schema_stub.should_receive(:attributes)
|
36
|
+
.and_return :additionalType => "http://getfetcher.net/Item",
|
37
|
+
:author => @author_stub,
|
38
|
+
:viewer => @viewer_stub
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should include the Item#id' do
|
42
|
+
@properties_hash = {
|
43
|
+
"Item#id" => [
|
44
|
+
234536234
|
45
|
+
]
|
46
|
+
}
|
47
|
+
|
48
|
+
@schema_stub.should_receive(:attributes)
|
49
|
+
.and_return :id => 234536234, :author => @author_stub, :viewer => @viewer_stub
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should include the articleBody' do
|
53
|
+
@properties_hash = {
|
54
|
+
"articleBody" => [
|
55
|
+
"some body"
|
56
|
+
]
|
57
|
+
}
|
58
|
+
|
59
|
+
@schema_stub.should_receive(:attributes)
|
60
|
+
.and_return :articleBody => "some body", :author => @author_stub, :viewer => @viewer_stub
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should include the author' do
|
64
|
+
@author = stub 'author'
|
65
|
+
@author_writer = stub 'author writer'
|
66
|
+
@author_writer.should_receive(:hash).and_return "hi Im the author"
|
67
|
+
@author.should_receive(:to).and_return @author_writer
|
68
|
+
@properties_hash = {
|
69
|
+
"author" => [
|
70
|
+
"hi Im the author"
|
71
|
+
]
|
72
|
+
}
|
73
|
+
|
74
|
+
@schema_stub.should_receive(:attributes)
|
75
|
+
.and_return :author => @author, :viewer => @viewer_stub
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'should include the viewer' do
|
79
|
+
@viewer = stub 'viewer'
|
80
|
+
@viewer_writer = stub 'viewer writer'
|
81
|
+
@viewer_writer.should_receive(:hash).and_return "hi Im the viewer"
|
82
|
+
@viewer.should_receive(:to).and_return @viewer_writer
|
83
|
+
@properties_hash = {
|
84
|
+
"Item#viewer" => [
|
85
|
+
"hi Im the viewer"
|
86
|
+
]
|
87
|
+
}
|
88
|
+
|
89
|
+
@schema_stub.should_receive(:attributes)
|
90
|
+
.and_return :viewer => @viewer, :author => @author_stub
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should include the dateCreated' do
|
94
|
+
@properties_hash = {
|
95
|
+
"dateCreated" => [
|
96
|
+
23456235
|
97
|
+
]
|
98
|
+
}
|
99
|
+
|
100
|
+
@schema_stub.should_receive(:attributes)
|
101
|
+
.and_return :dateCreated => 23456235, :author => @author_stub, :viewer => @viewer_stub
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'should include the provider' do
|
105
|
+
@properties_hash = {
|
106
|
+
"provider" => [
|
107
|
+
"twitter",
|
108
|
+
"fetcher"
|
109
|
+
]
|
110
|
+
}
|
111
|
+
|
112
|
+
@schema_stub.should_receive(:attributes)
|
113
|
+
.and_return :provider => ["twitter", "fetcher"], :author => @author_stub, :viewer => @viewer_stub
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should include the url' do
|
117
|
+
@properties_hash = {
|
118
|
+
"url" => [
|
119
|
+
"http://myurl.info"
|
120
|
+
]
|
121
|
+
}
|
122
|
+
@schema_stub.should_receive(:attributes)
|
123
|
+
.and_return :url => "http://myurl.info", :author => @author_stub, :viewer => @viewer_stub
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should include the original tweet' do
|
127
|
+
@properties_hash = {
|
128
|
+
"itemReviewed" => [
|
129
|
+
"Im the original tweet that was retreeted"
|
130
|
+
]
|
131
|
+
}
|
132
|
+
@schema_stub.should_receive(:attributes)
|
133
|
+
.and_return :itemReviewed => "Im the original tweet that was retreeted", :author => @author_stub, :viewer => @viewer_stub
|
134
|
+
end
|
135
|
+
|
136
|
+
after :each do
|
137
|
+
writer = Writer::Fetcher::Microdata::Review.new @schema_stub
|
138
|
+
writer.hash["properties"].should include @properties_hash
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fetcher-microdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: discoverer
|
@@ -76,15 +76,19 @@ files:
|
|
76
76
|
- lib/fetcher-microdata.rb
|
77
77
|
- lib/fetcher-microdata/article_small.rb
|
78
78
|
- lib/fetcher-microdata/person_user.rb
|
79
|
+
- lib/fetcher-microdata/review.rb
|
79
80
|
- lib/fetcher-microdata/version.rb
|
80
81
|
- lib/writer/fetcher-microdata/article_small.rb
|
81
82
|
- lib/writer/fetcher-microdata/person_user.rb
|
83
|
+
- lib/writer/fetcher-microdata/review.rb
|
82
84
|
- spec/fetcher/microdata/article_small_spec.rb
|
83
85
|
- spec/fetcher/microdata/person_user_spec.rb
|
86
|
+
- spec/fetcher/microdata/review_spec.rb
|
84
87
|
- spec/fetcher/microdata_spec.rb
|
85
88
|
- spec/spec_helper.rb
|
86
89
|
- spec/writer/fetcher/microdata/article_small_spec.rb
|
87
90
|
- spec/writer/fetcher/microdata/person_user_spec.rb
|
91
|
+
- spec/writer/fetcher/microdata/review_spec.rb
|
88
92
|
homepage: http://github.com/Fetcher/fetcher-microdata
|
89
93
|
licenses: []
|
90
94
|
post_install_message:
|
@@ -112,7 +116,9 @@ summary: Abstract classes for Fetcher Microdata serialization of social network
|
|
112
116
|
test_files:
|
113
117
|
- spec/fetcher/microdata/article_small_spec.rb
|
114
118
|
- spec/fetcher/microdata/person_user_spec.rb
|
119
|
+
- spec/fetcher/microdata/review_spec.rb
|
115
120
|
- spec/fetcher/microdata_spec.rb
|
116
121
|
- spec/spec_helper.rb
|
117
122
|
- spec/writer/fetcher/microdata/article_small_spec.rb
|
118
123
|
- spec/writer/fetcher/microdata/person_user_spec.rb
|
124
|
+
- spec/writer/fetcher/microdata/review_spec.rb
|