mondo 0.4.7 → 0.5.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 +4 -4
 - data/README.md +31 -8
 - data/lib/mondo.rb +2 -0
 - data/lib/mondo/account.rb +5 -1
 - data/lib/mondo/address.rb +1 -1
 - data/lib/mondo/attachment.rb +4 -4
 - data/lib/mondo/balance.rb +15 -0
 - data/lib/mondo/card.rb +26 -0
 - data/lib/mondo/client.rb +24 -9
 - data/lib/mondo/merchant.rb +2 -0
 - data/lib/mondo/resource.rb +19 -4
 - data/lib/mondo/transaction.rb +28 -6
 - data/lib/mondo/version.rb +1 -1
 - data/mondo.gemspec +1 -0
 - metadata +18 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 35b4d2e9ad4815228d09370c38191eaf3caecc53
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e7b5d1ac3c629315c1050cf0e732299e79e98370
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ac914a4546a2ea1a05a22e2e1e0b3762908b3451b5bc56aab73acc5bc46955e96d49dd5d4ed1768522b9f2a2e02b86c7c505d1556c6cf06ad2378d6a2dba6d1d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5a3f3b33b7e3ee326650e4e4ad594b083e71994008b0ad7d9fc3491bb1f0ddacf3eb9b471fe40b8ac54f345996dee7131b832a0d62dd52e7b23a7b9a403ed109
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -32,7 +32,7 @@ mondo.ping 
     | 
|
| 
       32 
32 
     | 
    
         
             
            ```ruby
         
     | 
| 
       33 
33 
     | 
    
         
             
            mondo.balance
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
            => {"balance" 
     | 
| 
      
 35 
     | 
    
         
            +
            => # <Mondo::Balance {"balance"=>642, "currency"=>"GBP", "spend_today"=>0}>}
         
     | 
| 
       36 
36 
     | 
    
         
             
            ```
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         | 
| 
         @@ -59,11 +59,9 @@ mondo.transactions(expand: [:merchant], limit: 2, since: "2015-08-10T23:00:00Z") 
     | 
|
| 
       59 
59 
     | 
    
         
             
            mondo.transaction(tx_00008zvemPnUEdNo8attNB)
         
     | 
| 
       60 
60 
     | 
    
         
             
            => #<Mondo::Transaction -5GBP PRET A MANGER          LONDON        GBR tx_00008zvemPnUEdNo8attNB>
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
            # TODO - make a Merchant object
         
     | 
| 
       64 
62 
     | 
    
         
             
            mondo.transactions.last.merchant
         
     | 
| 
       65 
63 
     | 
    
         
             
            =>
         
     | 
| 
       66 
     | 
    
         
            -
            #<Mondo::Merchant merch_000090ER75UzBxejYTIb4r {"id"=>"merch_000090ER75UzBxejYTIb4r", "group_id"=>"grp_00008yEdfHhvbwnQcsYryL", "created"=>"2015-09-19T09:42:16Z", "name"=>"Department Of Coffee And Social Affairs", "logo"=>"http://avatars.io/twitter/deptofcoffee/?size=large", "address"=>{"address"=>"14-16 Leather Ln", "city"=>"London", "region"=>"Greater London", "country"=>"GB", "postcode"=>"EC1N 7SU", "latitude"=>51.519348553897686, "longitude"=>-0.1090317964553833}}> 
     | 
| 
      
 64 
     | 
    
         
            +
            #<Mondo::Merchant merch_000090ER75UzBxejYTIb4r {"id"=>"merch_000090ER75UzBxejYTIb4r", "group_id"=>"grp_00008yEdfHhvbwnQcsYryL", "created"=>"2015-09-19T09:42:16Z", "name"=>"Department Of Coffee And Social Affairs", "logo"=>"http://avatars.io/twitter/deptofcoffee/?size=large", "address"=>{"address"=>"14-16 Leather Ln", "city"=>"London", "region"=>"Greater London", "country"=>"GB", "postcode"=>"EC1N 7SU", "latitude"=>51.519348553897686, "longitude"=>-0.1090317964553833}}>
         
     | 
| 
       67 
