quaderno 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.document +5 -0
  2. data/Gemfile +23 -0
  3. data/Gemfile.lock +53 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.md +264 -0
  6. data/Rakefile +53 -0
  7. data/VERSION +1 -0
  8. data/build_install.sh +2 -0
  9. data/lib/quaderno-ruby/base.rb +71 -0
  10. data/lib/quaderno-ruby/behavior/crud.rb +83 -0
  11. data/lib/quaderno-ruby/behavior/deliver.rb +18 -0
  12. data/lib/quaderno-ruby/behavior/payment.rb +38 -0
  13. data/lib/quaderno-ruby/contact.rb +8 -0
  14. data/lib/quaderno-ruby/estimate.rb +8 -0
  15. data/lib/quaderno-ruby/exceptions/exceptions.rb +42 -0
  16. data/lib/quaderno-ruby/expense.rb +8 -0
  17. data/lib/quaderno-ruby/invoice.rb +9 -0
  18. data/lib/quaderno-ruby/item.rb +4 -0
  19. data/lib/quaderno-ruby/payment.rb +6 -0
  20. data/lib/quaderno-ruby.rb +11 -0
  21. data/quaderno-ruby.gemspec +114 -0
  22. data/test/fixtures/quaderno_cassettes/all_contacts.yml +46 -0
  23. data/test/fixtures/quaderno_cassettes/all_estimates.yml +44 -0
  24. data/test/fixtures/quaderno_cassettes/all_expenses.yml +44 -0
  25. data/test/fixtures/quaderno_cassettes/all_invoices.yml +44 -0
  26. data/test/fixtures/quaderno_cassettes/deleted_contact.yml +127 -0
  27. data/test/fixtures/quaderno_cassettes/deleted_estimate.yml +123 -0
  28. data/test/fixtures/quaderno_cassettes/deleted_expense.yml +123 -0
  29. data/test/fixtures/quaderno_cassettes/deleted_invoice.yml +124 -0
  30. data/test/fixtures/quaderno_cassettes/delivered_estimate.yml +127 -0
  31. data/test/fixtures/quaderno_cassettes/delivered_invoice.yml +127 -0
  32. data/test/fixtures/quaderno_cassettes/found_contact.yml +87 -0
  33. data/test/fixtures/quaderno_cassettes/found_estimate.yml +85 -0
  34. data/test/fixtures/quaderno_cassettes/found_expense.yml +85 -0
  35. data/test/fixtures/quaderno_cassettes/found_invoice.yml +85 -0
  36. data/test/fixtures/quaderno_cassettes/new_contact.yml +44 -0
  37. data/test/fixtures/quaderno_cassettes/new_estimate.yml +87 -0
  38. data/test/fixtures/quaderno_cassettes/new_expense.yml +128 -0
  39. data/test/fixtures/quaderno_cassettes/new_invoice.yml +87 -0
  40. data/test/fixtures/quaderno_cassettes/paid_expense.yml +85 -0
  41. data/test/fixtures/quaderno_cassettes/paid_invoice.yml +86 -0
  42. data/test/fixtures/quaderno_cassettes/rate_limit.yml +44 -0
  43. data/test/fixtures/quaderno_cassettes/unpay_an_expense.yml +123 -0
  44. data/test/fixtures/quaderno_cassettes/unpay_an_invoice.yml +123 -0
  45. data/test/fixtures/quaderno_cassettes/updated_contact.yml +87 -0
  46. data/test/fixtures/quaderno_cassettes/updated_estimate.yml +86 -0
  47. data/test/fixtures/quaderno_cassettes/updated_expense.yml +85 -0
  48. data/test/fixtures/quaderno_cassettes/updated_invoice.yml +86 -0
  49. data/test/helper.rb +27 -0
  50. data/test/test_quaderno-ruby.rb +4 -0
  51. data/test/unit/test_quaderno_contacts.rb +86 -0
  52. data/test/unit/test_quaderno_estimates.rb +99 -0
  53. data/test/unit/test_quaderno_expenses.rb +110 -0
  54. data/test/unit/test_quaderno_invoices.rb +121 -0
  55. metadata +232 -0
