safelyx 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/safelyx.rb +70 -0
  3. metadata +46 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: be6353795b2336aadc2d6bdf84948efa9922f2082d6c9d0a36020a4fde2a7ad9
4
+ data.tar.gz: 00c6460b1382b3dc2783f7208e2f84eb19e76239858086987a8fc74fc9edb4b6
5
+ SHA512:
6
+ metadata.gz: cb3db4bf8abc1548379570ba528dc9d63a490867080cdc3af2b65b6a9eec63ce67d3f6eb960aed394bf6d0f968ed9b63e86d1202ab696399bcbc87ee73998ebd
7
+ data.tar.gz: 5a9f61582894f5155ea60f39e268c3ad6f40da4475733e3e5910bdf6bd547df411080acbe14e59df91285d4549e343f315e1ef557bb9b3c64707e1cda2ef5032
data/safelyx.rb ADDED
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'json'
5
+ require 'uri'
6
+
7
+ module Safelyx
8
+ class Client
9
+ def initialize(key_code = nil)
10
+ @key_code = key_code
11
+ @http_timeout = 10
12
+ end
13
+
14
+ def check_link(link)
15
+ payload = {
16
+ link: link,
17
+ key_code: @key_code
18
+ }
19
+
20
+ make_request('https://safelyx.com/safe-link-checker', payload)
21
+ end
22
+
23
+ def check_email(email)
24
+ payload = {
25
+ email: email,
26
+ key_code: @key_code
27
+ }
28
+
29
+ make_request('https://safelyx.com/safe-email-checker', payload)
30
+ end
31
+
32
+ def check_message(message, skip_link_and_email_checks: false)
33
+ payload = {
34
+ message: message,
35
+ skip_link_and_email_checks: skip_link_and_email_checks,
36
+ key_code: @key_code
37
+ }
38
+
39
+ make_request('https://safelyx.com/safe-message-checker', payload)
40
+ end
41
+
42
+ def check_image(image_url)
43
+ payload = {
44
+ image_url: image_url,
45
+ key_code: @key_code
46
+ }
47
+
48
+ make_request('https://safelyx.com/safe-image-checker', payload)
49
+ end
50
+
51
+ private
52
+
53
+ def make_request(url, payload)
54
+ uri = URI(url)
55
+ http = Net::HTTP.new(uri.host, uri.port)
56
+ http.use_ssl = uri.scheme == 'https'
57
+ http.read_timeout = @http_timeout
58
+
59
+ request = Net::HTTP::Post.new(uri)
60
+ request['Content-Type'] = 'application/json; charset=utf-8'
61
+ request['Accept'] = 'application/json; charset=utf-8'
62
+ request.body = payload.to_json
63
+
64
+ response = http.request(request)
65
+ JSON.parse(response.body, symbolize_names: true)
66
+ rescue StandardError => e
67
+ raise "Request failed: #{e.message}"
68
+ end
69
+ end
70
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: safelyx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Safelyx
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-03-11 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: Safelyx API SDK for Ruby
13
+ email: help@safelyx.com
14
+ executables: []
15
+ extensions: []
16
+ extra_rdoc_files: []
17
+ files:
18
+ - safelyx.rb
19
+ homepage: https://github.com/safelyx/safelyx-ruby
20
+ licenses:
21
+ - ISC
22
+ metadata:
23
+ bug_tracker_uri: https://github.com/safelyx/safelyx-ruby/issues
24
+ changelog_uri: https://github.com/safelyx/safelyx-ruby/releases
25
+ documentation_uri: https://safelyx.com/safe-api
26
+ homepage_uri: https://github.com/safelyx/safelyx-ruby
27
+ source_code_uri: https://github.com/safelyx/safelyx-ruby
28
+ rubygems_mfa_required: 'true'
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 3.0.0
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubygems_version: 3.6.2
44
+ specification_version: 4
45
+ summary: Safelyx API SDK
46
+ test_files: []