65 
     | 
    
         
             
            ```
         
     | 
| 
       68 
66 
     | 
    
         | 
| 
       69 
67 
     | 
    
         
             
            ## Update Transaction Tags
         
     | 
| 
         @@ -85,14 +83,14 @@ tx.save_metadata 
     | 
|
| 
       85 
83 
     | 
    
         
             
            tx = mondo.transactions.first
         
     | 
| 
       86 
84 
     | 
    
         | 
| 
       87 
85 
     | 
    
         
             
            tx.register_attachment(
         
     | 
| 
       88 
     | 
    
         
            -
              file_url: "https://example.com/nyannyan.jpg", 
     | 
| 
      
 86 
     | 
    
         
            +
              file_url: "https://example.com/nyannyan.jpg",
         
     | 
| 
       89 
87 
     | 
    
         
             
              file_type: "image/jpg"
         
     | 
| 
       90 
88 
     | 
    
         
             
            )
         
     | 
| 
       91 
89 
     | 
    
         | 
| 
       92 
90 
     | 
    
         
             
            => [#<Mondo::Attachment {"id"=>"attach_00009253YR2h9Besgp6aLR", "url"=>"https://example.com/nyannyan.jpg", "type"=>"image/jpg", "created"=>"2015-11-13T16:50:05Z"}>]
         
     | 
| 
       93 
91 
     | 
    
         | 
| 
       94 
92 
     | 
    
         
             
            # And remove it again
         
     | 
| 
       95 
     | 
    
         
            -
            tx.attachments.first. 
     | 
| 
      
 93 
     | 
    
         
            +
            tx.attachments.first.deregister
         
     | 
| 
       96 
94 
     | 
    
         
             
            ```
         
     | 
| 
       97 
95 
     | 
    
         | 
| 
       98 
96 
     | 
    
         | 
| 
         @@ -115,16 +113,41 @@ mondo.web_hooks.first.delete 
     | 
|
| 
       115 
113 
     | 
    
         | 
| 
       116 
114 
     | 
    
         
             
            ```
         
     | 
| 
       117 
115 
     | 
    
         | 
| 
      
 116 
     | 
    
         
            +
            ## Cards
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 119 
     | 
    
         
            +
            mondo.cards
         
     | 
| 
      
 120 
     | 
    
         
            +
            => [
         
     | 
| 
      
 121 
     | 
    
         
            +
              #<Mondo::Card {"id"=>"card_000000", "processor_token"=>"1234", "processor"=>"gps", "account_id"=>"account_12345", "last_digits"=>"4242", "name"=>"Your Name", "expires"=>"01/2220", "status"=>"ACTIVE", "created"=>"2016-01-20T17:23:05.51Z"}>
         
     | 
| 
      
 122 
     | 
    
         
            +
            ]
         
     | 
| 
      
 123 
     | 
    
         
            +
            ```
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
            #### Freeze Card
         
     | 
| 
      
 126 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 127 
     | 
    
         
            +
            card.freeze
         
     | 
| 
      
 128 
     | 
    
         
            +
            ```
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
            #### Unfreeze Card
         
     | 
| 
      
 131 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 132 
     | 
    
         
            +
            card.unfreeze
         
     | 
| 
      
 133 
     | 
    
         
            +
            ```
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
       118 
135 
     | 
    
         
             
            ## Feed Items
         
     | 
| 
       119 
136 
     | 
    
         | 
| 
       120 
137 
     | 
    
         
             
            ```ruby
         
     | 
| 
       121 
138 
     | 
    
         
             
            # Create a new feed item
         
     | 
| 
       122 
139 
     | 
    
         | 
| 
       123 
140 
     | 
    
         
             
            mondo.create_feed_item(
         
     | 
| 
       124 
     | 
    
         
            -
              title: "Foo", 
     | 
| 
      
 141 
     | 
    
         
            +
              title: "Foo",
         
     | 
| 
       125 
142 
     | 
    
         
             
              image_url: "https://www.example.com/img.jpg", # small icon shown in the feed
         
     | 
| 
       126 
143 
     | 
    
         
             
              url: "https://www.example.com", # when feed item is clicked, show this page in a webview
         
     | 
| 
       127 
144 
     | 
    
         
             
            )
         
     | 
| 
      
 145 
     | 
    
         
            +
            ```
         
     | 
