panda_doc 0.4.0 → 0.5.1
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 +5 -5
- data/.travis.yml +25 -5
- data/CHANGELOG.md +67 -1
- data/Gemfile +2 -2
- data/README.md +39 -6
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/lib/panda_doc.rb +19 -7
- data/lib/panda_doc/api_client.rb +12 -8
- data/lib/panda_doc/coercions.rb +9 -0
- data/lib/panda_doc/configuration.rb +7 -18
- data/lib/panda_doc/document.rb +7 -1
- data/lib/panda_doc/failure_result.rb +3 -1
- data/lib/panda_doc/objects/base.rb +9 -0
- data/lib/panda_doc/objects/document.rb +18 -8
- data/lib/panda_doc/objects/error.rb +5 -5
- data/lib/panda_doc/objects/field.rb +14 -0
- data/lib/panda_doc/objects/recipient.rb +11 -8
- data/lib/panda_doc/objects/session.rb +5 -5
- data/lib/panda_doc/objects/token.rb +10 -0
- data/lib/panda_doc/response_factory.rb +7 -15
- data/lib/panda_doc/success_result.rb +2 -0
- data/lib/panda_doc/types.rb +13 -0
- data/lib/panda_doc/version.rb +3 -1
- data/panda_doc.gemspec +10 -11
- metadata +40 -32
- data/lib/panda_doc/objects/status.rb +0 -9
- data/lib/panda_doc/responses/document.rb +0 -21
- data/lib/panda_doc/responses/error.rb +0 -10
- data/lib/panda_doc/responses/session.rb +0 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 9178f289db10d3bf60e5a5ae645ff003d03826d05a6f5fe70d015beb68e6ecc5
         | 
| 4 | 
            +
              data.tar.gz: bac876ff0320cf75eac8fe8ec1c9c37992d9aa30961b257313d307fc5ab0314d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d024634cfcb55517bae71a144d8107d9a9d2cb03fa63d022b00c511d5a2f730b86592a0d14a6417db52b895ebea612ec57131e0327268c0167d024f76895a650
         | 
| 7 | 
            +
              data.tar.gz: 04144545c90646efe63f32f4c7c02a15b6ed7e00736e5d19b91a01810e886fedffb8036897a2d89f16395c2f3364df38ccb515f306e8a5536594985a6e5ff221
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -1,12 +1,32 @@ | |
| 1 1 | 
             
            language: ruby
         | 
| 2 | 
            +
            os: linux
         | 
| 3 | 
            +
            dist: xenial
         | 
| 2 4 |  | 
| 3 5 | 
             
            cache:
         | 
| 4 6 | 
             
              - bundler
         | 
| 5 7 |  | 
| 6 8 | 
             
            rvm:
         | 
| 7 | 
            -
              - 2. | 
| 8 | 
            -
              - 2. | 
| 9 | 
            +
              - 2.5
         | 
| 10 | 
            +
              - 2.6
         | 
| 11 | 
            +
              - 2.7
         | 
| 12 | 
            +
              - 3.0
         | 
| 9 13 |  | 
| 10 | 
            -
             | 
| 11 | 
            -
               | 
| 12 | 
            -
                 | 
| 14 | 
            +
            env:
         | 
| 15 | 
            +
              global:
         | 
| 16 | 
            +
                - CC_TEST_REPORTER_ID=d1d9c0636042863489880dbdf1c8865721b9b70f4199d612d77ee2dcfc803704
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            before_install:
         | 
| 19 | 
            +
              - gem update --system
         | 
| 20 | 
            +
              - gem install bundler
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            before_script:
         | 
| 23 | 
            +
              - bundle update
         | 
| 24 | 
            +
              - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
         | 
| 25 | 
            +
              - chmod +x ./cc-test-reporter
         | 
| 26 | 
            +
              - ./cc-test-reporter before-build
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            script:
         | 
| 29 | 
            +
              - bin/rake
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            after_script:
         | 
| 32 | 
            +
              - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -4,6 +4,66 @@ All notable changes to this project will be documented in this file. | |
| 4 4 |  | 
| 5 5 | 
             
            ## [Unreleased]
         | 
| 6 6 |  | 
| 7 | 
            +
            ## [0.5.1][] (2021-01-08)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            New:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            - Add `fields` to the document details response:
         | 
| 12 | 
            +
              ```ruby
         | 
| 13 | 
            +
                document = PandaDoc::Document.details("uuid")
         | 
| 14 | 
            +
                document.fields.first.name
         | 
| 15 | 
            +
                => "Field Name"
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                docuemnt.fields.first.value
         | 
| 18 | 
            +
                => "Field Value"
         | 
| 19 | 
            +
              ```
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ## [0.5.0][] (2021-01-06)
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            New:
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            - Replace virtus with dry-struct.
         | 
| 26 | 
            +
            - Drop support for ruby < 2.5.
         | 
| 27 | 
            +
            - Add support for API-Key authentication.
         | 
| 28 | 
            +
              ```ruby
         | 
| 29 | 
            +
                PandaDoc.configure do |config|
         | 
| 30 | 
            +
                  config.api_key = "API Key"
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              ```
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            - Add `id`, `expiration_date` and `version` to the response Document Object.
         | 
