billomat 1.3.0 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c167f4c07f96fd19717728953d62deb4185b99b3822a7ff5c45a022f133907a4
4
- data.tar.gz: ddde00ee22f03f7c43e88b7350a865732e80f14f0f106834ab0ed1a1d4414c65
3
+ metadata.gz: 9285a437b3f48f934a29ba53fa604cb2e75c92f741f2d6a3efa5e6d66436faeb
4
+ data.tar.gz: fc53cadd50256ef7544af986467e95e53a4cc2fdf9921bf9f5902621068229c1
5
5
  SHA512:
6
- metadata.gz: ffe859647dcaca71302a400bd25df857a9f4c790236ef59b699bf520adc6e8a9d1e909c4820feacb3d83f1734017ccbc8cd8ef6bbbc8a2663e9e70888b04447d
7
- data.tar.gz: f14f878aa99ed33587124cbf33a8544e5a94e563b6f62788e24593ede62b1892cd15f0c9b9ae30308d76bf49cbcb99282e99fc7556f12c67f530c9d9d96dbe4e
6
+ metadata.gz: 7af2786d47172cc693d56979bb0edd737c13e2f314166b0a44c4f02d5115aff7f68a83d17607f010c8b5292987e67f1c101d576aaeb0951e865ca362e755c995
7
+ data.tar.gz: 7e9dfe58d19fc2eb391aa43683cd7ec4455931fd6b3392225d3d776eb25bef8fdb4845d8082d76ad9945e2a7f570069af13994106305e2498a239feecef3e03f
@@ -12,13 +12,16 @@ concurrency:
12
12
 
13
13
  jobs:
14
14
  test:
15
- name: 'Test the gem (Ruby ${{ matrix.ruby }})'
15
+ name: 'Test the gem (Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }})'
16
16
  runs-on: ubuntu-22.04
17
17
  timeout-minutes: 5
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
21
  ruby: ['2.7', '3.0']
22
+ rails: ['6.1', '7.1']
23
+ env:
24
+ BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
22
25
  steps:
23
26
  - uses: actions/checkout@v4
24
27
 
data/Appraisals ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise 'rails-6.1' do
4
+ gem 'activesupport', '~> 6.1.0'
5
+ end
6
+
7
+ appraise 'rails-7.1' do
8
+ gem 'activesupport', '~> 7.1.0'
9
+ end
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 1.4.1 (17 January 2025)
6
+
7
+ * Added the logger dependency (#28)
8
+
9
+ ### 1.4.0 (11 January 2025)
10
+
11
+ * Switched to Zeitwerk as autoloader (#27)
12
+
5
13
  ### 1.3.0 (3 January 2025)
6
14
 
7
15
  * Raised minimum supported Ruby/Rails version to 2.7/6.1 (#26)
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  # Development dependencies
9
+ gem 'appraisal', '~> 2.4'
9
10
  gem 'bundler', '~> 2.3'
10
11
  gem 'countless', '~> 1.1'
11
12
  gem 'guard-rspec', '~> 4.7'
data/Makefile CHANGED
@@ -13,6 +13,7 @@ BASH_RUN_SHELL_FLAGS ?=
13
13
 
14
14
  # Directories
15
15
  VENDOR_DIR ?= vendor/bundle
16
+ GEMFILES_DIR ?= gemfiles
16
17
 
17
18
  # Host binaries
18
19
  AWK ?= awk
@@ -20,14 +21,19 @@ BASH ?= bash
20
21
  COMPOSE ?= docker-compose
21
22
  CP ?= cp
22
23
  DOCKER ?= docker
24
+ EXPORT ?= export
25
+ FIND ?= find
23
26
  GREP ?= grep
27
+ HEAD ?= head
24
28
  ID ?= id
25
29
  MKDIR ?= mkdir
26
30
  RM ?= rm
31
+ SORT ?= sort
27
32
  TEST ?= test
28
33
  XARGS ?= xargs
29
34
 
30
35
  # Container binaries
36
+ APPRAISAL ?= appraisal
31
37
  BUNDLE ?= bundle
32
38
  GEM ?= gem
33
39
  GUARD ?= guard
@@ -37,6 +43,12 @@ RUBOCOP ?= rubocop
37
43
  YARD ?= yard
38
44
  RUBY_VERSION := ruby-version
39
45
 
46
+ # Files
47
+ GEMFILES ?= $(subst _,-,$(patsubst $(GEMFILES_DIR)/%.gemfile,%,\
48
+ $(wildcard $(GEMFILES_DIR)/*.gemfile)))
49
+ TEST_GEMFILES := $(GEMFILES:%=test-%)
50
+ WATCH_GEMFILES := $(GEMFILES:%=watch-%)
51
+
40
52
  # Define a generic shell run wrapper
41
53
  # $1 - The command to run
42
54
  ifeq ($(MAKE_ENV),docker)
@@ -57,6 +69,7 @@ all:
57
69
  # Billomat
58
70
  #
59
71
  # install Install the dependencies
72
+ # update Update the local Gemset dependencies
60
73
  # clean Clean the dependencies
61
74
  #
62
75
  # test Run the whole test suite
@@ -78,16 +91,23 @@ install:
78
91
  # Install the dependencies
79
92
  @$(MKDIR) -p $(VENDOR_DIR)
80
93
  @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
94
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
81
95
 
82
96
  update:
83
97
  # Install the dependencies
84
98
  @$(MKDIR) -p $(VENDOR_DIR)
85
99
  @$(call run-shell,$(BUNDLE) update)
100
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) update)
86
101
 
87
102
  watch: install .interactive
88
103
  # Watch for code changes and rerun the test suite
89
104
  @$(call run-shell,$(BUNDLE) exec $(GUARD))
90
105
 
106
+ $(WATCH_GEMFILES): GEMFILE=$(@:watch-%=%)
107
+ $(WATCH_GEMFILES):
108
+ # Watch for code changes and rerun the test suite ($(GEMFILE))
109
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(GUARD))
110
+
91
111
  test: \
92
112
  test-specs \
93
113
  test-style
@@ -96,6 +116,11 @@ test-specs:
96
116
  # Run the whole test suite
97
117
  @$(call run-shell,$(BUNDLE) exec $(RAKE) stats spec)
98
118
 
119
+ $(TEST_GEMFILES): GEMFILE=$(@:test-%=%)
120
+ $(TEST_GEMFILES):
121
+ # Run the whole test suite ($(GEMFILE))
122
+ @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) $(GEMFILE) $(RSPEC))
123
+
99
124
  test-style: \
100
125
  test-style-ruby
101
126
 
@@ -107,7 +132,9 @@ test-style-ruby:
107
132
  clean:
108
133
  # Clean the dependencies
109
134
  @$(RM) -rf $(VENDOR_DIR)
110
- @$(RM) -rf $(VENDOR_DIR)/Gemfile.lock
135
+ @$(RM) -rf Gemfile.lock
136
+ @$(RM) -rf $(GEMFILES_DIR)/vendor
137
+ @$(RM) -rf $(GEMFILES_DIR)/*.lock
111
138
  @$(RM) -rf .bundle .yardoc coverage pkg Gemfile.lock doc/api \
112
139
  .rspec_status
113
140
 
@@ -127,11 +154,11 @@ endif
127
154
 
128
155
  distclean: clean clean-containers clean-images
129
156
 
130
- shell:
157
+ shell: install
131
158
  # Run an interactive shell on the container
132
159
  @$(call run-shell,$(BASH) -i)
133
160
 
134
- shell-irb:
161
+ shell-irb: install
135
162
  # Run an interactive IRB shell on the container
136
163
  @$(call run-shell,bin/console)
137
164
 
data/billomat.gemspec CHANGED
@@ -33,5 +33,7 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.required_ruby_version = '>= 2.7'
35
35
 
36
+ spec.add_dependency 'activesupport', '>= 6.1'
36
37
  spec.add_dependency 'rest-client', '~> 2.1'
38
+ spec.add_dependency 'zeitwerk', '~> 2.6'
37
39
  end
@@ -0,0 +1,20 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "bundler", "~> 2.3"
7
+ gem "countless", "~> 1.1"
8
+ gem "guard-rspec", "~> 4.7"
9
+ gem "irb", "~> 1.2"
10
+ gem "rake", "~> 13.0"
11
+ gem "rspec", "~> 3.12"
12
+ gem "rubocop", "~> 1.28"
13
+ gem "rubocop-rails", "~> 2.14"
14
+ gem "rubocop-rspec", "~> 2.10"
15
+ gem "simplecov", ">= 0.22"
16
+ gem "yard", ">= 0.9.28"
17
+ gem "yard-activesupport-concern", ">= 0.0.1"
18
+ gem "activesupport", "~> 6.1.0"
19
+
20
+ gemspec path: "../"
@@ -0,0 +1,20 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "bundler", "~> 2.3"
7
+ gem "countless", "~> 1.1"
8
+ gem "guard-rspec", "~> 4.7"
9
+ gem "irb", "~> 1.2"
10
+ gem "rake", "~> 13.0"
11
+ gem "rspec", "~> 3.12"
12
+ gem "rubocop", "~> 1.28"
13
+ gem "rubocop-rails", "~> 2.14"
14
+ gem "rubocop-rspec", "~> 2.10"
15
+ gem "simplecov", ">= 0.22"
16
+ gem "yard", ">= 0.9.28"
17
+ gem "yard-activesupport-concern", ">= 0.0.1"
18
+ gem "activesupport", "~> 7.1.0"
19
+
20
+ gemspec path: "../"
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rest-client'
4
- require 'json'
5
-
6
3
  module Billomat
7
4
  # Raised if something goes wrong during an API call.
8
5
  class GatewayError < StandardError
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ostruct'
4
-
5
3
  module Billomat
6
4
  module Models
7
5
  # This class is the base for all other models (resources).
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'uri'
4
-
5
3
  module Billomat
6
4
  # This class provides the possibility to query the resources.
7
5
  class Search
@@ -3,7 +3,7 @@
3
3
  # The gem version details.
4
4
  module Billomat
5
5
  # The version of the +billomat+ gem
6
- VERSION = '1.3.0'
6
+ VERSION = '1.4.1'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/billomat.rb CHANGED
@@ -1,14 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'billomat/version'
4
- require 'billomat/configuration'
5
- require 'billomat/models'
6
- require 'billomat/actions'
7
- require 'billomat/search'
8
- require 'billomat/gateway'
3
+ require 'zeitwerk'
4
+ require 'logger'
5
+ require 'active_support'
6
+ require 'rest-client'
7
+ require 'json'
8
+ require 'ostruct'
9
+ require 'uri'
9
10
 
10
11
  # An wrapper for the Billomat API.
11
12
  module Billomat
13
+ # Setup a Zeitwerk autoloader instance and configure it
14
+ loader = Zeitwerk::Loader.for_gem
15
+
16
+ # Finish the auto loader configuration
17
+ loader.setup
18
+
19
+ # Make sure to eager load all constants
20
+ loader.eager_load
21
+
12
22
  class << self
13
23
  attr_writer :configuration
14
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: billomat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-01-03 00:00:00.000000000 Z
12
+ date: 2025-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '6.1'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '6.1'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: rest-client
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -25,6 +39,20 @@ dependencies:
25
39
  - - "~>"
26
40
  - !ruby/object:Gem::Version
27
41
  version: '2.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: zeitwerk
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.6'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.6'
28
56
  description: Wrapper for the Billomat API
29
57
  email:
30
58
  - hermann.mayer92@gmail.com
@@ -41,6 +69,7 @@ files:
41
69
  - ".rubocop.yml"
42
70
  - ".simplecov"
43
71
  - ".yardopts"
72
+ - Appraisals
44
73
  - CHANGELOG.md
45
74
  - CODE_OF_CONDUCT.md
46
75
  - Dockerfile
@@ -59,8 +88,9 @@ files:
59
88
  - config/docker/.inputrc
60
89
  - doc/assets/project.svg
61
90
  - docker-compose.yml
91
+ - gemfiles/rails_6.1.gemfile
92
+ - gemfiles/rails_7.1.gemfile
62
93
  - lib/billomat.rb
63
- - lib/billomat/actions.rb
64
94
  - lib/billomat/actions/cancel.rb
65
95
  - lib/billomat/actions/complete.rb
66
96
  - lib/billomat/actions/email.rb
@@ -68,7 +98,6 @@ files:
68
98
  - lib/billomat/actions/uncancel.rb
69
99
  - lib/billomat/configuration.rb
70
100
  - lib/billomat/gateway.rb
71
- - lib/billomat/models.rb
72
101
  - lib/billomat/models/base.rb
73
102
  - lib/billomat/models/client.rb
74
103
  - lib/billomat/models/contact.rb
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'billomat/actions/complete'
4
- require 'billomat/actions/email'
5
- require 'billomat/actions/pdf'
6
- require 'billomat/actions/cancel'
7
- require 'billomat/actions/uncancel'
8
-
9
- module Billomat
10
- # Actions are API calls that do not directly represent a resource.
11
- # They are mostly non-RESTful actions that are called on a resources.
12
- module Actions; end
13
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'billomat/models/base'
4
- require 'billomat/models/client'
5
- require 'billomat/models/credit_note'
6
- require 'billomat/models/credit_note_item'
7
- require 'billomat/models/invoice'
8
- require 'billomat/models/invoice_comment'
9
- require 'billomat/models/invoice_item'
10
- require 'billomat/models/invoice_payment'
11
- require 'billomat/models/contact'
12
- require 'billomat/models/tag'
13
- require 'billomat/models/template'
14
-
15
- module Billomat
16
- # Models represent a resource in the API, e.g. invoices, clients.
17
- module Models; end
18
- end