| 
       128 
146 
     | 
    
         | 
| 
      
 147 
     | 
    
         
            +
            ## Tests
         
     | 
| 
       129 
148 
     | 
    
         | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
      
 149 
     | 
    
         
            +
            We need some tests. See "Contributing"
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
            ## Contributing
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
            Pull requests welcome! 
         
     | 
    
        data/lib/mondo.rb
    CHANGED
    
    
    
        data/lib/mondo/account.rb
    CHANGED
    
    
    
        data/lib/mondo/address.rb
    CHANGED
    
    
    
        data/lib/mondo/attachment.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Mondo
         
     | 
| 
       2 
2 
     | 
    
         
             
              class Attachment < Resource
         
     | 
| 
       3 
     | 
    
         
            -
                attr_accessor :id, :user_id, :external_id, :file_url, :file_type
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :id, :user_id, :external_id, :file_url, :file_type, :url, :type
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       5 
5 
     | 
    
         
             
                date_accessor :created
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         | 
| 
         @@ -19,8 +19,8 @@ module Mondo 
     | 
|
| 
       19 
19 
     | 
    
         
             
                  {
         
     | 
| 
       20 
20 
     | 
    
         
             
                    external_id: self.external_id,
         
     | 
| 
       21 
21 
     | 
    
         
             
                    file_url: self.file_url,
         
     | 
| 
       22 
     | 
    
         
            -
                    file_type: self.file_type, 
     | 
| 
      
 22 
     | 
    
         
            +
                    file_type: self.file_type,
         
     | 
| 
       23 
23 
     | 
    
         
             
                  }
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
       26 
     | 
    
         
            -
            end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mondo
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Balance < Resource
         
     | 
| 
      
 3 
     | 
    
         
            +
                def balance
         
     | 
| 
      
 4 
     | 
    
         
            +
                  Money.new(raw_data['balance'], currency)
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def spent_today
         
     | 
| 
      
 8 
     | 
    
         
            +
                  Money.new(raw_data['spent_today'], currency)
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def currency
         
     | 
| 
      
 12 
     | 
    
         
            +
                  Money::Currency.new(raw_data['currency'])
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mondo/card.rb
    ADDED
    
    | 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mondo
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Card < Resource
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :id, :processor_token, :processor, :account_id,
         
     | 
| 
      
 4 
     | 
    
         
            +
                            :last_digits, :name, :expires, :status
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                date_accessor :created
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def active?
         
     | 
| 
      
 9 
     | 
    
         
            +
                  status == 'ACTIVE'
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def freeze
         
     | 
| 
      
 13 
     | 
    
         
            +
                  self.client.api_put("/card/toggle", {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    card_id: id,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    status: 'INACTIVE'
         
     | 
| 
      
 16 
     | 
    
         
            +
                  })
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def unfreeze
         
     | 
| 
      
 20 
     | 
    
         
            +
                  self.client.api_put("/card/toggle", {
         
     | 
| 
      
 21 
     | 
    
         
            +
                    card_id: id,
         
     | 
| 
      
 22 
     | 
    
         
            +
                    status: 'ACTIVE'
         
     | 
| 
      
 23 
     | 
    
         
            +
                  })
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mondo/client.rb
    CHANGED
    
    | 
         @@ -7,6 +7,7 @@ require 'uri' 
     | 
|
| 
       7 
7 
     | 
    
         
             
            require 'cgi'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'time'
         
     | 
| 
       9 
9 
     | 
    
         
             
            require 'base64'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'money'
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
       11 
12 
     | 
    
         
             
            module Mondo
         
     | 
| 
       12 
13 
     | 
    
         
             
              class Client
         
     | 
| 
         @@ -99,32 +100,47 @@ module Mondo 
     | 
|
| 
       99 
100 
     | 
    
         
             
                # @return [Accounts] all accounts for this user
         
     | 
| 
       100 
101 
     | 
    
         
             
                def accounts(opts = {})
         
     | 
| 
       101 
