opengraph-io 0.1.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.
- checksums.yaml +7 -0
- data/lib/opengraph-io.rb +71 -0
- metadata +59 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: '0238175f69f3c98855a0fd21744ea350870614d4'
|
4
|
+
data.tar.gz: 2f7b0f19aa2aeec920024da9c5edd4023758631c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: aac308d54ef3e4149398cccb171a84b3aa9193f3dee446cba3d676215895f5114adb10dc077189d221437a215fda081524092c6afafdc947ca1a8cc3b588f736
|
7
|
+
data.tar.gz: c822168b321385a6b6c3320069c238c76cbd064a347be358381b7d57b7a6a6bcb9b758b81d57b457bba0a6143a77a5c8c7191e853d9fc81f9690e5047acae631
|
data/lib/opengraph-io.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class OpenGraphIO
|
4
|
+
require 'cgi'
|
5
|
+
require 'json'
|
6
|
+
require 'net/http'
|
7
|
+
attr_accessor :app_id, :cache_ok, :full_render, :version
|
8
|
+
|
9
|
+
|
10
|
+
def initialize(options)
|
11
|
+
# Throw an error if app_id is not present in options hash
|
12
|
+
raise ArgumentError.new(
|
13
|
+
'app_id must be supplied when making requests to the API. '\
|
14
|
+
'Get a free app_id by signing up here: https://www.opengraph.io/'
|
15
|
+
) unless options.has_key?(:app_id)
|
16
|
+
|
17
|
+
@app_id = options[:app_id]
|
18
|
+
|
19
|
+
# Assign options if present, or defaults if not
|
20
|
+
# These can be overridden when making requests through OpenGraphIO#get_site_info
|
21
|
+
@cache_ok =
|
22
|
+
options.has_key?(:cache_ok) ?
|
23
|
+
options[:cache_ok] :
|
24
|
+
true
|
25
|
+
@full_render =
|
26
|
+
options.has_key?(:full_render) ?
|
27
|
+
options[:full_render] :
|
28
|
+
false
|
29
|
+
@version =
|
30
|
+
options.has_key?(:version) ?
|
31
|
+
options[:version] :
|
32
|
+
'1.1'
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_site_info_url(url)
|
36
|
+
'https://opengraph.io/api/' + @version + '/site/' + CGI.escape(url)
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_site_info_query_params(options)
|
40
|
+
query_string_values = {}
|
41
|
+
|
42
|
+
query_string_values[:app_id] =
|
43
|
+
options.has_key?(:app_id) ?
|
44
|
+
options[:app_id] :
|
45
|
+
@app_id
|
46
|
+
|
47
|
+
query_string_values[:cache_ok] =
|
48
|
+
options.has_key?(:cache_ok) ?
|
49
|
+
options[:cache_ok] :
|
50
|
+
@cache_ok
|
51
|
+
|
52
|
+
query_string_values[:full_render] =
|
53
|
+
options.has_key?(:full_render) ?
|
54
|
+
options[:full_render] :
|
55
|
+
@full_render
|
56
|
+
|
57
|
+
query_string_values[:version] =
|
58
|
+
options.has_key?(:version) ?
|
59
|
+
options[:version] :
|
60
|
+
@version
|
61
|
+
|
62
|
+
query_string_values
|
63
|
+
end
|
64
|
+
|
65
|
+
def get_site_info(passed_url, options = {})
|
66
|
+
uri = URI(get_site_info_url(passed_url))
|
67
|
+
uri.query = URI.encode_www_form(get_site_info_query_params(options))
|
68
|
+
response = Net::HTTP.get(uri)
|
69
|
+
parsed = JSON.parse(response)
|
70
|
+
end
|
71
|
+
end
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: opengraph-io
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Will Dana
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-06-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.7'
|
27
|
+
description:
|
28
|
+
email: william.b.dana@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/opengraph-io.rb
|
34
|
+
homepage: https://opengraph.io
|
35
|
+
licenses:
|
36
|
+
- MIT
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 2.6.14
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: A Ruby client for opengraph.io, a website scraper to grab OpenGraph tags
|
58
|
+
or supplement them when they don't exist
|
59
|
+
test_files: []
|