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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/opengraph-io.rb +71 -0
  3. 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
@@ -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: []