digto 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/digto.rb +60 -0
  3. metadata +71 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d88b1ab87fba1bfed93376a7a284071ee3b93e5da249064fa8a9a387cd40a1a4
4
+ data.tar.gz: f333ffd229d02c7eca76807d5600e025706e6233ee0adf8a9d386bfa24fa7b27
5
+ SHA512:
6
+ metadata.gz: 2cd1be4c4100c2631357d580d9747d9ae0625400a4c49f7922d4bb0792a0469cb48228a68e0493e715b168c4d05826ab012f2cd2d9256ad0af1b51c464381c6a
7
+ data.tar.gz: 298e492f35dbd5a16ecf3e0b45d241f4785f1a900ee6662cbbc4c07d9773ad8fcfe92d1fa39c2e0d7d1be1c59d8dbcebdd5f464500926570f090b4069a816577
data/lib/digto.rb ADDED
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'http'
4
+
5
+ # Digto
6
+ module Digto
7
+ # Client
8
+ class Client
9
+ attr_accessor :api_url, :subdomain
10
+
11
+ def initialize(subdomain)
12
+ @api_url = 'https://digto.org'
13
+ @subdomain = subdomain
14
+ end
15
+
16
+ def next
17
+ url = "#{@api_url}/#{@subdomain}"
18
+
19
+ res = HTTP.get(url)
20
+ Digto.check_res_err(res)
21
+
22
+ Session.new(url, res)
23
+ end
24
+ end
25
+
26
+ # Session
27
+ class Session
28
+ attr_accessor :url, :method, :headers, :body
29
+
30
+ def initialize(url, res)
31
+ @url = res.headers['Digto-URL']
32
+ @method = res.headers['Digto-Method']
33
+ @headers = res.headers
34
+ @body = res.body
35
+
36
+ @api_url = url
37
+ @res = res
38
+ @done = false
39
+ end
40
+
41
+ def response(status = 200, headers = {}, body = nil)
42
+ raise 'already sent response' if @done
43
+
44
+ @done = true
45
+
46
+ headers['Digto-ID'] = @res.headers['Digto-ID']
47
+ headers['Digto-Status'] = status
48
+
49
+ res = HTTP.headers(headers).post(@api_url, body)
50
+ Digto.check_res_err(res)
51
+
52
+ res
53
+ end
54
+ end
55
+
56
+ def self.check_res_err(res)
57
+ err = res.headers['Digto-Error']
58
+ raise err if err
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: digto
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yad Smood
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-12-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: http
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: https://github.com/ysmood/digto
42
+ email: ys@ysmood.org
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/digto.rb
48
+ homepage: https://github.com/ysmood/digto
49
+ licenses:
50
+ - MIT
51
+ metadata: {}
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubygems_version: 3.0.6
68
+ signing_key:
69
+ specification_version: 4
70
+ summary: Ruby implementaion for digto
71
+ test_files: []