billogram 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 01b1c1e7b6c92ecce8df12e6677b5e21c1e20a57
4
+ data.tar.gz: e2d5a6d94146f3668670cf17a80fda2de712b03f
5
+ SHA512:
6
+ metadata.gz: 6ab92336c7e385b5797b67a2b9550da4f871d1fb0f61426a27bfc3bc98d102519517a42c9ba4235bc4afce6fdc54f5be33f6efbaa8d883af800d20dfc5d20301
7
+ data.tar.gz: 171be03c425b66915032ee90d8bf85687e2e575f394dc24d02618a1514dae4ca7b0539d349be79734435ebb1681aa093e6cd8b0427c182027684012dcfa0e2d8
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ .ruby-gemset
16
+ .ruby-version
17
+ test/fixtures
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in billogram.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Mark
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # Billogram
2
+
3
+ A tiny Ruby wrapper for Billogram API.
4
+
5
+ ## Installation
6
+ $ gem install billogram
7
+
8
+ ## Configuration
9
+ Billogram.configure do |c|
10
+ c.api_user = '6302-nibH3Grm'
11
+ c.api_key = 'e4d1bf5fba2f6e9df97a636dd8c67d2f'
12
+ c.base_url = 'https://sandbox.billogram.com/api/v2'
13
+ end
14
+
15
+ ## Usage
16
+ # Get an invoice by ID
17
+ @billgoram = Billogram::Invoice.get('gQjEEZL')
18
+
19
+ ## Contributing
20
+
21
+ 1. Fork it ( https://github.com/[my-github-username]/billogram/fork )
22
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
23
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
24
+ 4. Push to the branch (`git push origin my-new-feature`)
25
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ require 'rake/testtask'
4
+ Rake::TestTask.new do |test|
5
+ test.libs << 'lib' << 'test'
6
+ test.ruby_opts << "-rubygems"
7
+ test.pattern = 'test/**/*_test.rb'
8
+ test.verbose = true
9
+ end
data/billogram.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'billogram/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "billogram"
8
+ spec.version = Billogram::VERSION
9
+ spec.authors = ["Mark Birman"]
10
+ spec.email = ["birmanmark@gmail.com"]
11
+ spec.summary = %q{Ruby wrapper over Billogram API}
12
+ spec.description = %q{Ruby wrapper over Billogram API}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "minitest"
24
+ spec.add_development_dependency "fakeweb", ["~> 1.3"]
25
+
26
+ spec.add_dependency "httparty"
27
+ spec.add_dependency "json"
28
+ spec.add_dependency "hashie"
29
+ end
data/lib/billogram.rb ADDED
@@ -0,0 +1,24 @@
1
+ require "httparty"
2
+ require "hashie/mash"
3
+ require "forwardable"
4
+
5
+ Dir[File.dirname(__FILE__) + '/billogram/**/**.rb'].each do |file|
6
+ require file
7
+ end
8
+
9
+ module Billogram
10
+ CONFIG_KEYS = [:api_key, :api_user, :base_url].freeze
11
+
12
+ class << self
13
+ attr_accessor *CONFIG_KEYS
14
+
15
+ def configure
16
+ yield self
17
+ self
18
+ end
19
+
20
+ def client
21
+ @client ||= Client.new(api_user, api_key, base_url)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,22 @@
1
+ module Billogram
2
+ # https://github.com/lendai/billogram-api-clients/tree/master/ruby
3
+ class Client
4
+ include HTTParty
5
+ extend Forwardable
6
+
7
+ HEADERS = {
8
+ "Accept" => "application/json",
9
+ "Content-Type" => "application/json"
10
+ }
11
+
12
+ headers HEADERS
13
+ format :json
14
+
15
+ delegate [:get, :post, :put, :delete] => self
16
+
17
+ def initialize(username, password, base_uri = Billogram.base_url)
18
+ self.class.base_uri base_uri
19
+ self.class.basic_auth username, password
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,61 @@
1
+ module Billogram
2
+ class Resource
3
+ class << self
4
+ attr_writer :endpoint
5
+
6
+ def endpoint
7
+ @endpoint || downcased_class_name
8
+ end
9
+
10
+ def get(id = '')
11
+ get_and_return_new("/#{endpoint}/#{id}")
12
+ end
13
+
14
+ private
15
+
16
+ def downcased_class_name
17
+ name.split('::').last.downcase
18
+ end
19
+
20
+ def get_and_return_new(url)
21
+ response = Billogram.client.get(url)
22
+ new response['data']
23
+ end
24
+ end
25
+
26
+ attr_reader :attributes
27
+
28
+ def initialize(attributes = {})
29
+ @attributes = Hashie::Mash.new(attributes)
30
+ end
31
+
32
+ def update(attributes = {})
33
+ Billogram.client.put("/#{endpoint}/#{id}", attributes)
34
+ end
35
+
36
+ def delete
37
+ Billogram.client.delete("/#{endpoint}/#{id}")
38
+ end
39
+
40
+ private
41
+
42
+ def method_missing(method, *args)
43
+ method_name = method.to_s
44
+
45
+ if method_name =~ /(=|\?)$/
46
+ case $1
47
+ when '='
48
+ attributes[$`] = args.first
49
+ when '?'
50
+ attributes[$`]
51
+ end
52
+ else
53
+ if attributes.respond_to?(method)
54
+ attributes[method]
55
+ else
56
+ super
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,6 @@
1
+ module Billogram
2
+ # https://billogram.com/api/documentation#billogram
3
+ class Invoice < Resource
4
+ self.endpoint = 'billogram'
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module Billogram
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ describe Billogram do
4
+ Billogram::CONFIG_KEYS.each do |method|
5
+ it "should respond to #{method}" do
6
+ Billogram.must_respond_to method
7
+ end
8
+ end
9
+
10
+ describe '.configure' do
11
+ it 'should set values' do
12
+ Billogram.configure do |config|
13
+ Billogram::CONFIG_KEYS.each do |method|
14
+ config.send("#{method}=", method.to_s)
15
+ Billogram.send(method).must_equal method.to_s
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ describe '.client' do
22
+ it 'should be instance of Billogram::Client' do
23
+ Billogram.client.must_be_kind_of Billogram::Client
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ require 'fakeweb'
2
+
3
+ def stub_file(stub)
4
+ File.join(File.dirname(__FILE__), 'stubs', stub)
5
+ end
6
+
7
+ def fake_it_all
8
+ FakeWeb.clean_registry
9
+
10
+ {
11
+ # GET URLs
12
+ :get => {
13
+ %r{https://\w+:\w+@billogram.com/api/v2/billogram/$} => File.join('invoice', 'index'),
14
+ %r{https://\w+:\w+@billogram.com/api/v2/billogram/\w+} => File.join('invoice', 'show')
15
+ },
16
+ # POST URLs
17
+ :post => {
18
+ 'https://billogram.com/api/v2/billogram' => File.join('invoice', 'create'),
19
+ %r{https://billogram.com/api/v2/\w+/command/send} => File.join('invoice', 'send')
20
+ },
21
+ # PUT URLs
22
+ :put => {
23
+ %r{https://billogram.com/api/v2/\w+} => File.join('invoice', 'update')
24
+ }
25
+ }.
26
+ each do |method, requests|
27
+ requests.each do |url, response|
28
+ FakeWeb.register_uri(method, url, :response => stub_file(response))
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ describe Billogram::Resource do
4
+ describe '.endpoint' do
5
+ it 'should set value' do
6
+ Billogram::Resource.endpoint = 'test_endpoint'
7
+ Billogram::Resource.endpoint.must_equal 'test_endpoint'
8
+ end
9
+
10
+ it 'should return downcased class name by default' do
11
+ Billogram::Resource.endpoint = nil
12
+ Billogram::Resource.endpoint.must_equal 'resource'
13
+ end
14
+ end
15
+
16
+ describe '.new' do
17
+ it 'should set attributes' do
18
+ resource = Billogram::Resource.new({string_attribute: 'test', zero_attribute: 0, integer_attribute: 2, false_attribute: false, nil_attribute: nil})
19
+ resource.string_attribute.must_equal 'test'
20
+ resource.zero_attribute.must_equal 0
21
+ resource.integer_attribute.must_equal 2
22
+ resource.false_attribute.must_equal false
23
+ resource.nil_attribute.must_equal nil
24
+ end
25
+ end
26
+
27
+ it 'should have setters for attributes' do
28
+ resource = Billogram::Resource.new({first: 'test'})
29
+ resource.first = 'first'
30
+ resource.first.must_equal 'first'
31
+ end
32
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ describe Billogram::Invoice do
4
+ before(:each) do
5
+ configure_billogram
6
+ fake_it_all
7
+ @billogram = Billogram::Invoice.get('gQjEEZL')
8
+ end
9
+
10
+ it 'should return an instance of Billogram::Invoice' do
11
+ @billogram.must_be_kind_of Billogram::Invoice
12
+ end
13
+
14
+ it 'should return id' do
15
+ @billogram.id.must_equal 'gQjEEZL'
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ HTTP/1.1 403 FORBIDDEN
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "status" : "INVALID_AUTH",
6
+ "data" : {
7
+ "message" : "Invalid username or password"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ HTTP/1.1 404 NOT FOUND
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "status" : "NOT_FOUND",
6
+ "data" : {
7
+ "message" : "no billogram with id=DHjsdkO was found"
8
+ }
9
+ }
@@ -0,0 +1,54 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "status":"OK",
6
+ "meta":{
7
+ "total_count":171,
8
+ "total_remaining_sum":"159145.00"
9
+ },
10
+ "data":[
11
+ {
12
+ "customer":{
13
+ "name":"Happy customer",
14
+ "email":null,
15
+ "org_no":null,
16
+ "customer_no":5
17
+ },
18
+ "due_date":"2014-11-01",
19
+ "total_sum":3148.0,
20
+ "created_at":"2014-10-19 21:32:12",
21
+ "invoice_date":"2014-10-17",
22
+ "updated_at":"2014-10-19 21:32:12",
23
+ "currency":"SEK",
24
+ "state":"Unattested",
25
+ "remaining_sum":3148.0,
26
+ "flags":[
27
+ ],
28
+ "ocr_number":null,
29
+ "invoice_no":null,
30
+ "id":"u9PQW3E"
31
+ },
32
+ {
33
+ "customer":{
34
+ "name":"Systembolaget",
35
+ "email":"invoice@systembolaget.se",
36
+ "org_no":"",
37
+ "customer_no":1
38
+ },
39
+ "due_date":"2014-10-15",
40
+ "total_sum":72269.0,
41
+ "created_at":"2014-09-15 00:55:22",
42
+ "invoice_date":"2014-09-15",
43
+ "updated_at":"2014-09-15 01:07:19",
44
+ "currency":"SEK",
45
+ "state":"Unattested",
46
+ "remaining_sum":72269.0,
47
+ "flags":[
48
+ ],
49
+ "ocr_number":null,
50
+ "invoice_no":null,
51
+ "id":"EjWs4CP"
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,125 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "status":"OK",
6
+ "data":{
7
+ "due_days":15,
8
+ "info":{
9
+ "reference_number":null,
10
+ "our_reference":"John Doe",
11
+ "order_no":"AIB033",
12
+ "shipping_date":"2014-10-30",
13
+ "order_date":"2014-10-24",
14
+ "message":"Thank you!",
15
+ "delivery_date":"2014-10-30",
16
+ "your_reference":""
17
+ },
18
+ "attested_at":"2014-10-24 07:30:45",
19
+ "updated_at":"2015-01-23 23:44:17",
20
+ "currency":"SEK",
21
+ "detailed_sums":{
22
+ "credited_sum":0,
23
+ "net_sum":445,
24
+ "gross_sum":556.25,
25
+ "invoice_fee_vat":0,
26
+ "paid_sum":0,
27
+ "interest_fee":0,
28
+ "vat_sum":111.25,
29
+ "reminder_fee":0,
30
+ "invoice_fee":0,
31
+ "rounding":-0.25,
32
+ "regional_sweden":{
33
+ "rotavdrag_sum":0
34
+ },
35
+ "collector_paid_sum":0,
36
+ "remaining_sum":556
37
+ },
38
+ "id":"gQjEEZL",
39
+ "reminder_fee":"50",
40
+ "interest_rate":8.5,
41
+ "state":"Overdue",
42
+ "attachment":null,
43
+ "automatic_reminders":false,
44
+ "rounding_value":-0.25,
45
+ "ocr_number":"6409920018890569",
46
+ "events":[
47
+ {
48
+ "type":"BillogramCreated",
49
+ "created_at":"2014-10-24 07:30:42",
50
+ "data":null
51
+ },
52
+ {
53
+ "type":"BillogramSent",
54
+ "created_at":"2014-10-24 07:30:45",
55
+ "data":{
56
+ "letter_id":"Tk5NTQzQxNjQ14bccc9e8c0YTAwMjRmMGM3NANc8131024c90a0d24b1fc73",
57
+ "total_sum":556,
58
+ "scanning_central":null,
59
+ "remaining_sum":556,
60
+ "delivery_method":"Letter",
61
+ "invoice_no":190
62
+ }
63
+ },
64
+ {
65
+ "type":"Overdue",
66
+ "created_at":"2014-11-08 23:00:00",
67
+ "data":{
68
+ "remaining_sum":"556.00"
69
+ }
70
+ }
71
+ ],
72
+ "due_date":"2014-11-08",
73
+ "invoice_fee_vat":0,
74
+ "invoice_date":"2014-10-24",
75
+ "reminder_count":0,
76
+ "interest_fee":0.0,
77
+ "invoice_no":190,
78
+ "customer":{
79
+ "name":"Cool Customer",
80
+ "vat_no":null,
81
+ "phone":"+46 40 44 65 787",
82
+ "customer_no":3,
83
+ "address":{
84
+ "city":"",
85
+ "country":"SE",
86
+ "attention":"",
87
+ "zipcode":"62156",
88
+ "careof":"",
89
+ "street_address":"Schweitzergr\u00e4nd 10A"
90
+ },
91
+ "email":null,
92
+ "org_no":null
93
+ },
94
+ "invoice_fee":0,
95
+ "url":"https://billogram.com/r/2001905699988640/N9PCC4",
96
+ "items":[
97
+ {
98
+ "count":5.0,
99
+ "item_no":"110-1",
100
+ "description":"75cl Bigger Lager 7,5% - Imperial Pilsner - All In Brewing/Toccalmatto",
101
+ "title":"Bigger Lager 7,5% 75cl",
102
+ "regional_sweden":{
103
+ "rotavdrag":false
104
+ },
105
+ "price":89.0,
106
+ "discount":0.0,
107
+ "unit":"unit",
108
+ "vat":25
109
+ }
110
+ ],
111
+ "created_at":"2014-10-24 07:30:42",
112
+ "total_sum":556.0,
113
+ "delivery_method":"Letter",
114
+ "remaining_sum":556.0,
115
+ "flags":[
116
+
117
+ ],
118
+ "regional_sweden":{
119
+ "rotavdrag_personal_number":null,
120
+ "rotavdrag":0,
121
+ "reversed_vat":null,
122
+ "rotavdrag_description":null
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,14 @@
1
+ require './lib/billogram'
2
+ require 'minitest/autorun'
3
+ require 'minitest/spec'
4
+ require 'fakeweb_helper.rb'
5
+
6
+ FakeWeb.allow_net_connect = false
7
+
8
+ def configure_billogram
9
+ Billogram.configure do |config|
10
+ config.base_url = 'https://billogram.com/api/v2/'
11
+ config.api_user = 'username'
12
+ config.api_key = 'password'
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,171 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: billogram
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mark Birman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: fakeweb
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: hashie
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Ruby wrapper over Billogram API
112
+ email:
113
+ - birmanmark@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - Gemfile
120
+ - LICENSE.txt
121
+ - README.md
122
+ - Rakefile
123
+ - billogram.gemspec
124
+ - lib/billogram.rb
125
+ - lib/billogram/client.rb
126
+ - lib/billogram/resource.rb
127
+ - lib/billogram/resources/invoice.rb
128
+ - lib/billogram/version.rb
129
+ - test/billogram_test.rb
130
+ - test/fakeweb_helper.rb
131
+ - test/resource_test.rb
132
+ - test/resources/invoice_test.rb
133
+ - test/stubs/errors/403
134
+ - test/stubs/errors/404
135
+ - test/stubs/invoice/index
136
+ - test/stubs/invoice/show
137
+ - test/test_helper.rb
138
+ homepage: ''
139
+ licenses:
140
+ - MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.2.2
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: Ruby wrapper over Billogram API
162
+ test_files:
163
+ - test/billogram_test.rb
164
+ - test/fakeweb_helper.rb
165
+ - test/resource_test.rb
166
+ - test/resources/invoice_test.rb
167
+ - test/stubs/errors/403
168
+ - test/stubs/errors/404
169
+ - test/stubs/invoice/index
170
+ - test/stubs/invoice/show
171
+ - test/test_helper.rb