jortt 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 77c2bef2b81e18794d1f60872ba00fb5a267d2e1
4
+ data.tar.gz: be437bdf4b8d419736c7d5a08f963931a1b70826
5
+ SHA512:
6
+ metadata.gz: 685dcfac26a6f566ec4f074f6e44908b219cd1e8c094fb4c3bb4bee0962879aee17feb09e086a16e704755434a08d0e96c68f55121a0d69a316dca9a80480b39
7
+ data.tar.gz: c7b5c30f5d1417acaecf3d736e0b9bf8fcdb985bdae26bd56abba674037ca445454b8da71e63fcb434197fe0a245f004b2956f1a2ca082057520bd416b97fb9d
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
data/.rubocop.yml ADDED
@@ -0,0 +1,26 @@
1
+ require: rubocop-rspec
2
+
3
+ Style/AccessModifierIndentation:
4
+ EnforcedStyle: outdent
5
+
6
+ Style/AlignParameters:
7
+ EnforcedStyle: with_fixed_indentation
8
+
9
+ Style/DotPosition:
10
+ EnforcedStyle: trailing
11
+
12
+ Style/TrailingComma:
13
+ EnforcedStyleForMultiline: comma
14
+
15
+ Style/EmptyLinesAroundBody:
16
+ Description: "Keeps track of empty lines around expression bodies."
17
+ Enabled: false
18
+
19
+ Style/RegexpLiteral:
20
+ MaxSlashes: 0
21
+
22
+ Style/HashSyntax:
23
+ EnforcedStyle: ruby19
24
+
25
+ Style/SpaceInsideHashLiteralBraces:
26
+ EnforcedStyle: no_space
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.5
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.1.5
5
+ script:
6
+ - bundle exec rspec
7
+ - bundle exec rubocop
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in jortt.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Bob Forma
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,99 @@
1
+ # Freemle REST API client
2
+
3
+ [![Inline docs](
4
+ http://inch-ci.org/github/jorttbv/jortr-ruby.svg?branch=master&style=flat
5
+ )](http://inch-ci.org/github/jorttbv/jortt-ruby)
6
+ [![Code Climate](
7
+ http://img.shields.io/codeclimate/github/jorttbv/jortt-ruby.svg?style=flat
8
+ )](https://codeclimate.com/github/jorttbv/jortt-ruby)
9
+ [![Coverage Status](
10
+ http://img.shields.io/coveralls/jorttbv/jortt-ruby.svg?style=flat
11
+ )](https://coveralls.io/r/jorttbv/jortt-ruby)
12
+ [![Build Status](
13
+ http://img.shields.io/travis/jorttbv/jortt-ruby.svg?style=flat
14
+ )](https://travis-ci.org/jorttbv/jortt-ruby)
15
+
16
+ A Ruby interface to the [Jortt](https://www.jortt.nl/) REST API.
17
+
18
+ ## Usage
19
+
20
+ Note: The client is still called Freemle for historic reasons. Name change on its way...
21
+
22
+ To create a freemle client:
23
+ ```ruby
24
+ freemle = Freemle.client(
25
+ app_name: "application-name-as-chosen-on-jortt.nl",
26
+ api_key: "api-key-as-provided-by-jortt.nl"
27
+ )
28
+ ```
29
+
30
+ ### Customers
31
+
32
+ Accessing customers (`freemle.customers.search('Jortt')`) returns:
33
+ ```ruby
34
+ [{
35
+ company_name: 'Jortt',
36
+ address: {
37
+ street: "Transistorstraat 71C",
38
+ postal_code: "1322 CK",
39
+ city: "Almere",
40
+ country_code: "NL"
41
+ }
42
+ },
43
+ company_name: 'ttroj',
44
+ address: {
45
+ street: "Jorttweg",
46
+ ...
47
+ }
48
+ }]
49
+ ```
50
+
51
+ Adding customers:
52
+ ```ruby
53
+ freemle.customers.create(
54
+ company_name: "Jortt B.V.",
55
+ attn: "Vibiemme", # Optional
56
+ extra_information: "The best cofee maker!", # Optional
57
+ address: {
58
+ street: "Transistorstraat 71C",
59
+ postal_code: "1322 CK",
60
+ city: "Almere",
61
+ country_code: "NL"
62
+ }
63
+ )
64
+ ```
65
+
66
+ ### Invoices
67
+
68
+ Adding invoices:
69
+ ```ruby
70
+ freemle.invoices.create(
71
+ customer_id: "123456789", # Optional
72
+ delivery_period: "31-12-1234", # Optional
73
+ reference: "my-reference", # Optional
74
+ line_items: [
75
+ {vat: 21, amount: 1359.50, quantity: 1, description: "Scrum Training"}
76
+ ]
77
+ )
78
+ ```
79
+
80
+ ## Documentation
81
+
82
+ Check https://app.jortt.nl/api-documentatie for more info.
83
+
84
+ ## Development
85
+
86
+ ### Running tests
87
+
88
+ `bundle install` and then `rake spec` or `rspec spec`.
89
+
90
+ ### Building the gem
91
+
92
+ `rake build` and then `rake install` to test it locally (`irb` followed
93
+ by `require 'freemle/client'` and do your stuff).
94
+
95
+ ### Releasing the gem
96
+
97
+ Make a fix, commit and push. Make sure the build is green. Then bump the
98
+ version (edit `lib/freemle/client/version.rb`). Now `rake release` and follow
99
+ the instructions (you need a rubygems.org account and permissions ;-)).
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ # encoding: UTF-8
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task default: :spec
data/jortt.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 'freemle/client/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'jortt'
8
+ spec.version = Freemle::Client::VERSION
9
+ spec.authors = ['Bob Forma', 'Steven Weller', 'Lars Vonk']
10
+ spec.email = %w(bforma@zilverline.com suweller@zilverline.com lvonk@zilverline.com)
11
+ spec.summary = 'jortt.nl REST API client'
12
+ spec.homepage = 'https://www.jortt.nl/api-documentatie'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^exec/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_runtime_dependency 'rest-client', '~> 1.6'
21
+
22
+ spec.add_development_dependency 'bundler', '~> 1.0'
23
+ spec.add_development_dependency 'coveralls', '~> 0.7'
24
+ spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec', '~> 2.14'
26
+ spec.add_development_dependency 'webmock', '~> 1.17'
27
+ spec.add_development_dependency 'rubocop', '~> 0.24.1'
28
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.1.0'
29
+ end
data/lib/freemle.rb ADDED
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+ require 'freemle/client'
3
+ require 'freemle/client/version'
4
+
5
+ ##
6
+ # This module contains everything needed to setup a connection to the Freemle
7
+ # API. It's only method returns a configured Freemle::Client.
8
+ module Freemle
9
+
10
+ # Convenient way to initialize a freemle client.
11
+ #
12
+ # @see {Freemle::Client.initialize}
13
+ #
14
+ # @return [ Freemle::Client ] a new freemle client instance
15
+ #
16
+ # @since 1.0.1
17
+ def client(*args)
18
+ Freemle::Client.new(*args)
19
+ end
20
+ module_function :client
21
+
22
+ end
@@ -0,0 +1,69 @@
1
+ # encoding: UTF-8
2
+ require 'freemle/client/resource'
3
+
4
+ module Freemle
5
+ ##
6
+ # This class is the main interface used to communicate with the Freemle API.
7
+ # It is by the {Freemle} module to create configured instances.
8
+ class Client
9
+ BASE_URL = 'https://www.freemle.com/api'
10
+
11
+ attr_accessor :base_url, :app_name, :api_key
12
+
13
+ # Initialize a Freemle client.
14
+ #
15
+ # @example
16
+ # Freemle::Client.new(
17
+ # app_name: <application-name, chosen in freemle.com>
18
+ # api_key: <api-key, as provided by freemle.com>
19
+ # )
20
+ #
21
+ # @params [ Hash ] opts Options for the client,
22
+ # optionally including base_url.
23
+ #
24
+ # @return [ Freemle::Client ]
25
+ #
26
+ # @since 1.0.0
27
+ def initialize(opts)
28
+ self.base_url = opts.fetch(:base_url, BASE_URL)
29
+ self.app_name = opts.fetch(:app_name)
30
+ self.api_key = opts.fetch(:api_key)
31
+ end
32
+
33
+ # Access the customer resource.
34
+ #
35
+ # @example
36
+ # client.customers
37
+ #
38
+ # @return [ Freemle::Client::Resource ] entry to the customer resource.
39
+ #
40
+ # @since 1.0.0
41
+ def customers
42
+ @customers ||= new_resource(self, :customer, :customers)
43
+ end
44
+
45
+ # Access the invoice resource.
46
+ #
47
+ # @example
48
+ # client.invoices
49
+ #
50
+ # @return [ Freemle::Client::Resource ] entry to the invoice resource.
51
+ #
52
+ # @since 1.0.0
53
+ def invoices
54
+ @invoices ||= new_resource(self, :invoice, :invoices)
55
+ end
56
+
57
+ private
58
+
59
+ # Creates a freemle client resource based on the passed configuration
60
+ #
61
+ # @return [ Freemle::Client::Resource ] entry to a resource.
62
+ #
63
+ # @since 1.0.1
64
+ def new_resource(*args)
65
+ Freemle::Client::Resource.new(*args)
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,140 @@
1
+ # encoding: UTF-8
2
+ require 'rest-client'
3
+
4
+ module Freemle # :nodoc:
5
+ class Client # :nodoc:
6
+ ##
7
+ # This class is used by {Freemle::Client} internally.
8
+ # It wraps rest API calls of a single resource,
9
+ # so they can easily be used using the client DSL.
10
+ #
11
+ # @see { Freemle::Client.customer }
12
+ class Resource
13
+
14
+ # Details needed to connect to this resource, see
15
+ # +Freemle::Client#initialize+
16
+ #
17
+ # @since 1.0.0
18
+ attr_accessor :config
19
+
20
+ # The singular form, posted to and returned when describing
21
+ # a single member of this resource.
22
+ #
23
+ # @since 1.0.0
24
+ attr_accessor :singular
25
+
26
+ # Used to describe multiple members of this resource.
27
+ #
28
+ # @since 1.0.0
29
+ attr_accessor :plural
30
+
31
+ # Creates a new resource instance.
32
+ #
33
+ # @see { Freemle::Client#new_resource }
34
+ #
35
+ # @returns [ Freemle::Client::Resource ] bound to the resource
36
+ # defined by +singular+ & +plural+
37
+ #
38
+ # @since 1.0.0
39
+ def initialize(config, singular, plural)
40
+ self.config = config
41
+ self.singular = singular
42
+ self.plural = plural
43
+ end
44
+
45
+ # Performs a search on this resource, given a query.
46
+ #
47
+ # @example
48
+ # customers.search('Zilverline')
49
+ #
50
+ # @example
51
+ # customers.search('Zilverline') do |response|
52
+ # # Roll your own response handler
53
+ # end
54
+ #
55
+ # @param [ Hash ] query A hash containing the fields to search for.
56
+ # @param [ Proc ] block A custom response handler.
57
+ #
58
+ # @return [ Array<Hash> ] By default, a JSON parsed response body.
59
+ #
60
+ # @since 1.0.0
61
+ def search(query, &block)
62
+ block = default_handler unless block_given?
63
+ request.get(params: {query: query}, &block)
64
+ end
65
+
66
+ # Persists a resource on freemle.com, given a payload.
67
+ #
68
+ # @example
69
+ # customers.create(
70
+ # company_name: "Zilverline B.V.",
71
+ # address: {
72
+ # street: "Cruquiusweg 109 F",
73
+ # postal_code: "1019 AG",
74
+ # city: "Amsterdam",
75
+ # country_code: "NL"
76
+ # }
77
+ # )
78
+ #
79
+ # @example
80
+ # customers.create(
81
+ # company_name: "Zilverline B.V.",
82
+ # address: {
83
+ # street: "Cruquiusweg 109 F",
84
+ # postal_code: "1019 AG",
85
+ # city: "Amsterdam",
86
+ # country_code: "NL"
87
+ # }
88
+ # ) do |response|
89
+ # # Roll your own response handler
90
+ # end
91
+ #
92
+ # @param [ Hash ] payload A hash containing the fields to set.
93
+ # @param [ Proc ] block A custom response handler.
94
+ #
95
+ # @return [ Hash ] By default, a JSON parsed response body.
96
+ #
97
+ # @since 1.0.0
98
+ def create(payload, &block)
99
+ block = default_handler unless block_given?
100
+ request.post(json.generate(singular => payload), &block)
101
+ end
102
+
103
+ private
104
+
105
+ # Returns a response handler, which parses the response body as JSON.
106
+ #
107
+ # @return [ Proc ] Default response handler.
108
+ #
109
+ # @since 1.0.0
110
+ def default_handler
111
+ proc { |response| json.parse(response.body) }
112
+ end
113
+
114
+ # Returns a new request handler for this resource.
115
+ #
116
+ # @return [ RestClient::Resource ] A request handler.
117
+ #
118
+ # @since 1.0.0
119
+ def request
120
+ RestClient::Resource.new(
121
+ "#{config.base_url}/#{plural}",
122
+ user: config.app_name,
123
+ password: config.api_key,
124
+ )
125
+ end
126
+
127
+ # Returns the JSON library used in request/default-response handling.
128
+ #
129
+ # @return [ Class ] A JSON library.
130
+ #
131
+ # @since 1.0.0
132
+ def json
133
+ return @json if @json
134
+ require 'json'
135
+ @json = JSON
136
+ end
137
+
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,7 @@
1
+ # encoding: UTF-8
2
+ module Freemle
3
+ # Define the version of +Freemle::Client+
4
+ class Client
5
+ VERSION = '2.0.0'
6
+ end
7
+ end
@@ -0,0 +1,31 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe Freemle::Client::Resource do
5
+ let(:resource) do
6
+ described_class.new(
7
+ double('client', base_url: 'foo', app_name: 'app', api_key: 'secret'),
8
+ :person,
9
+ :people,
10
+ )
11
+ end
12
+
13
+ describe '#search' do
14
+ subject { resource.search('terms') }
15
+ before do
16
+ stub_request(:get, 'http://app:secret@foo/people?query=terms').
17
+ to_return(status: 200, body: '{"people": []}')
18
+ end
19
+ it { should eq('people' => []) }
20
+ end
21
+
22
+ describe '#create' do
23
+ subject { resource.create(foo: :bar) }
24
+ before do
25
+ stub_request(:post, 'http://app:secret@foo/people').
26
+ with(body: '{"person":{"foo":"bar"}}').
27
+ to_return(status: 201, body: '{"person_id": "123"}')
28
+ end
29
+ it { should eq('person_id' => '123') }
30
+ end
31
+ end
@@ -0,0 +1,43 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe Freemle::Client do
5
+ describe '#initialize' do
6
+ subject { described_class.new(opts) }
7
+ let(:opts) { {} }
8
+
9
+ specify { expect { subject }.to raise_error(KeyError) }
10
+
11
+ context 'given app_name' do
12
+ before { opts[:app_name] = 'name' }
13
+
14
+ specify { expect { subject }.to raise_error(KeyError) }
15
+
16
+ context 'and api_key' do
17
+ before { opts[:api_key] = 'secret' }
18
+ it { should be_instance_of(described_class) }
19
+ its(:base_url) { should eq(described_class::BASE_URL) }
20
+ its(:app_name) { should eq('name') }
21
+ its(:api_key) { should eq('secret') }
22
+ end
23
+ end
24
+ end
25
+
26
+ context 'configured' do
27
+ let(:client) { described_class.new(app_name: 'app', api_key: 'secret') }
28
+
29
+ describe '#customers' do
30
+ subject { client.customers }
31
+ it { should be_instance_of(described_class::Resource) }
32
+ its(:singular) { should eq(:customer) }
33
+ its(:plural) { should eq(:customers) }
34
+ end
35
+
36
+ describe '#invoices' do
37
+ subject { client.invoices }
38
+ it { should be_instance_of(described_class::Resource) }
39
+ its(:singular) { should eq(:invoice) }
40
+ its(:plural) { should eq(:invoices) }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe Freemle do
5
+ describe '.client' do
6
+ subject { described_class.client(app_name: 'name', api_key: 'secret') }
7
+ it { should be_instance_of(described_class::Client) }
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: UTF-8
2
+ require 'simplecov'
3
+ require 'coveralls'
4
+
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
+ SimpleCov::Formatter::HTMLFormatter,
7
+ Coveralls::SimpleCov::Formatter
8
+ ]
9
+ SimpleCov.start
10
+ # Coveralls.wear!
11
+
12
+ require 'rspec'
13
+ require 'webmock/rspec'
14
+
15
+ require 'freemle'
metadata ADDED
@@ -0,0 +1,181 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jortt
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Bob Forma
8
+ - Steven Weller
9
+ - Lars Vonk
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2015-08-19 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.6'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.6'
29
+ - !ruby/object:Gem::Dependency
30
+ name: bundler
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '1.0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: coveralls
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.7'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.7'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '10.0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '10.0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rspec
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '2.14'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '2.14'
85
+ - !ruby/object:Gem::Dependency
86
+ name: webmock
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.17'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.17'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rubocop
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 0.24.1
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: 0.24.1
113
+ - !ruby/object:Gem::Dependency
114
+ name: rubocop-rspec
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: 1.1.0
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: 1.1.0
127
+ description:
128
+ email:
129
+ - bforma@zilverline.com
130
+ - suweller@zilverline.com
131
+ - lvonk@zilverline.com
132
+ executables: []
133
+ extensions: []
134
+ extra_rdoc_files: []
135
+ files:
136
+ - ".gitignore"
137
+ - ".rubocop.yml"
138
+ - ".ruby-version"
139
+ - ".travis.yml"
140
+ - Gemfile
141
+ - LICENSE.txt
142
+ - README.md
143
+ - Rakefile
144
+ - jortt.gemspec
145
+ - lib/freemle.rb
146
+ - lib/freemle/client.rb
147
+ - lib/freemle/client/resource.rb
148
+ - lib/freemle/client/version.rb
149
+ - spec/freemle/client/resource_spec.rb
150
+ - spec/freemle/client_spec.rb
151
+ - spec/freemle_spec.rb
152
+ - spec/spec_helper.rb
153
+ homepage: https://www.jortt.nl/api-documentatie
154
+ licenses:
155
+ - MIT
156
+ metadata: {}
157
+ post_install_message:
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 2.2.2
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: jortt.nl REST API client
177
+ test_files:
178
+ - spec/freemle/client/resource_spec.rb
179
+ - spec/freemle/client_spec.rb
180
+ - spec/freemle_spec.rb
181
+ - spec/spec_helper.rb