konduto-ruby 2.0.1 → 2.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.
- checksums.yaml +5 -5
- data/README.md +84 -86
- data/lib/konduto-ruby.rb +1 -0
- data/lib/konduto-ruby/associations/associations.rb +2 -4
- data/lib/konduto-ruby/attributes.rb +9 -1
- data/lib/konduto-ruby/konduto_base.rb +15 -1
- data/lib/konduto-ruby/{konduto_navigation_info.rb → konduto_navigation.rb} +1 -1
- data/lib/konduto-ruby/konduto_order.rb +2 -2
- data/lib/konduto-ruby/konduto_travel_leg.rb +1 -1
- data/lib/konduto-ruby/validations/class_methods.rb +11 -9
- data/lib/konduto-ruby/validations/validations.rb +1 -2
- metadata +8 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 2979ec6a852c1d1aec13ff2fee745918d33ccd68dc60b8a3fb59902cdcc0d12c
         | 
| 4 | 
            +
              data.tar.gz: 18724ed8955265a9ee632454d3bc6fe4a1277d268de87d5d86a81318d2b0e53d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: adbba6bf4810427c18a3aff47ae11526ca32bc9cef0a09f44920cc71bca4d4b11d56e651c8d1d85197d9f1dba71dffd3265169596254bc39c56a0a1083bf5ca9
         | 
| 7 | 
            +
              data.tar.gz: edabb1c41aa2d930240e5897c204f65df269e8a065a8e11d267b20ecd97e543f6d0c007759d0615dc26187289dd25a8ae3e8b808c9966028a77cf57633e03226
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            ## Hey there,
         | 
| 2 2 |  | 
| 3 | 
            -
            This document is a rubyist adaptation of the original README file made for the Java API version. You can get access to it by clicking | 
