paperplane-rb 0.1.1 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b65c9a63f34fa077d0b88b9a018cf567728b42a67629d7869e6d69b4b6658e7
4
- data.tar.gz: 9f6f6c7287ebfd6e735c736780fef0e51b9c9af8d78a1a7f560e41bd9ce6054f
3
+ metadata.gz: 9d551b9cf42a5c0be42eb3942c1cf011f9f1100e182e5c71ee408073a6145d2a
4
+ data.tar.gz: f7f1b0b5a8e47a8caf721b9c537d41cb0549dd18516ce4aa680856dad2793eb7
5
5
  SHA512:
6
- metadata.gz: 0ea7009421febacd77f7c777e780a2b3f55e655ae47078c287d0a994040081c75db977114a978d47659aa00c5de3406eaeb28df7bdc1274fe67ffbc64a30f4cb
7
- data.tar.gz: c4b45a20f30eca4cb0df75395d3dd6d96cd4bdef1467a6206741849b0e150cb16bfdf0227295d6960c2dc5e2f786286c5ed0a9e1d7d1dfa61226302402aa6e35
6
+ metadata.gz: 2cff831860f7f5ae6032aa37c46886f886622d946c6bdddf28318e1c9ff8665379d492b555206c14994e067c57015b44133e3bc1b0485d135e09ee1aacc6fc03
7
+ data.tar.gz: 43cc847cdbf7bbe918abacf3845421c6d5af56015b573ec07f2800a065c0f389a75fca32d0942695a30aaf08bdfd18a7d37d1aa9bbf72b7d2c35d6552904e4ca
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paperplane-rb (0.1.0)
4
+ paperplane-rb (0.1.2)
5
5
  http
6
6
 
7
7
  GEM
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paperplane
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/paperplane.rb CHANGED
@@ -5,46 +5,48 @@ require 'paperplane/error'
5
5
  require 'paperplane/version'
6
6
 
7
7
  module Paperplane
8
- class << self
9
- BASE_URL = 'https://api.paperplane.app/v1'.freeze
10
- ENDPOINTS = {
11
- create_job: '/jobs',
12
- show_job: '/jobs/%{id}',
13
- download_pdf: 'https://download.paperplane.app/'
14
- }.freeze
15
- PAGE_SIZES = %w[A4 Letter Legal Tabloid].freeze
8
+ ENDPOINTS = {
9
+ create_job: 'https://api.paperplane.app/v1/jobs',
10
+ show_job: 'https://api.paperplane.app/v1/jobs/%{id}',
11
+ download_pdf: 'https://download.paperplane.app/'
12
+ }.freeze
13
+ PAGE_SIZES = %w[Letter Legal A3 A4 A5].freeze
16
14
 
15
+ class << self
17
16
  attr_accessor :api_key
18
17
 
19
- def create_job(url, page_size = 'A4')
18
+ def configure
19
+ yield self
20
+ end
21
+
22
+ def create_job(url, page_size: 'A4')
20
23
  validate_page_size!(page_size)
21
- perform_request(:post, :create_job, url, page_size:)
24
+ perform_request(:post, :create_job, url: url, page_size: page_size)
22
25
  end
23
26
 
24
27
  def show_job(id)
25
28
  perform_request(:get, :show_job, id)
26
29
  end
27
30
 
28
- def download_pdf(url, page_size = 'A4')
31
+ def download_pdf(url, page_size: 'A4')
29
32
  validate_page_size!(page_size)
30
- perform_request(:post, :download_pdf, url, page_size:)
33
+ perform_request(:post, :download_pdf, url: url, page_size: page_size)
31
34
  end
32
35
 
33
36
  private
34
37
 
35
38
  def http_client
36
- @http_client ||= HTTP.basic_auth(user: self.api_key, pass: '')
39
+ @http_client ||= HTTP.basic_auth(user: api_key, pass: '')
37
40
  end
38
41
 
39
- def perform_request(method, endpoint_name, *args)
40
- url = build_url(endpoint_name, args[0])
41
- response = http_client.request(method, url, json: args[1])
42
+ def perform_request(method, endpoint_name, **args)
43
+ url = build_url(endpoint_name, **args)
44
+ response = http_client.request(method, url, json: args)
42
45
  validate_response!(response)
43
46
  end
44
47
 
45
- def build_url(endpoint_name, id)
46
- endpoint = ENDPOINTS[endpoint_name]
47
- endpoint.include?('://') ? endpoint : "#{BASE_URL}#{format(endpoint, id:)}"
48
+ def build_url(endpoint_name, **args)
49
+ format(ENDPOINTS[endpoint_name], **args)
48
50
  end
49
51
 
50
52
  def validate_response!(response)
@@ -56,4 +58,4 @@ module Paperplane
56
58
  raise ArgumentError, "Invalid page size '#{page_size}'" unless PAGE_SIZES.include?(page_size)
57
59
  end
58
60
  end
59
- end
61
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperplane-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - nolyoi