102 
     | 
    
         
             
                  resp = api_get("/accounts", opts)
         
     | 
| 
       102 
     | 
    
         
            -
                  return resp  
     | 
| 
      
 103 
     | 
    
         
            +
                  return resp if resp.error.present?
         
     | 
| 
       103 
104 
     | 
    
         
             
                  resp.parsed["accounts"].map { |acc| Account.new(acc, self) }
         
     | 
| 
       104 
105 
     | 
    
         
             
                end
         
     | 
| 
       105 
106 
     | 
    
         | 
| 
      
 107 
     | 
    
         
            +
                # @method cards
         
     | 
| 
      
 108 
     | 
    
         
            +
                # @return [Cards] all cards for this user
         
     | 
| 
      
 109 
     | 
    
         
            +
                def cards(opts = {})
         
     | 
| 
      
 110 
     | 
    
         
            +
                  raise ClientError.new("You must provide an account id to query transactions") unless self.account_id
         
     | 
| 
      
 111 
     | 
    
         
            +
                  opts.merge!(account_id: self.account_id)
         
     | 
| 
      
 112 
     | 
    
         
            +
                  resp = api_get("/card/list", opts)
         
     | 
| 
      
 113 
     | 
    
         
            +
                  return resp if resp.error.present?
         
     | 
| 
      
 114 
     | 
    
         
            +
                  resp.parsed["cards"].map { |tx| Card.new(tx, self) }
         
     | 
| 
      
 115 
     | 
    
         
            +
                end
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
       106 
117 
     | 
    
         
             
                # @method transactions
         
     | 
| 
       107 
118 
     | 
    
         
             
                # @return [Transactions] all transactions for this user
         
     | 
| 
       108 
119 
     | 
    
         
             
                def transactions(opts = {})
         
     | 
| 
       109 
120 
     | 
    
         
             
                  raise ClientError.new("You must provide an account id to query transactions") unless self.account_id
         
     | 
| 
       110 
121 
     | 
    
         
             
                  opts.merge!(account_id: self.account_id)
         
     | 
| 
       111 
122 
     | 
    
         
             
                  resp = api_get("/transactions", opts)
         
     | 
| 
       112 
     | 
    
         
            -
                  return resp  
     | 
| 
      
 123 
     | 
    
         
            +
                  return resp if resp.error.present?
         
     | 
| 
       113 
124 
     | 
    
         
             
                  resp.parsed["transactions"].map { |tx| Transaction.new(tx, self) }
         
     | 
| 
       114 
125 
     | 
    
         
             
                end
         
     | 
| 
       115 
126 
     | 
    
         | 
| 
       116 
127 
     | 
    
         
             
                # @method transaction
         
     | 
| 
       117 
128 
     | 
    
         
             
                # @return <Transaction> of the transaction information
         
     | 
| 
       118 
129 
     | 
    
         
             
                def transaction(transaction_id, opts = {})
         
     | 
| 
      
 130 
     | 
    
         
            +
                  raise ClientError.new("You must provide an transaction id to query transactions") unless transaction_id
         
     | 
| 
       119 
131 
     | 
    
         
             
                  resp = api_get("/transactions/#{transaction_id}", opts)
         
     | 
| 
       120 
     | 
    
         
            -
                  return resp  
     | 
| 
      
 132 
     | 
    
         
            +
                  return resp if resp.error.present?
         
     | 
| 
       121 
133 
     | 
    
         
             
                  Transaction.new(resp.parsed['transaction'], self)
         
     | 
| 
       122 
134 
     | 
    
         
             
                end
         
     | 
| 
       123 
135 
     | 
    
         | 
| 
       124 
     | 
    
         
            -
                #  
     | 
| 
       125 
     | 
    
         
            -
                 
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
                   
     | 
| 
      
 136 
     | 
    
         
            +
                # @method balance
         
     | 
| 
      
 137 
     | 
    
         
            +
                # @return <Balance> of the balance information
         
     | 
| 
      
 138 
     | 
    
         
            +
                def balance(account_id = nil)
         
     | 
| 
      
 139 
     | 
    
         
            +
                  account_id ||= self.account_id
         
     | 