| 3 | 
            +
            This document is a rubyist adaptation of the original README file made for the Java API version. You can get access to it by clicking [here](https://github.com/konduto/java-sdk/blob/master/README.md). **Konduto is a trademark, all rights reserved**. This project has no intention beyond helping ruby users to get easy access to Konduto's API through a simplified interface.
         | 
| 4 4 |  | 
| 5 5 | 
             
            ## Intro
         | 
| 6 6 |  | 
| @@ -10,9 +10,13 @@ Our service uses the visitor's behavior to analyze browsing patterns and detect | |
| 10 10 |  | 
| 11 11 | 
             
            This document refers to the **Ruby SDK** used for our API.
         | 
| 12 12 |  | 
| 13 | 
            +
            ## Migration from 1.0 to 2.0
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            NavigationInfo class is now Navigation and validation methods are now scopped by Konduto module.
         | 
| 16 | 
            +
             | 
| 13 17 | 
             
            ## Requirements
         | 
| 14 18 |  | 
| 15 | 
            -
             | 
| 19 | 
            +
            - This API was tested with Ruby MRI version 2.
         | 
| 16 20 |  | 
| 17 21 | 
             
            ## Installation
         | 
| 18 22 |  | 
| @@ -30,7 +34,6 @@ When a customer makes a purchase you must send the order information to us so we | |
| 30 34 |  | 
| 31 35 | 
             
            While many of the parameters we accept are optional we recommend you send all you can, because every data point matters for the analysis. The **billing address** and **credit card information** are specially important, though we understand there are cases where you don't have that information.
         | 
| 32 36 |  | 
| 33 | 
            -
             | 
| 34 37 | 
             
            ## Set your API key
         | 
| 35 38 |  | 
| 36 39 | 
             
            You will need an API key to authenticate the requests. Luckily for you the examples below have been populated with a working key, so you can just copy and paste to see how it works.
         | 
| @@ -53,7 +56,8 @@ order = KondutoOrder.new({ | |
| 53 56 | 
             
                      totalAmount: 123.4,
         | 
| 54 57 | 
             
                      customer: customer # customer is an instance of KondutoCustomer
         | 
| 55 58 | 
             
                    })
         | 
| 56 | 
            -
            ``` | 
| 59 | 
            +
            ```
         | 
| 60 | 
            +
             | 
| 57 61 | 
             
            One can also use the more conventional set-based approach as seen below.
         | 
| 58 62 |  | 
| 59 63 | 
             
            ```ruby
         | 
| @@ -63,105 +67,98 @@ order.total_amount = 123.4 | |
| 63 67 | 
             
            order.customer = customer
         | 
| 64 68 | 
             
            ```
         | 
| 65 69 |  | 
| 66 | 
            -
            >
         | 
| 67 | 
            -
            **NOTICE**: the order created above is really, really simple. The more detail you provide, more accurate Konduto's analysis will be.
         | 
| 68 | 
            -
            >
         | 
| 70 | 
            +
            > **NOTICE**: the order created above is really, really simple. The more detail you provide, more accurate Konduto's analysis will be.
         | 
| 69 71 |  | 
| 70 72 | 
             
            ### Order parameters
         | 
| 71 73 |  | 
| 72 | 
            -
            Parameter | 
| 73 | 
            -
             | 
| 74 | 
            -
            id | 
| 75 | 
            -
            visitor | 
| 76 | 
            -
            total_amount | 
| 77 | 
            -
            shipping_amount | 
| 78 | 
            -
            tax_amount | 
| 79 | 
            -
            currency | 
| 80 | 
            -
            installments | 
| 81 | 
            -
            ip | 
| 82 | 
            -
            customer | 
| 83 | 
            -
            payment | 
| 84 | 
            -
            billing | 
| 85 | 
            -
            shipping | 
| 86 | 
            -
            shopping_cart | 
| 87 | 
            -
            analyze | 
| 88 | 
            -
            first_message | 
| 89 | 
            -
            messages_exchanged | _(optional)_ Number of messages exchanged between customer and seller.
         | 
| 90 | 
            -
            purchased_at | 
| 74 | 
            +
            | Parameter          | Description                                                                              |
         | 
| 75 | 
            +
            | ------------------ | ---------------------------------------------------------------------------------------- |
         | 
| 76 | 
            +
            | id                 | _(required)_ Unique identifier for each order.                                           |
         | 
| 77 | 
            +
            | visitor            | _(required)_ Visitor identifier obtained from our JavaScript snippet.                    |
         | 
| 78 | 
            +
            | total_amount       | _(required)_ Total order amount.                                                         |
         | 
| 79 | 
            +
            | shipping_amount    | _(optional)_ Shipping and handling amount.                                               |
         | 
| 80 | 
            +
            | tax_amount         | _(optional)_ Taxes amount.                                                               |
         | 
| 81 | 
            +
            | currency           | _(optional)_ Currency code with 3 letters (ISO-4712).                                    |
         | 
| 82 | 
            +
            | installments       | _(optional)_ Number of installments in the payment plan.                                 |
         | 
| 83 | 
            +
            | ip                 | _(optional)_ Customer's IPv4 address.                                                    |
         | 
| 84 | 
            +
            | customer           | _(required)_ Object containing the customer details.                                     |
         | 
| 85 | 
            +
            | payment            | _(optional)_ Array containing the payment methods.                                       |
         | 
| 86 | 
            +
            | billing            | _(optional)_ Object containing the billing information.                                  |
         | 
| 87 | 
            +
            | shipping           | _(optional)_ Object containing the shipping information.                                 |
         | 
| 88 | 
            +
            | shopping_cart      | _(optional)_ Array containing the items purchased.                                       |
         | 
| 89 | 
            +
            | analyze            | _(optional)_ A boolean indicating if the order should be analyzed. Defaults to **true**. |
         | 
| 90 | 
            +
            | first_message      | _(optional)_ Time when the first message was exchanged between customer and seller.      |
         | 
| 91 | 
            +
            | messages_exchanged | _(optional)_ Number of messages exchanged between customer and seller.                   |
         | 
| 92 | 
            +
            | purchased_at       | _(optional)_ Time when the customer purchased from the seller.                           |
         | 
| 91 93 |  | 
| 92 94 | 
             
            #### Customer information
         | 
| 93 95 |  | 
| 94 | 
            -
            Parameter | 
| 95 | 
            -
             | 
| 96 | 
            -
            id | 
| 97 | 
            -
            name | 
| 98 | 
            -
            email | 
| 99 | 
            -
            tax_id | 
| 100 | 
            -
            phone1 | 
| 101 | 
            -
            phone 2 | 
| 102 | 
            -
            new | 
| 103 | 
            -
            vip | 
| 104 | 
            -
            created_at | _(optional)_ Date when customer was created.
         | 
| 105 | 
            -
             | 
| 96 | 
            +
            | Parameter  | Description                                                                                                                                               |
         | 
| 97 | 
            +
            | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
         | 
| 98 | 
            +
            | id         | _(required)_ **Unique** identifier for each customer. Can be anything you like (counter, id, e-mail address) as long as it's consistent in future orders. |
         | 
| 99 | 
            +
            | name       | _(required)_ Customer's full name.                                                                                                                        |
         | 
| 100 | 
            +
            | email      | _(required)_ Customer's e-mail address                                                                                                                    |
         | 
| 101 | 
            +
            | tax_id     | _(optional)_ Customer's tax id.                                                                                                                           |
         | 
| 102 | 
            +
            | phone1     | _(optional)_ Customer's primary phone number                                                                                                              |
         | 
| 103 | 
            +
            | phone 2    | _(optional)_ Customer's secondary phone number                                                                                                            |
         | 
| 104 | 
            +
            | new        | _(optional)_ Boolean indicating if the customer is using a newly created account for this purchase.                                                       |
         | 
| 105 | 
            +
            | vip        | _(optional)_ Boolean indicating if the customer is a VIP or frequent buyer.                                                                               |
         | 
| 106 | 
            +
            | created_at | _(optional)_ Date when customer was created.                                                                                                              |
         | 
| 106 107 |  | 
| 107 108 | 
             
            #### Payment information
         | 
| 108 109 |  | 
| 109 | 
            -
            Parameter | 
| 110 | 
            -
             | 
| 111 | 
            -
            status | 
| 112 | 
            -
            bin | 
| 113 | 
            -
            last4 | 
| 114 | 
            -
            expiration_date | _(optional)_ Card's expiration date under MMYYYY format.
         | 
| 115 | 
            -
             | 
| 110 | 
            +
            | Parameter       | Description                                                                                                                                                         |
         | 
| 111 | 
            +
            | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
         | 
| 112 | 
            +
            | status          | _(required)_ The status of the transaction returned by the payment processor. Accepts `approved`, `declined` or `pending` if the payment wasn't been processed yet. |
         | 
| 113 | 
            +
            | bin             | _(optional)_ First six digits of the customer's credit card. Used to identify the type of card being sent.                                                          |
         | 
| 114 | 
            +
            | last4           | _(optional)_ Four last digits of the customer's credit card number.                                                                                                 |
         | 
| 115 | 
            +
            | expiration_date | _(optional)_ Card's expiration date under MMYYYY format.                                                                                                            |
         | 
| 116 116 |  | 
| 117 117 | 
             
            #### Billing address
         | 
| 118 118 |  | 
| 119 | 
            -
            Parameter | Description
         | 
| 120 | 
            -
             | 
| 121 | 
            -
            name | 
| 122 | 
            -
            address1 | 
| 123 | 
            -
            address2 | 
| 124 | 
            -
            city | 
| 125 | 
            -
            state | 
| 126 | 
            -
            zip | 
| 127 | 
            -
            country | 
| 128 | 
            -
             | 
| 119 | 
            +
            | Parameter | Description                                                      |
         | 
| 120 | 
            +
            | --------- | ---------------------------------------------------------------- |
         | 
| 121 | 
            +
            | name      | _(optional)_ Cardholder's full name.                             |
         | 
| 122 | 
            +
            | address1  | _(optional)_ Cardholder's billing address on file with the bank. |
         | 
| 123 | 
            +
            | address2  | _(optional)_ Additional cardholder address information.          |
         | 
| 124 | 
            +
            | city      | _(optional)_ Cardholder's city.                                  |
         | 
| 125 | 
            +
            | state     | _(optional)_ Cardholder's state.                                 |
         | 
| 126 | 
            +
            | zip       | _(optional)_ Cardholder's ZIP code.                              |
         | 
| 127 | 
            +
            | country   | _(optional)_ Cardholder's country code (ISO 3166-2)              |
         | 
| 129 128 |  | 
| 130 129 | 
             
            #### Shipping address
         | 
| 131 130 |  | 
| 132 | 
            -
            Parameter | Description
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            name | 
| 135 | 
            -
            address1 | 
| 136 | 
            -
            address2 | 
| 137 | 
            -
            city | 
| 138 | 
            -
            state | 
| 139 | 
            -
            zip | 
| 140 | 
            -
            country | 
| 141 | 
            -
             | 
| 131 | 
            +
            | Parameter | Description                                            |
         | 
| 132 | 
            +
            | --------- | ------------------------------------------------------ |
         | 
| 133 | 
            +
            | name      | _(optional)_ Recipient's full name.                    |
         | 
| 134 | 
            +
            | address1  | _(optional)_ Recipient's shipping address.             |
         | 
| 135 | 
            +
            | address2  | _(optional)_ Additional recipient address information. |
         | 
| 136 | 
            +
            | city      | _(optional)_ Recipient's city.                         |
         | 
| 137 | 
            +
            | state     | _(optional)_ Recipient's state.                        |
         | 
| 138 | 
            +
            | zip       | _(optional)_ Recipient's ZIP code.                     |
         | 
| 139 | 
            +
            | country   | _(optional)_ Recipient's country code (ISO 3166-2)     |
         | 
| 142 140 |  | 
| 143 141 | 
             
            #### Shopping cart
         | 
| 144 142 |  | 
| 145 | 
            -
            Parameter | 
| 146 | 
            -
             | 
| 147 | 
            -
            sku | 
| 148 | 
            -
            product_code | _(optional)_ Product or service's UPC, barcode or secondary id.
         | 
| 149 | 
            -
            category | 
| 150 | 
            -
            name | 
| 151 | 
            -
            description | 
| 152 | 
            -
            unit_cost | 
| 153 | 
            -
            quantity | 
| 154 | 
            -
            discount | 
| 155 | 
            -
            created_at | 
| 143 | 
            +
            | Parameter    | Description                                                                                                    |
         | 
| 144 | 
            +
            | ------------ | -------------------------------------------------------------------------------------------------------------- |
         | 
| 145 | 
            +
            | sku          | _(optional)_ Product or service's SKU or inventory id.                                                         |
         | 
| 146 | 
            +
            | product_code | _(optional)_ Product or service's UPC, barcode or secondary id.                                                |
         | 
| 147 | 
            +
            | category     | _(optional)_ Category code for the item purchased. [See here](http://docs.konduto.com/#n-tables) for the list. |
         | 
| 148 | 
            +
            | name         | _(optional)_ Name of the product or service.                                                                   |
         | 
| 149 | 
            +
            | description  | _(optional)_ Detailed description of the item.                                                                 |
         | 
| 150 | 
            +
            | unit_cost    | _(optional)_ Cost of a single unit of this item.                                                               |
         | 
| 151 | 
            +
            | quantity     | _(optional)_ Number of units purchased.                                                                        |
         | 
| 152 | 
            +
            | discount     | _(optional)_ Discounted amount for this item.                                                                  |
         | 
| 153 | 
            +
            | created_at   | _(optional)_ Date when this item was created.                                                                  |
         | 
| 156 154 |  | 
| 157 155 | 
             
            ### Seller
         | 
| 158 156 |  | 
| 159 | 
            -
            Parameter | 
| 160 | 
            -
             | 
| 161 | 
            -
            id | 
| 162 | 
            -
            name | 
| 163 | 
            -
            created_at | _(optional)_ Date when the seller was created
         | 
| 164 | 
            -
             | 
| 157 | 
            +
            | Parameter  | Description                                   |
         | 
| 158 | 
            +
            | ---------- | --------------------------------------------- |
         | 
| 159 | 
            +
            | id         | _(required)_ Seller's id                      |
         | 
| 160 | 
            +
            | name       | _(optional)_ Sellers's name                   |
         | 
| 161 | 
            +
            | created_at | _(optional)_ Date when the seller was created |
         | 
| 165 162 |  | 
| 166 163 | 
             
            ## Sending an order for analysis.
         | 
| 167 164 |  | 
| @@ -205,12 +202,13 @@ order = konduto.get_order order_id # orderId is a String | |
| 205 202 | 
             
            konduto.update_order_status(order, new_status, 'some comments');
         | 
| 206 203 | 
             
            ```
         | 
| 207 204 |  | 
| 208 | 
            -
            Parameter | Description
         | 
| 209 | 
            -
             | 
| 210 | 
            -
            status | 
| 211 | 
            -
            comments | 
| 205 | 
            +
            | Parameter | Description                                                                                                                             |
         | 
| 206 | 
            +
            | --------- | --------------------------------------------------------------------------------------------------------------------------------------- |
         | 
| 207 | 
            +
            | status    | _(required)_ New status for this transaction. Either `approved`, `declined` or `fraud`, when you have identified a fraud or chargeback. |
         | 
| 208 | 
            +
            | comments  | _(required)_ Reason or comments about the status update.                                                                                |
         | 
| 212 209 |  | 
| 213 210 | 
             
            ## Sending requests through a proxy
         | 
| 211 | 
            +
             | 
| 214 212 | 
             
            To send requests through a proxy just build a new Konduto instance and set the proxy host passing the proxy url as parameters of `proxy=` method. If the proxy requires username and password, just set then at the proxy url you'll pass to `proxy=` method.
         | 
| 215 213 |  | 
| 216 214 | 
             
            ```ruby
         | 
    
        data/lib/konduto-ruby.rb
    CHANGED
    
    
| @@ -5,7 +5,7 @@ module Konduto | |
| 5 5 | 
             
                  name = options[:alias] || model
         | 
| 6 6 |  | 
| 7 7 | 
             
                  self.send(:define_method, name) do
         | 
| 8 | 
            -
                    instance_variable_get("@#{name}")
         | 
| 8 | 
            +
                    instance_variable_get("@#{name}") if instance_variable_defined?("@#{name}")
         | 
| 9 9 | 
             
                  end
         | 
| 10 10 |  | 
| 11 11 | 
             
                  self.send(:define_method, "#{name}=".to_sym) do |value|
         | 
| @@ -25,9 +25,7 @@ module Konduto | |
| 25 25 | 
             
                  name = options[:alias] || model
         | 
| 26 26 |  | 
| 27 27 | 
             
                  self.send(:define_method, name) do
         | 
| 28 | 
            -
                     | 
| 29 | 
            -
             | 
| 30 | 
            -
                    instance_variable_get("@#{name}")
         | 
| 28 | 
            +
                    instance_variable_get("@#{name}") if instance_variable_defined?("@#{name}")
         | 
| 31 29 | 
             
                  end
         | 
| 32 30 |  | 
| 33 31 | 
             
                  self.send(:define_method, "#{name}=".to_sym) do |arr|
         | 
| @@ -6,6 +6,8 @@ module Konduto | |
| 6 6 | 
             
                      klass = attribute.values[0].to_s.gsub(/_/, ' ').split.map(&:capitalize).join('')
         | 
| 7 7 | 
             
                      type = Object::const_get(klass)
         | 
| 8 8 | 
             
                      name = attribute.keys[0]
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                      define_strftime_pattern(self, name, attribute[:strftime_pattern]) if attribute.has_key?(:strftime_pattern)
         | 
| 9 11 | 
             
                    else
         | 
| 10 12 | 
             
                      name = attribute
         | 
| 11 13 | 
             
                    end
         | 
| @@ -22,11 +24,17 @@ module Konduto | |
| 22 24 | 
             
                    end
         | 
| 23 25 |  | 
| 24 26 | 
             
                    self.send(:define_method, name) do
         | 
| 25 | 
            -
                      instance_variable_get("@#{name.to_s.gsub(/[?|!]$/, '')}")
         | 
| 27 | 
            +
                      instance_variable_get("@#{name.to_s.gsub(/[?|!]$/, '')}") if instance_variable_defined?("@#{name.to_s.gsub(/[?|!]$/, '')}")
         | 
| 26 28 | 
             
                    end
         | 
| 27 29 | 
             
                  end
         | 
| 28 30 | 
             
                end
         | 
| 29 31 |  | 
| 30 32 | 
             
                alias :attribute :attributes
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                def define_strftime_pattern(klass, name, value)
         | 
| 35 | 
            +
                  klass.send(:define_method, "#{name.to_s.gsub(/[?|!]$/, '')}_strftime_pattern") do
         | 
| 36 | 
            +
                    value
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 31 39 | 
             
              end
         | 
| 32 40 | 
             
            end
         | 
| @@ -28,11 +28,17 @@ class KondutoBase | |
| 28 28 | 
             
                  instance_variables.map do |name|
         | 
| 29 29 | 
             
                    value = instance_variable_get(name)
         | 
| 30 30 |  | 
| 31 | 
            +
                    strftime_pattern = defined_strftime_pattern(name) if defined_strftime_pattern?(name)
         | 
| 32 | 
            +
             | 
| 31 33 | 
             
                    if value.respond_to? :each
         | 
| 32 34 | 
             
                      value = value.map {|v| v.to_hash }
         | 
| 33 35 | 
             
                    elsif !value.instance_variables.empty?
         | 
| 34 36 | 
             
                      value = value.to_hash
         | 
| 35 | 
            -
                    elsif value.is_a?( | 
| 37 | 
            +
                    elsif value.is_a?(DateTime)
         | 
| 38 | 
            +
                      value = value.strftime(strftime_pattern || '%Y-%m-%dT%H:%MZ')
         | 
| 39 | 
            +
                    elsif value.is_a?(Date)
         | 
| 40 | 
            +
                      value = value.strftime(strftime_pattern || '%Y-%m-%d')
         | 
| 41 | 
            +
                    elsif value.is_a?(Symbol)
         | 
| 36 42 | 
             
                      value = value.to_s
         | 
| 37 43 | 
             
                    end
         | 
| 38 44 |  | 
| @@ -53,4 +59,12 @@ class KondutoBase | |
| 53 59 |  | 
| 54 60 | 
             
                true
         | 
| 55 61 | 
             
              end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
              def defined_strftime_pattern?(attr)
         | 
| 64 | 
            +
                respond_to? "#{attr.to_s.gsub(/^@/, '')}_strftime_pattern"
         | 
| 65 | 
            +
              end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
              def defined_strftime_pattern(attr)
         | 
| 68 | 
            +
                send("#{attr.to_s.gsub(/^@/, '')}_strftime_pattern") 
         | 
| 69 | 
            +
              end
         | 
| 56 70 | 
             
            end
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            class  | 
| 1 | 
            +
            class KondutoNavigation < KondutoBase
         | 
| 2 2 | 
             
              attributes :session_time, :referrer, :time_site_1d, :new_accounts_1d, :password_resets_1d, :sales_declined_1d,\
         | 
| 3 3 | 
             
                         :sessions_1d, :time_since_last_sale, :time_site_7d, :time_per_page_7d, :new_accounts_7d, \
         | 
| 4 4 | 
             
                         :password_resets_7d, :checkout_count_7d, :sales_declined_7d, :sessions_7d
         | 
| @@ -14,8 +14,8 @@ class KondutoOrder < KondutoBase | |
| 14 14 | 
             
              attributes :id, :visitor, :timestamp, :total_amount, :tax_amount, :currency, :installments,
         | 
| 15 15 | 
             
                         :ip, :score, :analyze, :messages_exchanged, :shipping_amount
         | 
| 16 16 |  | 
| 17 | 
            -
              attribute first_message: :date_time
         | 
| 18 | 
            -
              attribute purchased_at: :date_time
         | 
| 17 | 
            +
              attribute first_message: :date_time, strftime_pattern: '%Y-%m-%dT%H:%M:%SZ'
         | 
| 18 | 
            +
              attribute purchased_at: :date_time, strftime_pattern: '%Y-%m-%dT%H:%M:%SZ'
         | 
| 19 19 | 
             
              attribute status: :symbol
         | 
| 20 20 | 
             
              attribute recommendation: :symbol
         | 
| 21 21 |  | 
| @@ -1,14 +1,16 @@ | |
| 1 | 
            -
            module  | 
| 2 | 
            -
               | 
| 3 | 
            -
                 | 
| 4 | 
            -
                   | 
| 1 | 
            +
            module Konduto
         | 
| 2 | 
            +
              module ClassMethods
         | 
| 3 | 
            +
                def validates_presence_of(*attributes)
         | 
| 4 | 
            +
                  self.send(:define_method, :required_attr) do
         | 
| 5 | 
            +
                    attributes
         | 
| 6 | 
            +
                  end
         | 
| 5 7 | 
             
                end
         | 
| 6 | 
            -
              end
         | 
| 7 8 |  | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 9 | 
            +
                def validates(*attributes, &block)
         | 
| 10 | 
            +
                  if block_given?
         | 
| 11 | 
            +
                    self.send(:define_method, :custom_validations) do
         | 
| 12 | 
            +
                      { Proc.new(&block) => attributes }
         | 
| 13 | 
            +
                    end
         | 
| 12 14 | 
             
                  end
         | 
| 13 15 | 
             
                end
         | 
| 14 16 | 
             
              end
         | 
| @@ -4,7 +4,7 @@ module Konduto | |
| 4 4 | 
             
              module Validations
         | 
| 5 5 | 
             
                def self.included(base)
         | 
| 6 6 | 
             
                  base.class_eval do
         | 
| 7 | 
            -
                    extend ClassMethods
         | 
| 7 | 
            +
                    extend Konduto::ClassMethods
         | 
| 8 8 | 
             
                  end
         | 
| 9 9 | 
             
                end
         | 
| 10 10 |  | 
| @@ -12,7 +12,6 @@ module Konduto | |
| 12 12 | 
             
                  if respond_to? :required_attr
         | 
| 13 13 | 
             
                    required_attr.each do |attr|
         | 
| 14 14 | 
             
                      return false if send(attr).nil?
         | 
| 15 | 
            -
                      return false if send(attr).is_a?(Array) && send(attr).empty?
         | 
| 16 15 | 
             
                    end
         | 
| 17 16 | 
             
                  end
         | 
| 18 17 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: konduto-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0 | 
| 4 | 
            +
              version: 2.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Gabriel Custodio
         | 
| @@ -9,22 +9,22 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2018-06-23 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            -
              name:  | 
| 15 | 
            +
              name: factory_bot
         | 
| 16 16 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                requirements:
         | 
| 18 18 | 
             
                - - "~>"
         | 
| 19 19 | 
             
                  - !ruby/object:Gem::Version
         | 
| 20 | 
            -
                    version: '4. | 
| 20 | 
            +
                    version: '4.10'
         | 
| 21 21 | 
             
              type: :development
         | 
| 22 22 | 
             
              prerelease: false
         | 
| 23 23 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 24 24 | 
             
                requirements:
         | 
| 25 25 | 
             
                - - "~>"
         | 
| 26 26 | 
             
                  - !ruby/object:Gem::Version
         | 
| 27 | 
            -
                    version: '4. | 
| 27 | 
            +
                    version: '4.10'
         | 
| 28 28 | 
             
            description: A wrapper for konduto antifraud API
         | 
| 29 29 | 
             
            email:
         | 
| 30 30 | 
             
            - gcmartins93@gmail.com jonathancardosodecampos@gmail.com
         | 
| @@ -45,7 +45,7 @@ files: | |
| 45 45 | 
             
            - lib/konduto-ruby/konduto_geolocation.rb
         | 
| 46 46 | 
             
            - lib/konduto-ruby/konduto_item.rb
         | 
| 47 47 | 
             
            - lib/konduto-ruby/konduto_loyalty.rb
         | 
| 48 | 
            -
            - lib/konduto-ruby/ | 
| 48 | 
            +
            - lib/konduto-ruby/konduto_navigation.rb
         | 
| 49 49 | 
             
            - lib/konduto-ruby/konduto_order.rb
         | 
| 50 50 | 
             
            - lib/konduto-ruby/konduto_order_status.rb
         | 
| 51 51 | 
             
            - lib/konduto-ruby/konduto_passenger.rb
         | 
| @@ -77,9 +77,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 77 77 | 
             
                  version: '0'
         | 
| 78 78 | 
             
            requirements: []
         | 
| 79 79 | 
             
            rubyforge_project: 
         | 
| 80 | 
            -
            rubygems_version: 2. | 
| 80 | 
            +
            rubygems_version: 2.7.7
         | 
| 81 81 | 
             
            signing_key: 
         | 
| 82 82 | 
             
            specification_version: 4
         | 
| 83 | 
            -
            summary:  | 
| 84 | 
            -
              use interface
         | 
| 83 | 
            +
            summary: Konduto Ruby SDK
         | 
| 85 84 | 
             
            test_files: []
         |