| 35 | 
            +
            - Add [Document details](https://developers.pandadoc.com/reference#document-details) endpoint
         | 
| 36 | 
            +
              ```ruby
         | 
| 37 | 
            +
                document = PandaDoc::Document.details("uuid")
         | 
| 38 | 
            +
                document.tokens.first.name
         | 
| 39 | 
            +
                => "Token.Name"
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                docuemnt.tokens.first.value
         | 
| 42 | 
            +
                => "Token Value"
         | 
| 43 | 
            +
              ```
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            - Add ruby 3.0 to test coverage.
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            ## [0.4.3][] (2019-03-06)
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            Fixes:
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            - Relax bundler dependency
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            ## [0.4.2][] (2019-03-06)
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            Fixes:
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            - Relax faraday dependency
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            ## [0.4.1][] (2018-04-24)
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            Fixes:
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            - Remove deprecated `codeclimate-test-reporter`. (by @nicolasleger)
         | 
| 64 | 
            +
            - Add ruby 2.4, 2.5 to test coverage. (by @nicolasleger)
         | 
| 65 | 
            +
            - Update README with logger examples. (by @nicolasleger)
         | 
| 66 | 
            +
             | 
| 7 67 | 
             
            ## [0.4.0][] (2016-05-19)
         | 
| 8 68 |  | 
| 9 69 | 
             
            New:
         | 
| @@ -89,6 +149,7 @@ New: | |
| 89 149 | 
             
            - Introduce `logger` configuration's option to debug requests/responses.
         | 
| 90 150 |  | 
| 91 151 | 
             
              ```ruby
         | 
| 152 | 
            +
              require 'logger'
         | 
| 92 153 | 
             
              PandaDoc.configure do |config|
         | 
| 93 154 | 
             
                config.logger = Logger.new(STDOUT)
         | 
| 94 155 | 
             
              end
         | 
| @@ -102,7 +163,12 @@ Fixes: | |
| 102 163 |  | 
| 103 164 | 
             
            - Initial release
         | 
| 104 165 |  | 
| 105 | 
            -
            [Unreleased]: https://github.com/opti/panda_doc/compare/v0. | 
| 166 | 
            +
            [Unreleased]: https://github.com/opti/panda_doc/compare/v0.5.1...HEAD
         | 
| 167 | 
            +
            [0.5.1]: https://github.com/opti/panda_doc/compare/v0.5.0...v0.5.1
         | 
| 168 | 
            +
            [0.5.0]: https://github.com/opti/panda_doc/compare/v0.4.3...v0.5.0
         | 
| 169 | 
            +
            [0.4.3]: https://github.com/opti/panda_doc/compare/v0.4.2...v0.4.3
         | 
| 170 | 
            +
            [0.4.2]: https://github.com/opti/panda_doc/compare/v0.4.1...v0.4.2
         | 
| 171 | 
            +
            [0.4.1]: https://github.com/opti/panda_doc/compare/v0.4.0...v0.4.1
         | 
| 106 172 | 
             
            [0.4.0]: https://github.com/opti/panda_doc/compare/v0.3.2...v0.4.0
         | 
| 107 173 | 
             
            [0.3.2]: https://github.com/opti/panda_doc/compare/v0.3.1...v0.3.2
         | 
| 108 174 | 
             
            [0.3.1]: https://github.com/opti/panda_doc/compare/v0.3.0...v0.3.1
         | 
    
        data/Gemfile
    CHANGED
    
    | @@ -3,11 +3,11 @@ source 'https://rubygems.org' | |
| 3 3 | 
             
            # Specify your gem's dependencies in panda_doc.gemspec
         | 
| 4 4 | 
             
            gemspec
         | 
| 5 5 |  | 
| 6 | 
            -
            gem "bundler" | 
| 6 | 
            +
            gem "bundler"
         | 
| 7 7 | 
             
            gem "rake",    ">= 10.0"
         | 
| 8 8 | 
             
            gem "rspec",   "~> 3.4"
         | 
| 9 9 | 
             
            gem "byebug"
         | 
| 10 10 |  | 
| 11 11 | 
             
            group :test do
         | 
| 12 | 
            -
              gem  | 
| 12 | 
            +
              gem 'simplecov', require: false
         | 
| 13 13 | 
             
            end
         | 
    
        data/README.md
    CHANGED
    
    | @@ -25,8 +25,13 @@ Or install it yourself as: | |
| 25 25 |  | 
| 26 26 | 
             
            ## Configuration
         | 
| 27 27 |  | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 28 | 
            +
            Both [API-Key](https://developers.pandadoc.com/reference#api-key-authentication-process) and [oAuth2.0 access token](https://developers.pandadoc.com/reference#authentication-process) authentications are supported.
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            ```ruby
         | 
| 31 | 
            +
            PandaDoc.configure do |config|
         | 
| 32 | 
            +
              config.api_key = "api key"
         | 
| 33 | 
            +
            end
         | 
| 34 | 
            +
            ```
         | 
| 30 35 |  | 
| 31 36 | 
             
            ```ruby
         | 
| 32 37 | 
             
            PandaDoc.configure do |config|
         | 
| @@ -67,7 +72,7 @@ document.created_at # => #<DateTime: 2016-02-03T14:56:21-08:00> | |
| 67 72 | 
             
            document.updated_at # => #<DateTime: 2016-02-03T14:56:21-08:00>
         | 
| 68 73 | 
             
            ```
         | 
| 69 74 |  | 
| 70 | 
            -
            #### Creating a document from attached file
         | 
| 75 | 
            +
            #### Creating a document from attached file ([API](https://developers.pandadoc.com/reference#create-document-from-pdf))
         | 
| 71 76 |  | 
| 72 77 | 
             
            ```ruby
         | 
| 73 78 | 
             
            file = UploadIO.new("/path/to/file.pdf", "application/pdf")
         | 
| @@ -92,7 +97,7 @@ document = PandaDoc::Document.create( | |
| 92 97 | 
             
            )
         | 
| 93 98 | 
             
            ```
         | 
| 94 99 |  | 
| 95 | 
            -
            #### Creating a document from a template
         | 
| 100 | 
            +
            #### Creating a document from a template ([API](https://developers.pandadoc.com/reference#create-document-from-pandadoc-template))
         | 
| 96 101 |  | 
| 97 102 | 
             
            ```ruby
         | 
| 98 103 | 
             
            document = PandaDoc::Document.create(
         | 
| @@ -107,6 +112,10 @@ document = PandaDoc::Document.create( | |
| 107 112 | 
             
                  default: false
         | 
| 108 113 | 
             
                }
         | 
| 109 114 | 
             
              ],
         | 
| 115 | 
            +
              tokens: [
         | 
| 116 | 
            +
                { name: "Token.Name", value: "Token Value" },
         | 
| 117 | 
            +
                { name: "Token.AnotherName", value: "2021" }
         | 
| 118 | 
            +
              ],
         | 
| 110 119 | 
             
              fields: {
         | 
| 111 120 | 
             
                field_id: {
         | 
| 112 121 | 
             
                  value: "Field 1"
         | 
| @@ -115,7 +124,7 @@ document = PandaDoc::Document.create( | |
| 115 124 | 
             
            )
         | 
| 116 125 | 
             
            ```
         | 
| 117 126 |  | 
| 118 | 
            -
            #### Getting a document status
         | 
| 127 | 
            +
            #### Getting a document status ([API](https://developers.pandadoc.com/reference#document-status))
         | 
| 119 128 |  | 
| 120 129 | 
             
            ```ruby
         | 
| 121 130 | 
             
            document = PandaDoc::Document.find("UUID")
         | 
| @@ -124,7 +133,21 @@ document.status       # => "draft" | |
| 124 133 | 
             
            document.updated_at   # => <DateTime: 2016-02-03T17:41:00-08:00>
         | 
| 125 134 | 
             
            ```
         | 
| 126 135 |  | 
| 127 | 
            -
            ####  | 
| 136 | 
            +
            #### Getting a document details ([API](https://developers.pandadoc.com/reference#document-details))
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            ```ruby
         | 
| 139 | 
            +
            document = PandaDoc::Document.details("UUID")
         | 
| 140 | 
            +
             | 
| 141 | 
            +
            document.tokens
         | 
| 142 | 
            +
            => [#<PandaDoc::Objects::Token name="Token.Name" value="Token Value">,
         | 
| 143 | 
            +
                #<PandaDoc::Objects::Token name="token.another_name" value="2021">]
         | 
| 144 | 
            +
             | 
| 145 | 
            +
            document.fields
         | 
| 146 | 
            +
            => [#<PandaDoc::Objects::Field uuid="...>,
         | 
| 147 | 
            +
                #<PandaDoc::Objects::Field uuid="...>]
         | 
| 148 | 
            +
            ```
         | 
| 149 | 
            +
             | 
| 150 | 
            +
            #### Sending a document ([API](https://developers.pandadoc.com/reference#send-document))
         | 
| 128 151 |  | 
| 129 152 | 
             
            ```ruby
         | 
| 130 153 | 
             
            PandaDoc::Document.send("UUID", message: "A message to include into the email")
         | 
| @@ -142,6 +165,15 @@ session.id # => "adssdAvyDXBS" | |
| 142 165 | 
             
            session.expires_at # => #<DateTime: 2016-02-03T14:56:21-08:00>
         | 
| 143 166 | 
             
            ```
         | 
| 144 167 |  | 
| 168 | 
            +
            #### Downloading a document ([API](https://developers.pandadoc.com/reference#download-document))
         | 
| 169 | 
            +
             | 
| 170 | 
            +
            ```ruby
         | 
| 171 | 
            +
            response = PandaDoc::Document.download("uuid")
         | 
| 172 | 
            +
            file = File.open("document.pdf", "w") do |f|
         | 
| 173 | 
            +
              response.body
         | 
| 174 | 
            +
            end
         | 
| 175 | 
            +
            ```
         | 
| 176 | 
            +
             | 
| 145 177 | 
             
            #### Error handling
         | 
| 146 178 |  | 
| 147 179 | 
             
            If an error occurs during an API request it will be wrapped into a plain ruby
         | 
| @@ -161,6 +193,7 @@ end | |
| 161 193 | 
             
            You can configure a logger if you need to debug your requests/responses
         | 
| 162 194 |  | 
| 163 195 | 
             
            ```ruby
         | 
| 196 | 
            +
            require 'logger'
         | 
| 164 197 | 
             
            PandaDoc.configure do |config|
         | 
| 165 198 | 
             
              config.logger = Logger.new(STDOUT)
         | 
| 166 199 | 
             
            end
         | 
    
        data/bin/rake
    ADDED
    
    | @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            # This file was generated by Bundler.
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            # The application 'rake' is installed as part of a gem, and
         | 
| 8 | 
            +
            # this file is here to facilitate running it.
         | 
| 9 | 
            +
            #
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            require "pathname"
         | 
| 12 | 
            +
            ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
         | 
| 13 | 
            +
              Pathname.new(__FILE__).realpath)
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            bundle_binstub = File.expand_path("../bundle", __FILE__)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            if File.file?(bundle_binstub)
         | 
| 18 | 
            +
              if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
         | 
| 19 | 
            +
                load(bundle_binstub)
         | 
| 20 | 
            +
              else
         | 
| 21 | 
            +
                abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
         | 
| 22 | 
            +
            Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            require "rubygems"
         | 
| 27 | 
            +
            require "bundler/setup"
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            load Gem.bin_path("rake", "rake")
         | 
    
        data/bin/rspec
    ADDED
    
    | @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            #
         | 
| 5 | 
            +
            # This file was generated by Bundler.
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
            # The application 'rspec' is installed as part of a gem, and
         | 
| 8 | 
            +
            # this file is here to facilitate running it.
         | 
| 9 | 
            +
            #
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            require "pathname"
         | 
| 12 | 
            +
            ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
         | 
| 13 | 
            +
              Pathname.new(__FILE__).realpath)
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            bundle_binstub = File.expand_path("../bundle", __FILE__)
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            if File.file?(bundle_binstub)
         | 
| 18 | 
            +
              if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
         | 
| 19 | 
            +
                load(bundle_binstub)
         | 
| 20 | 
            +
              else
         | 
| 21 | 
            +
                abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
         | 
| 22 | 
            +
            Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            require "rubygems"
         | 
| 27 | 
            +
            require "bundler/setup"
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            load Gem.bin_path("rspec-core", "rspec")
         | 
    
        data/lib/panda_doc.rb
    CHANGED
    
    | @@ -1,27 +1,39 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            require "forwardable"
         | 
| 4 | 
            +
            require "json"
         | 
| 2 5 |  | 
| 3 6 | 
             
            require "faraday"
         | 
| 4 7 | 
             
            require "faraday_middleware"
         | 
| 5 | 
            -
            require " | 
| 6 | 
            -
            require " | 
| 8 | 
            +
            require "dry-struct"
         | 
| 9 | 
            +
            require "dry-configurable"
         | 
| 7 10 |  | 
| 8 11 | 
             
            require "panda_doc/api_client"
         | 
| 9 12 | 
             
            require "panda_doc/configuration"
         | 
| 13 | 
            +
            require "panda_doc/coercions"
         | 
| 14 | 
            +
            require "panda_doc/types"
         | 
| 10 15 | 
             
            require "panda_doc/failure_result"
         | 
| 11 16 | 
             
            require "panda_doc/success_result"
         | 
| 12 17 | 
             
            require "panda_doc/document"
         | 
| 13 18 | 
             
            require "panda_doc/response_factory"
         | 
| 14 | 
            -
            require "panda_doc/objects/ | 
| 19 | 
            +
            require "panda_doc/objects/base"
         | 
| 15 20 | 
             
            require "panda_doc/objects/recipient"
         | 
| 21 | 
            +
            require "panda_doc/objects/token"
         | 
| 22 | 
            +
            require "panda_doc/objects/field"
         | 
| 16 23 | 
             
            require "panda_doc/objects/document"
         | 
| 17 24 | 
             
            require "panda_doc/objects/error"
         | 
| 18 25 | 
             
            require "panda_doc/objects/session"
         | 
| 19 | 
            -
            require "panda_doc/responses/document"
         | 
| 20 | 
            -
            require "panda_doc/responses/error"
         | 
| 21 | 
            -
            require "panda_doc/responses/session"
         | 
| 22 26 |  | 
| 23 27 | 
             
            require "panda_doc/version"
         | 
| 24 28 |  | 
| 25 29 | 
             
            module PandaDoc
         | 
| 26 | 
            -
               | 
| 30 | 
            +
              class << self
         | 
| 31 | 
            +
                def configure(&block)
         | 
| 32 | 
            +
                  Configuration.configure(&block)
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def configuration
         | 
| 36 | 
            +
                  Configuration.config
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 27 39 | 
             
            end
         | 
    
        data/lib/panda_doc/api_client.rb
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            module PandaDoc
         | 
| 4 4 | 
             
              class ApiClient
         | 
| 5 5 |  | 
| 6 6 | 
             
                class << self
         | 
| 7 | 
            -
                  def request(verb, path,  | 
| 7 | 
            +
                  def request(verb, path, data = {})
         | 
| 8 8 | 
             
                    if file = data.delete(:file)
         | 
| 9 9 | 
             
                      data = { file: file, data: JSON.generate(data) }
         | 
| 10 10 | 
             
                    end
         | 
| 11 11 |  | 
| 12 | 
            -
                    new(multipart: !!file).public_send(verb, path, data)
         | 
| 12 | 
            +
                    new(multipart: !!file).public_send(verb, path, **data)
         | 
| 13 13 | 
             
                  end
         | 
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| @@ -21,7 +21,11 @@ module PandaDoc | |
| 21 21 | 
             
                def initialize(multipart: false)
         | 
| 22 22 | 
             
                  @url_prefix = "/public/v1"
         | 
| 23 23 | 
             
                  @connection = Faraday.new(PandaDoc.configuration.endpoint) do |conn|
         | 
| 24 | 
            -
                     | 
| 24 | 
            +
                    if PandaDoc.configuration.api_key
         | 
| 25 | 
            +
                      conn.authorization "API-Key", PandaDoc.configuration.api_key
         | 
| 26 | 
            +
                    else
         | 
| 27 | 
            +
                      conn.authorization :Bearer, PandaDoc.configuration.access_token
         | 
| 28 | 
            +
                    end
         | 
| 25 29 |  | 
| 26 30 | 
             
                    if multipart
         | 
| 27 31 | 
             
                      conn.request     :multipart
         | 
| @@ -39,12 +43,12 @@ module PandaDoc | |
| 39 43 | 
             
                  end
         | 
| 40 44 | 
             
                end
         | 
| 41 45 |  | 
| 42 | 
            -
                def post(path,  | 
| 43 | 
            -
                  connection.post(normalized_path(path), data)
         | 
| 46 | 
            +
                def post(path, data = {})
         | 
| 47 | 
            +
                  connection.post(normalized_path(path), **data)
         | 
| 44 48 | 
             
                end
         | 
| 45 49 |  | 
| 46 | 
            -
                def get(path,  | 
| 47 | 
            -
                  connection.get(normalized_path(path), data)
         | 
| 50 | 
            +
                def get(path, data = {})
         | 
| 51 | 
            +
                  connection.get(normalized_path(path), **data)
         | 
| 48 52 | 
             
                end
         | 
| 49 53 |  | 
| 50 54 | 
             
                private
         | 
| @@ -1,24 +1,13 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              class Configuration
         | 
| 3 | 
            -
                 | 
| 4 | 
            -
                attr_accessor :logger
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                def endpoint
         | 
| 7 | 
            -
                  "https://api.pandadoc.com"
         | 
| 8 | 
            -
                end
         | 
| 9 | 
            -
              end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              class << self
         | 
| 12 | 
            -
                def configuration
         | 
| 13 | 
            -
                  @configuration ||= Configuration.new
         | 
| 14 | 
            -
                end
         | 
| 5 | 
            +
                extend Dry::Configurable
         | 
| 15 6 |  | 
| 16 | 
            -
                 | 
| 17 | 
            -
             | 
| 18 | 
            -
                 | 
| 7 | 
            +
                setting :access_token
         | 
| 8 | 
            +
                setting :api_key
         | 
| 9 | 
            +
                setting :logger
         | 
| 19 10 |  | 
| 20 | 
            -
                 | 
| 21 | 
            -
                  yield configuration
         | 
| 22 | 
            -
                end
         | 
| 11 | 
            +
                setting :endpoint, "https://api.pandadoc.com"
         | 
| 23 12 | 
             
              end
         | 
| 24 13 | 
             
            end
         | 
    
        data/lib/panda_doc/document.rb
    CHANGED
    
    | @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              module Document
         | 
| 3 5 | 
             
                extend self
         | 
| @@ -14,6 +16,10 @@ module PandaDoc | |
| 14 16 | 
             
                  respond(ApiClient.request(:get, "/documents/#{uuid}"))
         | 
| 15 17 | 
             
                end
         | 
| 16 18 |  | 
| 19 | 
            +
                def details(uuid)
         | 
| 20 | 
            +
                  respond(ApiClient.request(:get, "/documents/#{uuid}/details"))
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 17 23 | 
             
                def session(uuid, **data)
         | 
| 18 24 | 
             
                  respond(
         | 
| 19 25 | 
             
                    ApiClient.request(:post, "/documents/#{uuid}/session", data),
         | 
| @@ -31,7 +37,7 @@ module PandaDoc | |
| 31 37 | 
             
                  failure(response)
         | 
| 32 38 |  | 
| 33 39 | 
             
                  SuccessResult.new(
         | 
| 34 | 
            -
                    ResponseFactory. | 
| 40 | 
            +
                    ResponseFactory.build(type).new(response.body)
         | 
| 35 41 | 
             
                  )
         | 
| 36 42 | 
             
                end
         | 
| 37 43 |  | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              class FailureResult < StandardError
         | 
| 3 5 | 
             
                extend Forwardable
         | 
| @@ -11,7 +13,7 @@ module PandaDoc | |
| 11 13 |  | 
| 12 14 | 
             
                def initialize(response)
         | 
| 13 15 | 
             
                  @response = response
         | 
| 14 | 
            -
                  @error =  | 
| 16 | 
            +
                  @error = Objects::Error.new(response.body)
         | 
| 15 17 | 
             
                end
         | 
| 16 18 |  | 
| 17 19 | 
             
                def to_s
         | 
| @@ -1,14 +1,24 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              module Objects
         | 
| 3 | 
            -
                class Document
         | 
| 4 | 
            -
                   | 
| 5 | 
            +
                class Document < Base
         | 
| 6 | 
            +
                  attribute :id, Types::String
         | 
| 7 | 
            +
                  attribute? :uuid, Types::String
         | 
| 8 | 
            +
                  attribute :status, Types::Custom::DocumentStatus
         | 
| 9 | 
            +
                  attribute :name, Types::String
         | 
| 10 | 
            +
                  attribute? :recipients, Types::Array.of(Objects::Recipient)
         | 
| 11 | 
            +
                  attribute :date_created, Types::Params::DateTime
         | 
| 12 | 
            +
                  attribute :date_modified, Types::Params::DateTime
         | 
| 13 | 
            +
                  attribute? :expiration_date, Types::Params::DateTime.optional
         | 
| 14 | 
            +
                  attribute :version, Types::String.optional
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  attribute? :tokens, Types::Array.of(Objects::Token)
         | 
| 17 | 
            +
                  attribute? :fields, Types::Array.of(Objects::Field)
         | 
| 5 18 |  | 
| 6 | 
            -
                   | 
| 7 | 
            -
                   | 
| 8 | 
            -
                   | 
| 9 | 
            -
                  attribute :recipients, Array[Objects::Recipient]
         | 
| 10 | 
            -
                  attribute :created_at, DateTime
         | 
| 11 | 
            -
                  attribute :updated_at, DateTime
         | 
| 19 | 
            +
                  alias_method :created_at, :date_created
         | 
| 20 | 
            +
                  alias_method :updated_at, :date_modified
         | 
| 21 | 
            +
                  alias_method :expires_at, :expiration_date
         | 
| 12 22 | 
             
                end
         | 
| 13 23 | 
             
              end
         | 
| 14 24 | 
             
            end
         | 
| @@ -1,10 +1,10 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              module Objects
         | 
| 3 | 
            -
                class Error
         | 
| 4 | 
            -
                   | 
| 5 | 
            -
             | 
| 6 | 
            -
                  attribute :type,    String
         | 
| 7 | 
            -
                  attribute :detail,  String
         | 
| 5 | 
            +
                class Error < Base
         | 
| 6 | 
            +
                  attribute? :type, Types::Coercible::String.optional
         | 
| 7 | 
            +
                  attribute? :detail, Types::Params::Hash.optional | Types::Coercible::String.optional
         | 
| 8 8 | 
             
                end
         | 
| 9 9 | 
             
              end
         | 
| 10 10 | 
             
            end
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module PandaDoc
         | 
| 4 | 
            +
              module Objects
         | 
| 5 | 
            +
                class Field < Base
         | 
| 6 | 
            +
                  attribute :uuid, Types::Coercible::String
         | 
| 7 | 
            +
                  attribute :name, Types::Coercible::String.optional
         | 
| 8 | 
            +
                  attribute :title, Types::Coercible::String.optional
         | 
| 9 | 
            +
                  attribute :placeholder, Types::Coercible::String.optional
         | 
| 10 | 
            +
                  attribute :value, Types::Nil | Types::Hash | Types::Coercible::String
         | 
| 11 | 
            +
                  attribute? :assigned_to, PandaDoc::Objects::Recipient
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
| @@ -1,13 +1,16 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              module Objects
         | 
| 3 | 
            -
                class Recipient
         | 
| 4 | 
            -
                   | 
| 5 | 
            -
             | 
| 6 | 
            -
                  attribute : | 
| 7 | 
            -
                  attribute : | 
| 8 | 
            -
                  attribute : | 
| 9 | 
            -
                  attribute : | 
| 10 | 
            -
                  attribute : | 
| 5 | 
            +
                class Recipient < Base
         | 
| 6 | 
            +
                  attribute? :id, Types::Coercible::String.optional
         | 
| 7 | 
            +
                  attribute :email, Types::Coercible::String
         | 
| 8 | 
            +
                  attribute :first_name, Types::Coercible::String.optional
         | 
| 9 | 
            +
                  attribute :last_name, Types::Coercible::String.optional
         | 
| 10 | 
            +
                  attribute :recipient_type, Types::Coercible::String
         | 
| 11 | 
            +
                  attribute :has_completed, Types::Params::Bool
         | 
| 12 | 
            +
                  attribute? :role, Types::Coercible::String.optional
         | 
| 13 | 
            +
                  attribute? :type, Types::Coercible::String.optional
         | 
| 11 14 | 
             
                end
         | 
| 12 15 | 
             
              end
         | 
| 13 16 | 
             
            end
         | 
| @@ -1,10 +1,10 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              module Objects
         | 
| 3 | 
            -
                class Session
         | 
| 4 | 
            -
                   | 
| 5 | 
            -
             | 
| 6 | 
            -
                  attribute :id,         String
         | 
| 7 | 
            -
                  attribute :expires_at, DateTime
         | 
| 5 | 
            +
                class Session < Base
         | 
| 6 | 
            +
                  attribute :id, Types::Coercible::String
         | 
| 7 | 
            +
                  attribute :expires_at, Types::Params::DateTime
         | 
| 8 8 | 
             
                end
         | 
| 9 9 | 
             
              end
         | 
| 10 10 | 
             
            end
         | 
| @@ -1,28 +1,20 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module PandaDoc
         | 
| 2 4 | 
             
              class ResponseFactory
         | 
| 3 5 | 
             
                attr_reader :type
         | 
| 4 6 | 
             
                private :type
         | 
| 5 7 |  | 
| 8 | 
            +
                def self.build(type)
         | 
| 9 | 
            +
                  new(type).build
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 6 12 | 
             
                def initialize(type)
         | 
| 7 13 | 
             
                  @type = type.capitalize
         | 
| 8 14 | 
             
                end
         | 
| 9 15 |  | 
| 10 16 | 
             
                def build
         | 
| 11 | 
            -
                   | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                private
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                def response_class
         | 
| 17 | 
            -
                  class_for("Responses")
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                def object_class
         | 
| 21 | 
            -
                  class_for("Objects")
         | 
| 22 | 
            -
                end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                def class_for(namespace)
         | 
| 25 | 
            -
                  Object.const_get("PandaDoc::#{namespace}::#{type}")
         | 
| 17 | 
            +
                  PandaDoc::Objects.const_get(type)
         | 
| 26 18 | 
             
                end
         | 
| 27 19 | 
             
              end
         | 
| 28 20 | 
             
            end
         | 
    
        data/lib/panda_doc/version.rb
    CHANGED
    
    
    
        data/panda_doc.gemspec
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            #  | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
            require 'panda_doc/version'
         | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require_relative "lib/panda_doc/version"
         | 
| 5 4 |  | 
| 6 5 | 
             
            Gem::Specification.new do |spec|
         | 
| 7 6 | 
             
              spec.name          = "panda_doc"
         | 
| @@ -16,13 +15,13 @@ Gem::Specification.new do |spec| | |
| 16 15 | 
             
              spec.license       = "MIT"
         | 
| 17 16 |  | 
| 18 17 | 
             
              spec.files         = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
         | 
| 19 | 
            -
              spec.bindir        = " | 
| 20 | 
            -
              spec.executables   =  | 
| 18 | 
            +
              spec.bindir        = "bin"
         | 
| 19 | 
            +
              spec.executables   = []
         | 
| 21 20 | 
             
              spec.require_paths = ["lib"]
         | 
| 22 21 |  | 
| 23 | 
            -
              spec.required_ruby_version = " | 
| 24 | 
            -
              spec.add_dependency "faraday", " | 
| 25 | 
            -
              spec.add_dependency "faraday_middleware", " | 
| 26 | 
            -
              spec.add_dependency " | 
| 27 | 
            -
              spec.add_dependency " | 
| 22 | 
            +
              spec.required_ruby_version = ">= 2.5"
         | 
| 23 | 
            +
              spec.add_dependency "faraday", ">= 0.9.2", "< 2.0"
         | 
| 24 | 
            +
              spec.add_dependency "faraday_middleware", ">= 0.10.0", "< 2.0"
         | 
| 25 | 
            +
              spec.add_dependency "dry-configurable", "~> 0.11"
         | 
| 26 | 
            +
              spec.add_dependency "dry-struct", "~> 1.3"
         | 
| 28 27 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,77 +1,83 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: panda_doc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Igor Pstyga
         | 
| 8 | 
            -
            autorequire: | 
| 9 | 
            -
            bindir:  | 
| 8 | 
            +
            autorequire:
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-01-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faraday
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: 0.9.2
         | 
| 20 | 
            +
                - - "<"
         | 
| 21 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            +
                    version: '2.0'
         | 
| 20 23 | 
             
              type: :runtime
         | 
| 21 24 | 
             
              prerelease: false
         | 
| 22 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 26 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 27 | 
            +
                - - ">="
         | 
| 25 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 29 | 
             
                    version: 0.9.2
         | 
| 30 | 
            +
                - - "<"
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: '2.0'
         | 
| 27 33 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 34 | 
             
              name: faraday_middleware
         | 
| 29 35 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 36 | 
             
                requirements:
         | 
| 31 | 
            -
                - - " | 
| 37 | 
            +
                - - ">="
         | 
| 32 38 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 39 | 
             
                    version: 0.10.0
         | 
| 40 | 
            +
                - - "<"
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            +
                    version: '2.0'
         | 
| 34 43 | 
             
              type: :runtime
         | 
| 35 44 | 
             
              prerelease: false
         | 
| 36 45 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 46 | 
             
                requirements:
         | 
| 38 | 
            -
                - - " | 
| 47 | 
            +
                - - ">="
         | 
| 39 48 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 49 | 
             
                    version: 0.10.0
         | 
| 50 | 
            +
                - - "<"
         | 
| 51 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            +
                    version: '2.0'
         | 
| 41 53 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 54 | 
            +
              name: dry-configurable
         | 
| 43 55 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 56 | 
             
                requirements:
         | 
| 45 57 | 
             
                - - "~>"
         | 
| 46 58 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: ' | 
| 48 | 
            -
                - - ">="
         | 
| 49 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 50 | 
            -
                    version: 1.0.5
         | 
| 59 | 
            +
                    version: '0.11'
         | 
| 51 60 | 
             
              type: :runtime
         | 
| 52 61 | 
             
              prerelease: false
         | 
| 53 62 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 54 63 | 
             
                requirements:
         | 
| 55 64 | 
             
                - - "~>"
         | 
| 56 65 | 
             
                  - !ruby/object:Gem::Version
         | 
| 57 | 
            -
                    version: ' | 
| 58 | 
            -
                - - ">="
         | 
| 59 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            -
                    version: 1.0.5
         | 
| 66 | 
            +
                    version: '0.11'
         | 
| 61 67 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 62 | 
            -
              name:  | 
| 68 | 
            +
              name: dry-struct
         | 
| 63 69 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 64 70 | 
             
                requirements:
         | 
| 65 | 
            -
                - - " | 
| 71 | 
            +
                - - "~>"
         | 
| 66 72 | 
             
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            -
                    version: 3 | 
| 73 | 
            +
                    version: '1.3'
         | 
| 68 74 | 
             
              type: :runtime
         | 
| 69 75 | 
             
              prerelease: false
         | 
| 70 76 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 71 77 | 
             
                requirements:
         | 
| 72 | 
            -
                - - " | 
| 78 | 
            +
                - - "~>"
         | 
| 73 79 | 
             
                  - !ruby/object:Gem::Version
         | 
| 74 | 
            -
                    version: 3 | 
| 80 | 
            +
                    version: '1.3'
         | 
| 75 81 | 
             
            description: Ruby wrapper for PandaDoc.com API
         | 
| 76 82 | 
             
            email:
         | 
| 77 83 | 
             
            - igor.pstyga@gmail.com
         | 
| @@ -88,46 +94,48 @@ files: | |
| 88 94 | 
             
            - README.md
         | 
| 89 95 | 
             
            - Rakefile
         | 
| 90 96 | 
             
            - bin/console
         | 
| 97 | 
            +
            - bin/rake
         | 
| 98 | 
            +
            - bin/rspec
         | 
| 91 99 | 
             
            - bin/setup
         | 
| 92 100 | 
             
            - lib/panda_doc.rb
         | 
| 93 101 | 
             
            - lib/panda_doc/api_client.rb
         | 
| 102 | 
            +
            - lib/panda_doc/coercions.rb
         | 
| 94 103 | 
             
            - lib/panda_doc/configuration.rb
         | 
| 95 104 | 
             
            - lib/panda_doc/document.rb
         | 
| 96 105 | 
             
            - lib/panda_doc/failure_result.rb
         | 
| 106 | 
            +
            - lib/panda_doc/objects/base.rb
         | 
| 97 107 | 
             
            - lib/panda_doc/objects/document.rb
         | 
| 98 108 | 
             
            - lib/panda_doc/objects/error.rb
         | 
| 109 | 
            +
            - lib/panda_doc/objects/field.rb
         | 
| 99 110 | 
             
            - lib/panda_doc/objects/recipient.rb
         | 
| 100 111 | 
             
            - lib/panda_doc/objects/session.rb
         | 
| 101 | 
            -
            - lib/panda_doc/objects/ | 
| 112 | 
            +
            - lib/panda_doc/objects/token.rb
         | 
| 102 113 | 
             
            - lib/panda_doc/response_factory.rb
         | 
| 103 | 
            -
            - lib/panda_doc/responses/document.rb
         | 
| 104 | 
            -
            - lib/panda_doc/responses/error.rb
         | 
| 105 | 
            -
            - lib/panda_doc/responses/session.rb
         | 
| 106 114 | 
             
            - lib/panda_doc/success_result.rb
         | 
| 115 | 
            +
            - lib/panda_doc/types.rb
         | 
| 107 116 | 
             
            - lib/panda_doc/version.rb
         | 
| 108 117 | 
             
            - panda_doc.gemspec
         | 
| 109 118 | 
             
            homepage: https://github.com/opti/panda_doc
         | 
| 110 119 | 
             
            licenses:
         | 
| 111 120 | 
             
            - MIT
         | 
| 112 121 | 
             
            metadata: {}
         | 
| 113 | 
            -
            post_install_message: | 
| 122 | 
            +
            post_install_message:
         | 
| 114 123 | 
             
            rdoc_options: []
         | 
| 115 124 | 
             
            require_paths:
         | 
| 116 125 | 
             
            - lib
         | 
| 117 126 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 118 127 | 
             
              requirements:
         | 
| 119 | 
            -
              - - " | 
| 128 | 
            +
              - - ">="
         | 
| 120 129 | 
             
                - !ruby/object:Gem::Version
         | 
| 121 | 
            -
                  version: '2. | 
| 130 | 
            +
                  version: '2.5'
         | 
| 122 131 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 123 132 | 
             
              requirements:
         | 
| 124 133 | 
             
              - - ">="
         | 
| 125 134 | 
             
                - !ruby/object:Gem::Version
         | 
| 126 135 | 
             
                  version: '0'
         | 
| 127 136 | 
             
            requirements: []
         | 
| 128 | 
            -
             | 
| 129 | 
            -
             | 
| 130 | 
            -
            signing_key: 
         | 
| 137 | 
            +
            rubygems_version: 3.2.3
         | 
| 138 | 
            +
            signing_key:
         | 
| 131 139 | 
             
            specification_version: 4
         | 
| 132 140 | 
             
            summary: Ruby wrapper for PandaDoc.com API
         | 
| 133 141 | 
             
            test_files: []
         | 
| @@ -1,21 +0,0 @@ | |
| 1 | 
            -
            module PandaDoc
         | 
| 2 | 
            -
              module Responses
         | 
| 3 | 
            -
                class Document < Representable::Decorator
         | 
| 4 | 
            -
                  include Representable::Hash
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  property :uuid
         | 
| 7 | 
            -
                  property :status
         | 
| 8 | 
            -
                  property :name
         | 
| 9 | 
            -
                  property :created_at, as: :date_created
         | 
| 10 | 
            -
                  property :updated_at, as: :date_modified
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                  collection :recipients, class: PandaDoc::Objects::Recipient do
         | 
| 13 | 
            -
                    property :email
         | 
| 14 | 
            -
                    property :first_name
         | 
| 15 | 
            -
                    property :last_name
         | 
| 16 | 
            -
                    property :recipient_type
         | 
| 17 | 
            -
                    property :has_completed
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         |