| 
      
 140 
     | 
    
         
            +
                  raise ClientError.new("You must provide an account id to see your balance") unless account_id
         
     | 
| 
      
 141 
     | 
    
         
            +
                  resp = api_get("balance", account_id: account_id)
         
     | 
| 
      
 142 
     | 
    
         
            +
                  return resp if resp.error.present?
         
     | 
| 
      
 143 
     | 
    
         
            +
                  Balance.new(resp.parsed, self)
         
     | 
| 
       128 
144 
     | 
    
         
             
                end
         
     | 
| 
       129 
145 
     | 
    
         | 
| 
       130 
146 
     | 
    
         
             
                def create_feed_item(params)
         
     | 
| 
         @@ -137,7 +153,7 @@ module Mondo 
     | 
|
| 
       137 
153 
     | 
    
         
             
                    {
         
     | 
| 
       138 
154 
     | 
    
         
             
                      account_id: self.account_id,
         
     | 
| 
       139 
155 
     | 
    
         
             
                      url: url
         
     | 
| 
       140 
     | 
    
         
            -
                    }, 
     | 
| 
      
 156 
     | 
    
         
            +
                    },
         
     | 
| 
       141 
157 
     | 
    
         
             
                    self
         
     | 
| 
       142 
158 
     | 
    
         
             
                  )
         
     | 
| 
       143 
159 
     | 
    
         
             
                  hook.save
         
     | 
| 
         @@ -218,4 +234,3 @@ module Mondo 
     | 
|
| 
       218 
234 
     | 
    
         
             
                end
         
     | 
| 
       219 
235 
     | 
    
         
             
              end
         
     | 
| 
       220 
236 
     | 
    
         
             
            end
         
     | 
| 
       221 
     | 
    
         
            -
             
     | 
    
        data/lib/mondo/merchant.rb
    CHANGED
    
    
    
        data/lib/mondo/resource.rb
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ module Mondo 
     | 
|
| 
       10 
10 
     | 
    
         
             
                  self.to_s
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
                def to_s
         
     | 
| 
       14 
14 
     | 
    
         
             
                  "#<#{self.class} #{raw_data}>"
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -22,15 +22,30 @@ module Mondo 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  def date_writer(*args)
         
     | 
| 
       23 
23 
     | 
    
         
             
                    args.each do |attr|
         
     | 
| 
       24 
24 
     | 
    
         
             
                      define_method("#{attr.to_s}=".to_sym) do |date|
         
     | 
| 
       25 
     | 
    
         
            -
                        date = date.is_a?(String) ? DateTime.parse(date) : date
         
     | 
| 
      
 25 
     | 
    
         
            +
                        date = (date.is_a?(String) ? DateTime.parse(date) : date) rescue date
         
     | 
| 
       26 
26 
     | 
    
         
             
                        instance_variable_set("@#{attr}", date)
         
     | 
| 
       27 
27 
     | 
    
         
             
                      end
         
     | 
| 
       28 
28 
     | 
    
         
             
                    end
         
     | 
| 
       29 
29 
     | 
    
         
             
                  end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                  def date_accessor(*args)
         
     | 
| 
       32 
     | 
    
         
            -
                    attr_reader 
     | 
| 
       33 
     | 
    
         
            -
                    date_writer 
     | 
| 
      
 32 
     | 
    
         
            +
                    attr_reader(*args)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    date_writer(*args)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  def boolean_accessor(*attrs)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    attr_accessor(*attrs)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    alias_question(attrs)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  def boolean_reader(*attrs)
         
     | 
| 
      
 42 
     | 
    
         
            +
                    attr_reader(*attrs)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    alias_question(attrs)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  private
         
     | 
| 
      
 47 
     | 
    
         
            +
                  def alias_question(attrs)
         
     | 
| 
      
 48 
     | 
    
         
            +
                    attrs.each{ |attr| define_method("#{attr}?"){ send(attr) || false } }
         
     | 
| 
       34 
49 
     | 
    
         
             
                  end
         
     | 
| 
       35 
50 
     | 
    
         
             
                end
         
     | 
| 
       36 