@@ -0,0 +1,42 @@
1
+ module Quaderno
2
+ module Exceptions
3
+ class InvalidSubdomainOrToken < Exception
4
+ end
5
+
6
+ class InvalidID < Exception
7
+ end
8
+
9
+ class RateLimitExceeded < Exception
10
+ end
11
+
12
+ class HasAssociatedDocuments < Exception
13
+ end
14
+
15
+ class RequiredFieldsEmpty < Exception
16
+ end
17
+
18
+ def self.included(receiver)
19
+ receiver.send :extend, ClassMethods
20
+ end
21
+
22
+ module ClassMethods
23
+ def check_exception_for(party_response, params = {})
24
+ if params[:rate_limit].nil? == false
25
+ raise(Quaderno::Exceptions::RateLimitExceeded, 'Rate limit exceeded') if party_response.response.class == Net::HTTPForbidden
26
+ end
27
+ if params[:subdomain_or_token].nil? == false
28
+ raise(Quaderno::Exceptions::InvalidSubdomainOrToken, 'Invalid subdomain or token') if party_response.response.class == Net::HTTPUnauthorized
29
+ end
30
+ if params[:id].nil? == false
31
+ raise(Quaderno::Exceptions::InvalidID, "Invalid #{ api_model } instance identifier") if (party_response.response.class == Net::HTTPInternalServerError) || (party_response.response.class == Net::HTTPNotFound)
32
+ end
33
+ if params[:required_fields].nil? == false
34
+ raise(Quaderno::Exceptions::RequiredFieldsEmpty, "#{ JSON::parse party_response.body }") if party_response.response.class == Net::HTTPClientError
35
+ end
36
+ if params[:has_documents].nil? == false
37
+ raise(Quaderno::Exceptions::HasAssociatedDocuments, "#{ JSON::parse party_response.body }") if party_response.response.class == Net::HTTPClientError
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,8 @@
1
+ module Quaderno
2
+ class Expense < Base
3
+ include Quaderno::Behavior::Payment
4
+
5
+ api_model Quaderno::Expense
6
+ api_path 'expenses'
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Quaderno
2
+ class Invoice < Base
3
+ include Quaderno::Behavior::Deliver
4
+ include Quaderno::Behavior::Payment
5
+
6
+ api_model Quaderno::Invoice
7
+ api_path 'invoices'
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ module Quaderno
2
+ class Item < OpenStruct
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Quaderno
2
+
3
+ class Payment < OpenStruct
4
+ end
5
+
6
+ end
@@ -0,0 +1,11 @@
1
+ require 'ostruct'
2
+
3
+ require 'quaderno-ruby/exceptions/exceptions'
4
+ %w(crud deliver payment).each { |filename| require "quaderno-ruby/behavior/#{ filename }" }
5
+ %w(base contact invoice estimate expense item payment).each { |filename| require "quaderno-ruby/#{ filename }" }
6
+ require 'ruby-debug'
7
+
8
+
9
+ module Quaderno
10
+
11
+ end
@@ -0,0 +1,114 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "quaderno-ruby"
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Carlos Hernandez"]
12
+ s.date = "2013-05-10"
13
+ s.description = "longer description of your gem"
14
+ s.email = "carlos@recrea.es"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE.txt",
24
+ "README.md",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "build_install.sh",
28
+ "lib/quaderno-ruby.rb",
29
+ "lib/quaderno-ruby/base.rb",
30
+ "lib/quaderno-ruby/behavior/crud.rb",
31
+ "lib/quaderno-ruby/behavior/deliver.rb",
32
+ "lib/quaderno-ruby/behavior/payment.rb",
33
+ "lib/quaderno-ruby/contact.rb",
34
+ "lib/quaderno-ruby/estimate.rb",
35
+ "lib/quaderno-ruby/exceptions/exceptions.rb",
36
+ "lib/quaderno-ruby/expense.rb",
37
+ "lib/quaderno-ruby/invoice.rb",
38
+ "lib/quaderno-ruby/item.rb",
39
+ "lib/quaderno-ruby/payment.rb",
40
+ "quaderno.gemspec",
41
+ "test/fixtures/quaderno_cassettes/all_contacts.yml",
42
+ "test/fixtures/quaderno_cassettes/all_estimates.yml",
43
+ "test/fixtures/quaderno_cassettes/all_expenses.yml",
44
+ "test/fixtures/quaderno_cassettes/all_invoices.yml",
45
+ "test/fixtures/quaderno_cassettes/deleted_contact.yml",
46
+ "test/fixtures/quaderno_cassettes/deleted_estimate.yml",
47
+ "test/fixtures/quaderno_cassettes/deleted_expense.yml",
48
+ "test/fixtures/quaderno_cassettes/deleted_invoice.yml",
49
+ "test/fixtures/quaderno_cassettes/delivered_estimate.yml",
50
+ "test/fixtures/quaderno_cassettes/delivered_invoice.yml",
51
+ "test/fixtures/quaderno_cassettes/found_contact.yml",
52
+ "test/fixtures/quaderno_cassettes/found_estimate.yml",
53
+ "test/fixtures/quaderno_cassettes/found_expense.yml",
54
+ "test/fixtures/quaderno_cassettes/found_invoice.yml",
55
+ "test/fixtures/quaderno_cassettes/new_contact.yml",
56
+ "test/fixtures/quaderno_cassettes/new_estimate.yml",
57
+ "test/fixtures/quaderno_cassettes/new_expense.yml",
58
+ "test/fixtures/quaderno_cassettes/new_invoice.yml",
59
+ "test/fixtures/quaderno_cassettes/paid_expense.yml",
60
+ "test/fixtures/quaderno_cassettes/paid_invoice.yml",
61
+ "test/fixtures/quaderno_cassettes/rate_limit.yml",
62
+ "test/fixtures/quaderno_cassettes/unpay_an_expense.yml",
63
+ "test/fixtures/quaderno_cassettes/unpay_an_invoice.yml",
64
+ "test/fixtures/quaderno_cassettes/updated_contact.yml",
65
+ "test/fixtures/quaderno_cassettes/updated_estimate.yml",
66
+ "test/fixtures/quaderno_cassettes/updated_expense.yml",
67
+ "test/fixtures/quaderno_cassettes/updated_invoice.yml",
68
+ "test/helper.rb",
69
+ "test/test_quaderno-ruby.rb",
70
+ "test/unit/test_quaderno_contacts.rb",
71
+ "test/unit/test_quaderno_estimates.rb",
72
+ "test/unit/test_quaderno_expenses.rb",
73
+ "test/unit/test_quaderno_invoices.rb"
74
+ ]
75
+ s.homepage = "http://github.com/polimorfico/quaderno-ruby"
76
+ s.licenses = ["MIT"]
77
+ s.require_paths = ["lib"]
78
+ s.rubygems_version = "1.8.24"
79
+ s.summary = "one-line summary of your gem"
80
+
81
+ if s.respond_to? :specification_version then
82
+ s.specification_version = 3
83
+
84
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
85
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
86
+ s.add_development_dependency(%q<debugger>, [">= 0"])
87
+ s.add_development_dependency(%q<httparty>, [">= 0"])
88
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
89
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
90
+ s.add_development_dependency(%q<rcov>, ["~> 0.9.11"])
91
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
92
+ s.add_development_dependency(%q<vcr>, [">= 0"])
93
+ else
94
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
95
+ s.add_dependency(%q<debugger>, [">= 0"])
96
+ s.add_dependency(%q<httparty>, [">= 0"])
97
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
98
+ s.add_dependency(%q<shoulda>, [">= 0"])
99
+ s.add_dependency(%q<rcov>, ["~> 0.9.11"])
100
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
101
+ s.add_dependency(%q<vcr>, [">= 0"])
102
+ end
103
+ else
104
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
105
+ s.add_dependency(%q<debugger>, [">= 0"])
106
+ s.add_dependency(%q<httparty>, [">= 0"])
107
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
108
+ s.add_dependency(%q<shoulda>, [">= 0"])
109
+ s.add_dependency(%q<rcov>, ["~> 0.9.11"])
110
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
111
+ s.add_dependency(%q<vcr>, [">= 0"])
112
+ end
113
+ end
114
+
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/contacts.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '447'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"bb13a5d46652a7b601753ed913a01a27"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - 6db24af02cd46c15e3998ee954ceec26
31
+ x-runtime:
32
+ - '0.072133'
33
+ content-length:
34
+ - '4505'
35
+ connection:
36
+ - close
37
+ server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"id":"50a23cb22f412eae4f000003","kind":"company","full_name":"100-499","contact_name":"","street_line_1":"Evergreen
42
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":"3447277","fax":"","email":"vidadelaempresa@gmail.com","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a23cb22f412eae4f000003"},{"id":"50a0d1eb2f412e58a700000b","kind":"company","full_name":"ACME","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d1eb2f412e58a700000b"},{"id":"50acb2b72f412eda52000041","kind":"company","full_name":"Tei","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acb2b72f412eda52000041"},{"id":"50a21c9e2f412e1a68000026","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a21c9e2f412e1a68000026"},{"id":"50a0f5612f412ef720000019","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":"Evergreen
43
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":null,"fax":null,"email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"ES","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0f5612f412ef720000019"},{"id":"50aa3de82f412ec2ab000014","kind":"person","first_name":"Test_OCP","last_name":"","full_name":"Test_OCP","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3de82f412ec2ab000014"},{"id":"50aa3e162f412ec2ab000019","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3e162f412ec2ab000019"},{"id":"50a21bf72f412e1a68000017","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a21bf72f412e1a68000017"},{"id":"50a0d2e82f412e15bf000004","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d2e82f412e15bf000004"},{"id":"50acc9842f412eda52000068","kind":"company","full_name":"Test_Skynet","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"my_little@po.ny","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acc9842f412eda52000068"},{"id":"50acb16e2f412eda5200003e","kind":"person","first_name":"Zed","last_name":"","full_name":"Zed","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50acb16e2f412eda5200003e"}]'
44
+ http_version: '1.1'
45
+ recorded_at: Thu, 22 Nov 2012 09:37:38 GMT
46
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/estimates.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '456'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"85a3b35f41c9e4773921349d0adad8d0"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - 0769c42dd59c935e0031caa242553b87
31
+ x-runtime:
32
+ - '0.224168'
33
+ content-length:
34
+ - '1289'
35
+ connection:
36
+ - close
37
+ server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"id":"50adf1ca2f412ec281000020","number":"0000005","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":null,"currency":"EUR","items":[{"description":"Aircraft","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"subtotal":"\u20ac0.00","discount":"\u20ac0.00","gross_amount":"\u20ac0.00"}],"subtotal":"\u20ac0.00","discount":"\u20ac0.00","taxes":[],"total":"\u20ac0.00","tags":[],"payment_details":"","notes":"","state":"draft","url":"http://localhost:3000/recrea/api/v1/estimates/50adf1ca2f412ec281000020.json"},{"id":"50adf2572f412ec281000023","number":"0000006","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":null,"currency":"EUR","items":[{"description":"Aircraft","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"subtotal":"\u20ac0.00","discount":"\u20ac0.00","gross_amount":"\u20ac0.00"}],"subtotal":"\u20ac0.00","discount":"\u20ac0.00","taxes":[],"total":"\u20ac0.00","tags":[],"payment_details":"","notes":"","state":"draft","url":"http://localhost:3000/recrea/api/v1/estimates/50adf2572f412ec281000023.json"}]'
42
+ http_version: '1.1'
43
+ recorded_at: Thu, 22 Nov 2012 09:37:28 GMT
44
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/expenses.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '989'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"411652f1251603eb146e8531a1385a3f"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - 9916d7ff3be4a2dc6b8c988cc6a9d7a8
31
+ x-runtime:
32
+ - '0.183625'
33
+ content-length:
34
+ - '7282'
35
+ connection:
36
+ - close
37
+ server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"id":"50adf88a2f412ec28100005a","number":"0003","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":"","currency":"EUR","items":[{"description":"fyfjhj","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":"","tax_1_rate":"","tax_2_name":"","tax_2_rate":"","subtotal":"\u20ac0.00","discount":"\u20ac0.00","gross_amount":"\u20ac0.00"}],"subtotal":"\u20ac0.00","discount":"\u20ac0.00","taxes":[],"total":"\u20ac0.00","payments":[{"id":"50adfb422f412ec281000062","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfb422f412ec281000062.json"},{"id":"50adfc9c2f412ec28100006a","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfc9c2f412ec28100006a.json"},{"id":"50adfd232f412ec281000072","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfd232f412ec281000072.json"},{"id":"50adfe012f412ec28100007a","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfe012f412ec28100007a.json"},{"id":"50adfe382f412ec281000082","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfe382f412ec281000082.json"},{"id":"50adfec72f412ec28100008a","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50adfec72f412ec28100008a.json"},{"id":"50ae001e2f412ec281000093","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae001e2f412ec281000093.json"},{"id":"50ae01172f412ec28100009c","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae01172f412ec28100009c.json"},{"id":"50ae07652f412ec2810000d8","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae07652f412ec2810000d8.json"},{"id":"50ae07bf2f412ec2810000e0","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae07bf2f412ec2810000e0.json"},{"id":"50ae07f42f412ec2810000e8","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae07f42f412ec2810000e8.json"},{"id":"50ae086e2f412ec2810000f0","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae086e2f412ec2810000f0.json"},{"id":"50ae08e42f412ec2810000f8","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae08e42f412ec2810000f8.json"},{"id":"50ae092e2f412ec281000100","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae092e2f412ec281000100.json"},{"id":"50ae0b382f412ec281000107","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a/payments/50ae0b382f412ec281000107.json"}],"tags":[],"notes":"","state":"paid","url":"http://localhost:3000/recrea/api/v1/expenses/50adf88a2f412ec28100005a.json"},{"id":"50adf26b2f412ec28100002a","number":"2","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":null,"currency":"EUR","items":[{"description":"Aircraft","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"subtotal":"\u20ac0.00","discount":"\u20ac0.00","gross_amount":"\u20ac0.00"}],"subtotal":"\u20ac0.00","discount":"\u20ac0.00","taxes":[],"total":"\u20ac0.00","payments":[{"id":"50adf3562f412ec281000030","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf3562f412ec281000030.json"},{"id":"50adf3582f412ec281000035","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf3582f412ec281000035.json"},{"id":"50adf3902f412ec281000037","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf3902f412ec281000037.json"},{"id":"50adf4372f412ec28100003e","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf4372f412ec28100003e.json"},{"id":"50adf49a2f412ec281000045","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf49a2f412ec281000045.json"},{"id":"50adf6d62f412ec28100004c","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf6d62f412ec28100004c.json"},{"id":"50adf8552f412ec281000053","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a/payments/50adf8552f412ec281000053.json"}],"tags":[],"notes":"","state":"paid","url":"http://localhost:3000/recrea/api/v1/expenses/50adf26b2f412ec28100002a.json"},{"id":"50adeefe2f412ec28100000b","number":"002","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":"","currency":"USD","items":[{"description":"mamamama","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":"","tax_1_rate":"","tax_2_name":"","tax_2_rate":"","subtotal":"$0.00","discount":"$0.00","gross_amount":"$0.00"}],"subtotal":"$0.00","discount":"$0.00","taxes":[],"total":"$0.00","payments":[{"id":"50adef1e2f412ec28100000e","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adeefe2f412ec28100000b/payments/50adef1e2f412ec28100000e.json"},{"id":"50adf26b2f412ec281000028","date":"2012-11-22","payment_method":"cash","amount":"\u20ac100,000,000.00","url":"http://localhost:3000/recrea/api/v1/expenses/50adeefe2f412ec28100000b/payments/50adf26b2f412ec281000028.json"}],"tags":[],"notes":"","state":"paid","url":"http://localhost:3000/recrea/api/v1/expenses/50adeefe2f412ec28100000b.json"}]'
42
+ http_version: '1.1'
43
+ recorded_at: Thu, 22 Nov 2012 11:23:38 GMT
44
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/invoices.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '972'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"eda1b5b5344758448849b28a596dc8cc"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - b28834d460b26c4d491bbe2f48073d9d
31
+ x-runtime:
32
+ - '0.051951'
33
+ content-length:
34
+ - '674'
35
+ connection:
36
+ - close
37
+ server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"id":"50ae0c1b2f412eeb20000003","number":"0000009","issue_date":"2012-11-22","contact":{"id":"50a23cb22f412eae4f000003","full_name":"100-499"},"po_number":null,"due_date":null,"currency":"EUR","items":[{"description":"Aircraft","quantity":"1.0","unit_price":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"subtotal":"\u20ac0.00","discount":"\u20ac0.00","gross_amount":"\u20ac0.00"}],"subtotal":"\u20ac0.00","discount":"\u20ac0.00","taxes":[],"total":"\u20ac0.00","payments":[],"tags":[],"payment_details":"","notes":"","state":"draft","url":"http://localhost:3000/recrea/api/v1/invoices/50ae0c1b2f412eeb20000003.json"}]'
42
+ http_version: '1.1'
43
+ recorded_at: Thu, 22 Nov 2012 11:27:24 GMT
44
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,127 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/contacts.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '452'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"18a8179fb8c19a3c225cb4f0a7d69326"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - a2d65da763fdfe9c237afa846ae56ee3
31
+ x-runtime:
32
+ - '0.073623'
33
+ content-length:
34
+ - '4919'
35
+ connection:
36
+ - close
37
+ server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"id":"50a23cb22f412eae4f000003","kind":"company","full_name":"100-499","contact_name":"","street_line_1":"Evergreen
42
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":"3447277","fax":"","email":"vidadelaempresa@gmail.com","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a23cb22f412eae4f000003"},{"id":"50a0d1eb2f412e58a700000b","kind":"company","full_name":"ACME","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d1eb2f412e58a700000b"},{"id":"50acb2b72f412eda52000041","kind":"company","full_name":"Tei","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acb2b72f412eda52000041"},{"id":"50a21c9e2f412e1a68000026","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a21c9e2f412e1a68000026"},{"id":"50a0f5612f412ef720000019","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":"Evergreen
43
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":null,"fax":null,"email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"ES","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0f5612f412ef720000019"},{"id":"50aa3de82f412ec2ab000014","kind":"person","first_name":"Test_OCP","last_name":"","full_name":"Test_OCP","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3de82f412ec2ab000014"},{"id":"50aa3e162f412ec2ab000019","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3e162f412ec2ab000019"},{"id":"50a21bf72f412e1a68000017","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a21bf72f412e1a68000017"},{"id":"50a0d2e82f412e15bf000004","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d2e82f412e15bf000004"},{"id":"50acc9842f412eda52000068","kind":"company","full_name":"Test_Skynet","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"my_little@po.ny","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acc9842f412eda52000068"},{"id":"50adf2612f412ec281000027","kind":"company","full_name":"Test_Skynet","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"my_little@po.ny","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50adf2612f412ec281000027"},{"id":"50acb16e2f412eda5200003e","kind":"person","first_name":"Zed","last_name":"","full_name":"Zed","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50acb16e2f412eda5200003e"}]'
44
+ http_version: '1.1'
45
+ recorded_at: Thu, 22 Nov 2012 09:37:37 GMT
46
+ - request:
47
+ method: delete
48
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/contacts/50adf2612f412ec281000027.json
49
+ body:
50
+ encoding: US-ASCII
51
+ string: ''
52
+ headers:
53
+ authorization:
54
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
55
+ response:
56
+ status:
57
+ code: 204
58
+ message: No Content
59
+ headers:
60
+ x-ratelimit-limit:
61
+ - '1000'
62
+ x-ratelimit-remaining:
63
+ - '451'
64
+ x-ua-compatible:
65
+ - IE=Edge
66
+ cache-control:
67
+ - no-cache
68
+ set-cookie:
69
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRkkiJTNiZmQ2MDJjMWI0ZGMyMzRhZWI4Y2EyZDg4Yzg3YTA5BjsAVA%3D%3D--2380771632abc372e8b5dec7fc7d25a60794eade;
70
+ path=/; HttpOnly
71
+ x-request-id:
72
+ - 0635917f957f4333d4f37d5fe01367c0
73
+ x-runtime:
74
+ - '0.034251'
75
+ connection:
76
+ - close
77
+ server:
78
+ - thin 1.5.0 codename Knife
79
+ body:
80
+ encoding: US-ASCII
81
+ string: ''
82
+ http_version: '1.1'
83
+ recorded_at: Thu, 22 Nov 2012 09:37:37 GMT
84
+ - request:
85
+ method: get
86
+ uri: http://xiZvifX5hwsxAiymYPk2@localhost:3000/recrea/api/v1/contacts.json
87
+ body:
88
+ encoding: US-ASCII
89
+ string: ''
90
+ headers:
91
+ authorization:
92
+ - Basic eGladmlmWDVod3N4QWl5bVlQazI6
93
+ response:
94
+ status:
95
+ code: 200
96
+ message: OK
97
+ headers:
98
+ x-ratelimit-limit:
99
+ - '1000'
100
+ x-ratelimit-remaining:
101
+ - '450'
102
+ content-type:
103
+ - application/json; charset=utf-8
104
+ x-ua-compatible:
105
+ - IE=Edge
106
+ etag:
107
+ - ! '"bb13a5d46652a7b601753ed913a01a27"'
108
+ cache-control:
109
+ - max-age=0, private, must-revalidate
110
+ x-request-id:
111
+ - e08c82213765879b142259db14d48410
112
+ x-runtime:
113
+ - '0.072485'
114
+ content-length:
115
+ - '4505'
116
+ connection:
117
+ - close
118
+ server:
119
+ - thin 1.5.0 codename Knife
120
+ body:
121
+ encoding: US-ASCII
122
+ string: ! '[{"id":"50a23cb22f412eae4f000003","kind":"company","full_name":"100-499","contact_name":"","street_line_1":"Evergreen
123
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":"3447277","fax":"","email":"vidadelaempresa@gmail.com","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a23cb22f412eae4f000003"},{"id":"50a0d1eb2f412e58a700000b","kind":"company","full_name":"ACME","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d1eb2f412e58a700000b"},{"id":"50acb2b72f412eda52000041","kind":"company","full_name":"Tei","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acb2b72f412eda52000041"},{"id":"50a21c9e2f412e1a68000026","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50a21c9e2f412e1a68000026"},{"id":"50a0f5612f412ef720000019","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":"Evergreen
124
+ Terrace","street_line_2":"","postal_code":"K0A 1B0","city":"Springfield","region":"Canada","country":"CA","phone_1":"3447277","phone_2":null,"fax":null,"email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"ES","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0f5612f412ef720000019"},{"id":"50aa3de82f412ec2ab000014","kind":"person","first_name":"Test_OCP","last_name":"","full_name":"Test_OCP","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3de82f412ec2ab000014"},{"id":"50aa3e162f412ec2ab000019","kind":"company","full_name":"Test_OCP","contact_name":"","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"dont@stop.believing","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50aa3e162f412ec2ab000019"},{"id":"50a21bf72f412e1a68000017","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a21bf72f412e1a68000017"},{"id":"50a0d2e82f412e15bf000004","kind":"company","full_name":"Test_OCP","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"dont@stop.believing","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50a0d2e82f412e15bf000004"},{"id":"50acc9842f412eda52000068","kind":"company","full_name":"Test_Skynet","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"US","phone_1":null,"phone_2":null,"fax":null,"email":"my_little@po.ny","web":null,"discount":null,"tax_id":null,"language":"EN","notes":null,"url":"http://localhost:3000/recrea/api/v1/contacts/50acc9842f412eda52000068"},{"id":"50acb16e2f412eda5200003e","kind":"person","first_name":"Zed","last_name":"","full_name":"Zed","street_line_1":"","street_line_2":"","postal_code":"","city":"","region":"","country":"US","phone_1":"","phone_2":"","fax":"","email":"","web":"","discount":null,"tax_id":"","language":"EN","notes":"","url":"http://localhost:3000/recrea/api/v1/contacts/50acb16e2f412eda5200003e"}]'
125
+ http_version: '1.1'
126
+ recorded_at: Thu, 22 Nov 2012 09:37:37 GMT
127
+ recorded_with: VCR 2.3.0