embedify 0.1.0 → 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.
Files changed (6) hide show
  1. data/Gemfile +6 -1
  2. data/Gemfile.lock +32 -6
  3. data/VERSION +1 -1
  4. data/embedify.gemspec +13 -4
  5. data/lib/embedify.rb +42 -0
  6. metadata +46 -13
data/Gemfile CHANGED
@@ -10,5 +10,10 @@ group :development do
10
10
  gem "rdoc", "~> 3.12"
11
11
  gem "bundler", "~> 1.0.0"
12
12
  gem "jeweler", "~> 1.8.3"
13
- gem "simplecov", ">= 0"
13
+ gem 'rspec'
14
14
  end
15
+
16
+ gem 'nokogiri'
17
+ gem 'httparty'
18
+ gem 'opengraph', git: 'git://github.com/parasquid/opengraph.git'
19
+ #gem 'opengraph', path: '../opengraph'
data/Gemfile.lock CHANGED
@@ -1,29 +1,55 @@
1
+ GIT
2
+ remote: git://github.com/parasquid/opengraph.git
3
+ revision: f750abbdb50d36f32e2b390cfec58a76d23ede49
4
+ specs:
5
+ opengraph (0.0.4)
6
+ hashie
7
+ nokogiri (~> 1.4.0)
8
+ rest-client (~> 1.6.0)
9
+
1
10
  GEM
2
11
  remote: http://rubygems.org/
3
12
  specs:
13
+ diff-lcs (1.1.3)
4
14
  git (1.2.5)
15
+ hashie (1.2.0)
16
+ httparty (0.8.1)
17
+ multi_json
18
+ multi_xml
5
19
  jeweler (1.8.3)
6
20
  bundler (~> 1.0)
7
21
  git (>= 1.2.5)
8
22
  rake
9
23
  rdoc
10
24
  json (1.6.5)
11
- multi_json (1.0.4)
25
+ mime-types (1.17.2)
26
+ multi_json (1.1.0)
27
+ multi_xml (0.4.1)
28
+ nokogiri (1.4.7)
12
29
  rake (0.9.2.2)
13
30
  rdoc (3.12)
14
31
  json (~> 1.4)
32
+ rest-client (1.6.7)
33
+ mime-types (>= 1.16)
34
+ rspec (2.8.0)
35
+ rspec-core (~> 2.8.0)
36
+ rspec-expectations (~> 2.8.0)
37
+ rspec-mocks (~> 2.8.0)
38
+ rspec-core (2.8.0)
39
+ rspec-expectations (2.8.0)
40
+ diff-lcs (~> 1.1.2)
41
+ rspec-mocks (2.8.0)
15
42
  shoulda (2.11.3)
16
- simplecov (0.5.4)
17
- multi_json (~> 1.0.3)
18
- simplecov-html (~> 0.5.3)
19
- simplecov-html (0.5.3)
20
43
 
21
44
  PLATFORMS
22
45
  ruby
23
46
 
24
47
  DEPENDENCIES
25
48
  bundler (~> 1.0.0)
49
+ httparty
26
50
  jeweler (~> 1.8.3)
51
+ nokogiri
52
+ opengraph!
27
53
  rdoc (~> 3.12)
54
+ rspec
28
55
  shoulda
29
- simplecov
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/embedify.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "embedify"
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tristan Gomez"]
@@ -40,24 +40,33 @@ Gem::Specification.new do |s|
40
40
  s.specification_version = 3
41
41
 
42
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
44
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
45
+ s.add_runtime_dependency(%q<opengraph>, [">= 0"])
43
46
  s.add_development_dependency(%q<shoulda>, [">= 0"])
44
47
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
45
48
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
46
49
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
47
- s.add_development_dependency(%q<simplecov>, [">= 0"])
50
+ s.add_development_dependency(%q<rspec>, [">= 0"])
48
51
  else
52
+ s.add_dependency(%q<nokogiri>, [">= 0"])
53
+ s.add_dependency(%q<httparty>, [">= 0"])
54
+ s.add_dependency(%q<opengraph>, [">= 0"])
49
55
  s.add_dependency(%q<shoulda>, [">= 0"])
50
56
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
51
57
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
52
58
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
53
- s.add_dependency(%q<simplecov>, [">= 0"])
59
+ s.add_dependency(%q<rspec>, [">= 0"])
54
60
  end
55
61
  else
62
+ s.add_dependency(%q<nokogiri>, [">= 0"])
63
+ s.add_dependency(%q<httparty>, [">= 0"])
64
+ s.add_dependency(%q<opengraph>, [">= 0"])
56
65
  s.add_dependency(%q<shoulda>, [">= 0"])
57
66
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
58
67
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
68
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
60
- s.add_dependency(%q<simplecov>, [">= 0"])
69
+ s.add_dependency(%q<rspec>, [">= 0"])
61
70
  end
