fetcher-microdata 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in fetcher-microdata.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Xavier Via
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,36 @@
1
+ # Fetcher::Microdata
2
+
3
+ Supported classes:
4
+
5
+ - schema.org/Person/User > Fetcher::Microdata::PersonUser
6
+
7
+ To do:
8
+
9
+ - Article/Small
10
+
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ gem 'fetcher-microdata'
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install fetcher-microdata
25
+
26
+ ## Usage
27
+
28
+ TODO: Write usage instructions here
29
+
30
+ ## Contributing
31
+
32
+ 1. Fork it
33
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
34
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
35
+ 4. Push to the branch (`git push origin my-new-feature`)
36
+ 5. Create new Pull Request
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/fetcher-microdata/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Xavier Via"]
6
+ gem.email = ["xavierviacanel@gmail.com"]
7
+ gem.description = %q{Abstract classes for Fetcher Microdata serialization of social network data}
8
+ gem.summary = %q{Abstract classes for Fetcher Microdata serialization of social network data}
9
+ gem.homepage = "http://github.com/Fetcher/fetcher-microdata"
10
+
11
+ gem.add_dependency 'discoverer'
12
+
13
+ gem.add_development_dependency 'rspec'
14
+ gem.add_development_dependency 'pry'
15
+
16
+ gem.files = `git ls-files`.split($\)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.name = "fetcher-microdata"
20
+ gem.require_paths = ["lib"]
21
+ gem.version = Fetcher::Microdata::VERSION
22
+ end
@@ -0,0 +1,44 @@
1
+ require 'discoverer'
2
+
3
+ module Fetcher
4
+ class Microdata
5
+ include Discoverer::Writer
6
+ include Virtus
7
+
8
+ attr_reader :_type
9
+
10
+ def initialize *arguments
11
+ if arguments.first.is_a? Symbol
12
+ social_network = arguments.shift
13
+ self.attributes = coerce social_network, *arguments
14
+ elsif arguments.first.is_a? Hash
15
+ self.attributes = arguments.first
16
+ end
17
+ end
18
+
19
+ def coerce social_network, *raw_data
20
+ begin
21
+ eval("::#{self.class}::#{social_network.to_s.capitalize}::Coercer").call *raw_data
22
+ rescue NameError => e
23
+ if e.message.include? "#{self.class}::#{social_network.to_s.capitalize}"
24
+ raise UnknownSocialNetworkError,
25
+ "Couldn't find coertion algorithm for '#{social_network}' social network, please require 'fetcher-microdata-#{social_network}' in your project and make sure it has a #{self.class}::#{social_network.to_s.capitalize}::Coercer"
26
+ else
27
+ raise e
28
+ end
29
+ end
30
+ end
31
+
32
+ # Exceptions
33
+ #######################################
34
+
35
+ class UnknownSocialNetworkError < StandardError; end
36
+ end
37
+ end
38
+
39
+ require 'fetcher-microdata/version'
40
+ require 'fetcher-microdata/person_user'
41
+ require 'fetcher-microdata/article_small'
42
+
43
+ require 'writer/fetcher-microdata/person_user'
44
+ require 'writer/fetcher-microdata/article_small'
@@ -0,0 +1,20 @@
1
+ module Fetcher
2
+ class Microdata
3
+ class ArticleSmall < Fetcher::Microdata
4
+
5
+ def initialize *args
6
+ super *args
7
+ @_type = "http://schema.org/Article/Small"
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
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ module Fetcher
2
+ class Microdata
3
+ class PersonUser < Fetcher::Microdata
4
+
5
+ def initialize *args
6
+ super *args
7
+ @_type = 'http://schema.org/Person/User'
8
+ end
9
+
10
+ attribute :additionalType
11
+ attribute :id
12
+ attribute :name
13
+ attribute :dateRegistered
14
+ attribute :description
15
+ attribute :url
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ module Fetcher
2
+ class Microdata
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,44 @@
1
+ module Writer
2
+ module Fetcher
3
+ module Microdata
4
+ class ArticleSmall
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
+ }
39
+ }
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,42 @@
1
+ module Writer
2
+ module Fetcher
3
+ module Microdata
4
+ class PersonUser
5
+ attr_accessor :source
6
+
7
+ def initialize the_source
8
+ @source = the_source
9
+ end
10
+
11
+ def hash
12
+ @attributes = @source.attributes
13
+ {
14
+ "type" => [
15
+ @source._type
16
+ ],
17
+ "properties" => {
18
+ "additionalType" => [
19
+ @attributes[:additionalType]
20
+ ],
21
+ "Item#id" => [
22
+ @attributes[:id]
23
+ ],
24
+ "name" => [
25
+ @attributes[:name]
26
+ ],
27
+ "User#dateRegistered" => [
28
+ @attributes[:dateRegistered]
29
+ ],
30
+ "description" => [
31
+ @attributes[:description]
32
+ ],
33
+ "url" => [
34
+ @attributes[:url]
35
+ ]
36
+ }
37
+ }
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fetcher::Microdata::ArticleSmall do
4
+ describe '.new' do
5
+ it 'should set the _type to schema.org/Article/Small' do
6
+ article = Fetcher::Microdata::ArticleSmall.new @argument, @viewer
7
+ article._type.should == "http://schema.org/Article/Small"
8
+ end
9
+ end
10
+
11
+ it 'should inherit from Fetcher::Microdata' do
12
+ Fetcher::Microdata::ArticleSmall.superclass.should == Fetcher::Microdata
13
+ end
14
+
15
+ describe 'attributes' do
16
+ before do
17
+ Fetcher::Microdata::ArticleSmall.any_instance.stub :coerce
18
+ end
19
+
20
+ it 'should set attribute additionalType' do
21
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
22
+ .attributes.should have_key :additionalType
23
+ end
24
+
25
+ it 'should set attribute id' do
26
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
27
+ .attributes.should have_key :id
28
+ end
29
+
30
+ it 'should set attribute articleBody' do
31
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
32
+ .attributes.should have_key :articleBody
33
+ end
34
+
35
+ it 'should set attribute author' do
36
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
37
+ .attributes.should have_key :author
38
+ end
39
+
40
+ it 'should set attribute viewer' do
41
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
42
+ .attributes.should have_key :viewer
43
+ end
44
+
45
+ it 'should set attribute dateCreated' do
46
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
47
+ .attributes.should have_key :dateCreated
48
+ end
49
+
50
+ it 'should set attribute provider' do
51
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
52
+ .attributes.should have_key :provider
53
+ end
54
+
55
+ it 'should set attribute url' do
56
+ Fetcher::Microdata::ArticleSmall.new(@argument_stub, @viewer_stub)
57
+ .attributes.should have_key :url
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fetcher::Microdata::PersonUser do
4
+ describe '.new' do
5
+ it 'should set the _type to schema.org/Person/User' do
6
+ person = Fetcher::Microdata::PersonUser.new @argument
7
+ person._type.should == "http://schema.org/Person/User"
8
+ end
9
+ end
10
+
11
+ it 'should inherit from Fetcher::Microdata' do
12
+ Fetcher::Microdata::PersonUser.superclass.should == Fetcher::Microdata
13
+ end
14
+
15
+ describe 'attributes' do
16
+ before do
17
+ @argument_stub = {}
18
+ end
19
+
20
+ it 'should have the attribute additionalType' do
21
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :additionalType
22
+ end
23
+
24
+ it 'should have the attribute id' do
25
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :id
26
+ end
27
+
28
+ it 'should have the attribute name' do
29
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :name
30
+ end
31
+
32
+ it 'should have the attribute dateRegistered' do
33
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :dateRegistered
34
+ end
35
+
36
+ it 'should have the attribute description' do
37
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :description
38
+ end
39
+
40
+ it 'should have the attribute url' do
41
+ Fetcher::Microdata::PersonUser.new(@argument_stub).attributes.should have_key :url
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fetcher::Microdata do
4
+ before do
5
+ class OnTheFly < Fetcher::Microdata; end
6
+ end
7
+
8
+ it 'should include Discoverer::Writer' do
9
+ OnTheFly.ancestors.should include Discoverer::Writer
10
+ end
11
+
12
+ it 'should include Virtus' do
13
+ OnTheFly.ancestors.should include Virtus
14
+ end
15
+
16
+ describe '.new' do
17
+ context 'a social network flag and a social network specific data is passed' do
18
+ it 'should call the right coercer' do
19
+ social_network = :facebook
20
+ user_data = stub 'user data'
21
+ final_data = stub 'final_data'
22
+
23
+ Fetcher::Microdata.any_instance
24
+ .should_receive(:coerce)
25
+ .with(social_network, user_data)
26
+ .and_return final_data
27
+ Fetcher::Microdata.any_instance.should_receive(:attributes=)
28
+ .with(final_data)
29
+
30
+ Fetcher::Microdata.new social_network, user_data
31
+ end
32
+ end
33
+
34
+ context 'the person is initialized with a hash' do
35
+ it 'should accept the hash as an argument and pass it to attributes' do
36
+ attribute_hash = {}
37
+ Fetcher::Microdata.any_instance.should_receive(:attributes=)
38
+ .with attribute_hash
39
+ Fetcher::Microdata.new attribute_hash
40
+ end
41
+ end
42
+ end
43
+
44
+ describe '#coerce' do
45
+ context 'the right coercer exists for a subclass' do
46
+ it 'should return call the right coercer with the data and return the result' do
47
+ module Fetcher; class Microdata; class SubClass < Fetcher::Microdata; module Facebook; Coercer = proc {|message| }; end; end; end; end
48
+
49
+ raw_data = stub 'data'
50
+ final_data = stub 'final_data'
51
+ Fetcher::Microdata::SubClass::Facebook::Coercer.should_receive(:call)
52
+ .with(raw_data)
53
+ .and_return final_data
54
+ Fetcher::Microdata::SubClass.any_instance.should_receive(:attributes=).with final_data
55
+ Fetcher::Microdata::SubClass.new :facebook, raw_data
56
+ end
57
+ end
58
+
59
+ context 'there is no such coercer' do
60
+ it 'should raise a relevant error' do
61
+ raw_data = stub 'data'
62
+ final_data = stub 'final_data'
63
+ Fetcher::Microdata.any_instance.stub(:attributes=)
64
+ expect { Fetcher::Microdata.new :strange, raw_data
65
+ }.to raise_error Fetcher::Microdata::UnknownSocialNetworkError,
66
+ "Couldn't find coertion algorithm for 'strange' social network, please require 'fetcher-microdata-strange' in your project and make sure it has a Fetcher::Microdata::Strange::Coercer"
67
+ end
68
+ end
69
+
70
+ context 'there was a name error but not implying the social network' do
71
+ it 'should let it rise' do
72
+ module Fetcher; class Microdata; module Red; Coercer = proc {}; end; end; end
73
+ raw_data = stub 'data'
74
+ Fetcher::Microdata::Red::Coercer.should_receive(:call).and_raise NameError.new 'no description'
75
+ expect { Fetcher::Microdata.new :red, raw_data
76
+ }.to raise_error NameError, 'no description'
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,3 @@
1
+ require 'pry'
2
+
3
+ require 'fetcher-microdata'
@@ -0,0 +1,133 @@
1
+ require 'spec_helper'
2
+
3
+ describe Writer::Fetcher::Microdata::ArticleSmall 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::ArticleSmall.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
+
123
+ @schema_stub.should_receive(:attributes)
124
+ .and_return :url => "http://myurl.info", :author => @author_stub, :viewer => @viewer_stub
125
+ end
126
+
127
+ after :each do
128
+ writer = Writer::Fetcher::Microdata::ArticleSmall.new @schema_stub
129
+ writer.hash["properties"].should include @properties_hash
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,93 @@
1
+ require 'spec_helper'
2
+
3
+ describe Writer::Fetcher::Microdata::PersonUser do
4
+ it 'should have a proper initializer to a Writer' do
5
+ user_stub = stub 'user'
6
+ writer = Writer::Fetcher::Microdata::PersonUser.new user_stub
7
+ writer.source.should == user_stub
8
+ end
9
+
10
+ describe '#hash' do
11
+ before do
12
+ @user_stub = stub 'user'
13
+ end
14
+
15
+ it 'should return the type' do
16
+ final_hash = {
17
+ "type" => [
18
+ "some type"
19
+ ]
20
+ }
21
+
22
+ @user_stub.should_receive(:_type).and_return "some type"
23
+ @user_stub.should_receive(:attributes).and_return stub :[] => nil
24
+ writer = Writer::Fetcher::Microdata::PersonUser.new @user_stub
25
+ writer.hash.should include final_hash
26
+ end
27
+
28
+ describe 'properties hash' do
29
+ before do
30
+ @user_stub.should_receive :_type
31
+ end
32
+
33
+ it 'should include the additionalType' do
34
+ @properties_hash = {
35
+ "additionalType" => [
36
+ "http://getfetcher.net/Item"
37
+ ]
38
+ }
39
+ @user_stub.should_receive(:attributes).and_return :additionalType => "http://getfetcher.net/Item"
40
+ end
41
+
42
+ it 'should include the Item#id' do
43
+ @properties_hash = {
44
+ "Item#id" => [
45
+ 234525
46
+ ]
47
+ }
48
+ @user_stub.should_receive(:attributes).and_return :id => 234525
49
+ end
50
+
51
+ it 'should include the name' do
52
+ @properties_hash = {
53
+ "name" => [
54
+ "Marcus"
55
+ ]
56
+ }
57
+ @user_stub.should_receive(:attributes).and_return :name => "Marcus"
58
+ end
59
+
60
+ it 'should include the dateRegistered' do
61
+ @properties_hash = {
62
+ "User#dateRegistered" => [
63
+ 456468768
64
+ ]
65
+ }
66
+ @user_stub.should_receive(:attributes).and_return :dateRegistered => 456468768
67
+ end
68
+
69
+ it 'should include the description' do
70
+ @properties_hash = {
71
+ "description" => [
72
+ 456468768
73
+ ]
74
+ }
75
+ @user_stub.should_receive(:attributes).and_return :description => 456468768
76
+ end
77
+
78
+ it 'should include the url' do
79
+ @properties_hash = {
80
+ "url" => [
81
+ 456468768
82
+ ]
83
+ }
84
+ @user_stub.should_receive(:attributes).and_return :url => 456468768
85
+ end
86
+
87
+ after :each do
88
+ writer = Writer::Fetcher::Microdata::PersonUser.new @user_stub
89
+ writer.hash["properties"].should include @properties_hash
90
+ end
91
+ end
92
+ end
93
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fetcher-microdata
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Xavier Via
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: discoverer
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: pry
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Abstract classes for Fetcher Microdata serialization of social network
63
+ data
64
+ email:
65
+ - xavierviacanel@gmail.com
66
+ executables: []
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - .gitignore
71
+ - Gemfile
72
+ - LICENSE
73
+ - README.md
74
+ - Rakefile
75
+ - fetcher-microdata.gemspec
76
+ - lib/fetcher-microdata.rb
77
+ - lib/fetcher-microdata/article_small.rb
78
+ - lib/fetcher-microdata/person_user.rb
79
+ - lib/fetcher-microdata/version.rb
80
+ - lib/writer/fetcher-microdata/article_small.rb
81
+ - lib/writer/fetcher-microdata/person_user.rb
82
+ - spec/fetcher/microdata/article_small_spec.rb
83
+ - spec/fetcher/microdata/person_user_spec.rb
84
+ - spec/fetcher/microdata_spec.rb
85
+ - spec/spec_helper.rb
86
+ - spec/writer/fetcher/microdata/article_small_spec.rb
87
+ - spec/writer/fetcher/microdata/person_user_spec.rb
88
+ homepage: http://github.com/Fetcher/fetcher-microdata
89
+ licenses: []
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 1.8.24
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: Abstract classes for Fetcher Microdata serialization of social network data
112
+ test_files:
113
+ - spec/fetcher/microdata/article_small_spec.rb
114
+ - spec/fetcher/microdata/person_user_spec.rb
115
+ - spec/fetcher/microdata_spec.rb
116
+ - spec/spec_helper.rb
117
+ - spec/writer/fetcher/microdata/article_small_spec.rb
118
+ - spec/writer/fetcher/microdata/person_user_spec.rb