jortt 2.0.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 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