62
71
  end
63
72
 
data/lib/embedify.rb CHANGED
@@ -0,0 +1,42 @@
1
+ require 'nokogiri'
2
+ require 'httparty'
3
+ require 'opengraph'
4
+
5
+ module Embedify
6
+
7
+ OPENGRAPH_REGEX = /^og:(.+)$/i
8
+
9
+ def self.fetch(uri, options = {})
10
+ begin
11
+ opengraph = OpenGraph.fetch(uri, false)
12
+ rescue SocketError => e
13
+ raise e
14
+ end
15
+
16
+ # check if the opengraph object is complete
17
+ unless opengraph.valid?
18
+ # the opengraph object is lacking some mandatory attributes
19
+ attributes = OpenGraph::Object::MANDATORY_ATTRIBUTES
20
+ attributes.delete 'url'
21
+ attributes.each do |attribute|
22
+ self.send(attribute.to_sym, opengraph)
23
+ end
24
+ end
25
+ opengraph
26
+ end
27
+
28
+ private
29
+
30
+ def self.title(document)
31
+ document['title'] = document[:nokogiri_parsed_document].css('title').first.inner_text
32
+ end
33
+
34
+ def self.type(document)
35
+ document['type'] = 'website'
36
+ end
37
+
38
+ def self.image(document)
39
+ puts "image"
40
+ end
41
+
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embedify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,9 +11,42 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2012-02-20 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: &75319620 !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: *75319620
25
+ - !ruby/object:Gem::Dependency
26
+ name: httparty
27
+ requirement: &75318830 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *75318830
36
+ - !ruby/object:Gem::Dependency
37
+ name: opengraph
38
+ requirement: &75318120 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *75318120
14
47
  - !ruby/object:Gem::Dependency
15
48
  name: shoulda
16
- requirement: &79244500 !ruby/object:Gem::Requirement
49
+ requirement: &75317400 !ruby/object:Gem::Requirement
17
50
  none: false
18
51
  requirements:
19
52
  - - ! '>='
@@ -21,10 +54,10 @@ dependencies:
21
54
  version: '0'
22
55
  type: :development
23
56
  prerelease: false
24
- version_requirements: *79244500
57
+ version_requirements: *75317400
25
58
  - !ruby/object:Gem::Dependency
26
59
  name: rdoc
27
- requirement: &79244180 !ruby/object:Gem::Requirement
60
+ requirement: &75316510 !ruby/object:Gem::Requirement
28
61
  none: false
29
62
  requirements:
30
63
  - - ~>
@@ -32,10 +65,10 @@ dependencies:
32
65
  version: '3.12'
33
66
  type: :development
34
67
  prerelease: false
35
- version_requirements: *79244180
68
+ version_requirements: *75316510
36
69
  - !ruby/object:Gem::Dependency
37
70
  name: bundler
38
- requirement: &79243940 !ruby/object:Gem::Requirement
71
+ requirement: &75315750 !ruby/object:Gem::Requirement
39
72
  none: false
40
73
  requirements:
41
74
  - - ~>
@@ -43,10 +76,10 @@ dependencies:
43
76
  version: 1.0.0
44
77
  type: :development
45
78
  prerelease: false
46
- version_requirements: *79243940
79
+ version_requirements: *75315750
47
80
  - !ruby/object:Gem::Dependency
48
81
  name: jeweler
49
- requirement: &79243670 !ruby/object:Gem::Requirement
82
+ requirement: &75315260 !ruby/object:Gem::Requirement
50
83
  none: false
51
84
  requirements:
52
85
  - - ~>
@@ -54,10 +87,10 @@ dependencies:
54
87
  version: 1.8.3
55
88
  type: :development
56
89
  prerelease: false
57
- version_requirements: *79243670
90
+ version_requirements: *75315260
58
91
  - !ruby/object:Gem::Dependency
59
- name: simplecov
60
- requirement: &79243220 !ruby/object:Gem::Requirement
92
+ name: rspec
93
+ requirement: &75314780 !ruby/object:Gem::Requirement
61
94
  none: false
62
95
  requirements:
63
96
  - - ! '>='
@@ -65,7 +98,7 @@ dependencies:
65
98
  version: '0'
66
99
  type: :development
67
100
  prerelease: false
68
- version_requirements: *79243220
101
+ version_requirements: *75314780
69
102
  description: ! "Embedify is a ruby gem that parses and returns an\n embeddable
70
103
  version of a page, similar to how Facebook fetches and retrieves\n page data
71
104
  when posting a link."
@@ -103,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
136
  version: '0'
104
137
  segments:
105
138
  - 0
106
- hash: -818843341
139
+ hash: 700225327
107
140
  required_rubygems_version: !ruby/object:Gem::Requirement
108
141
  none: false
109
142
  requirements: