paperplane-rb 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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