51 
     | 
    
         
             
              end
         
     | 
    
        data/lib/mondo/transaction.rb
    CHANGED
    
    | 
         @@ -3,16 +3,38 @@ module Mondo 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                attr_accessor :id,
         
     | 
| 
       5 
5 
     | 
    
         
             
                  :description,
         
     | 
| 
       6 
     | 
    
         
            -
                  :amount,
         
     | 
| 
       7 
     | 
    
         
            -
                  :currency,
         
     | 
| 
       8 
6 
     | 
    
         
             
                  :notes,
         
     | 
| 
       9 
     | 
    
         
            -
                  :metadata
         
     | 
| 
      
 7 
     | 
    
         
            +
                  :metadata,
         
     | 
| 
      
 8 
     | 
    
         
            +
                  :is_load,
         
     | 
| 
      
 9 
     | 
    
         
            +
                  :category,
         
     | 
| 
      
 10 
     | 
    
         
            +
                  :settled,
         
     | 
| 
      
 11 
     | 
    
         
            +
                  :decline_reason
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
13 
     | 
    
         
             
                date_accessor :created
         
     | 
| 
      
 14 
     | 
    
         
            +
                date_accessor :settled
         
     | 
| 
       12 
15 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
                def declined?
         
     | 
| 
      
 17 
     | 
    
         
            +
                  raw_data['decline_reason'].present?
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                def amount
         
     | 
| 
      
 21 
     | 
    
         
            +
                  Money.new(raw_data['amount'], currency)
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def local_amount
         
     | 
| 
      
 25 
     | 
    
         
            +
                  Money.new(raw_data['local_amount'], local_currency)
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def account_balance
         
     | 
| 
      
 29 
     | 
    
         
            +
                  Money.new(raw_data['account_balance'], currency)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def currency
         
     | 
| 
      
 33 
     | 
    
         
            +
                  Money::Currency.new(raw_data['currency'])
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def local_currency
         
     | 
| 
      
 37 
     | 
    
         
            +
                  Money::Currency.new(raw_data['local_currency'])
         
     | 
| 
       16 
38 
     | 
    
         
             
                end
         
     | 
| 
       17 
39 
     | 
    
         | 
| 
       18 
40 
     | 
    
         
             
                def save_metadata
         
     | 
    
        data/lib/mondo/version.rb
    CHANGED
    
    
    
        data/mondo.gemspec
    CHANGED
    
    | 
         @@ -2,6 +2,7 @@ require File.expand_path('../lib/mondo/version', __FILE__) 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Gem::Specification.new do |gem|
         
     | 
| 
       4 
4 
     | 
    
         
             
              gem.add_runtime_dependency 'oauth2', '~> 1.0'
         
     | 
| 
      
 5 
     | 
    
         
            +
              gem.add_runtime_dependency 'money'
         
     | 
| 
       5 
6 
     | 
    
         
             
              gem.add_runtime_dependency 'multi_json', '~> 1.10'
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
              gem.add_development_dependency 'rspec', '~> 2.13'
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mondo
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tom Blomfield
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-01-31 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: oauth2
         
     | 
| 
         @@ -24,6 +24,20 @@ dependencies: 
     | 
|
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
26 
     | 
    
         
             
                    version: '1.0'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: money
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       27 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
42 
     | 
    
         
             
              name: multi_json
         
     | 
| 
       29 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -114,6 +128,8 @@ files: 
     | 
|
| 
       114 
128 
     | 
    
         
             
            - lib/mondo/account.rb
         
     | 
| 
       115 
129 
     | 
    
         
             
            - lib/mondo/address.rb
         
     | 
| 
       116 
130 
     | 
    
         
             
            - lib/mondo/attachment.rb
         
     | 
| 
      
 131 
     | 
    
         
            +
            - lib/mondo/balance.rb
         
     | 
| 
      
 132 
     | 
    
         
            +
            - lib/mondo/card.rb
         
     | 
| 
       117 
133 
     | 
    
         
             
            - lib/mondo/client.rb
         
     | 
| 
       118 
134 
     | 
    
         
             
            - lib/mondo/errors.rb
         
     | 
| 
       119 
135 
     | 
    
         
             
            - lib/mondo/feed_item.rb
         
     |