media_types 2.1.1 → 2.3.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/debian.yml +43 -43
  3. data/.github/workflows/publish-bookworm.yml +33 -0
  4. data/.github/workflows/publish-sid.yml +33 -0
  5. data/.github/workflows/ruby.yml +22 -23
  6. data/.gitignore +20 -10
  7. data/.rubocop.yml +29 -29
  8. data/CHANGELOG.md +175 -164
  9. data/Gemfile +6 -6
  10. data/Gemfile.lock +9 -9
  11. data/LICENSE +21 -21
  12. data/README.md +666 -664
  13. data/Rakefile +12 -12
  14. data/bin/console +15 -15
  15. data/bin/setup +8 -8
  16. data/lib/media_types/constructable.rb +161 -160
  17. data/lib/media_types/dsl/errors.rb +18 -18
  18. data/lib/media_types/dsl.rb +172 -172
  19. data/lib/media_types/errors.rb +25 -19
  20. data/lib/media_types/formatter.rb +56 -56
  21. data/lib/media_types/hash.rb +21 -21
  22. data/lib/media_types/object.rb +35 -35
  23. data/lib/media_types/scheme/allow_nil.rb +30 -30
  24. data/lib/media_types/scheme/any_of.rb +41 -41
  25. data/lib/media_types/scheme/attribute.rb +46 -46
  26. data/lib/media_types/scheme/enumeration_context.rb +18 -18
  27. data/lib/media_types/scheme/enumeration_of_type.rb +80 -80
  28. data/lib/media_types/scheme/errors.rb +87 -87
  29. data/lib/media_types/scheme/links.rb +54 -54
  30. data/lib/media_types/scheme/missing_validation.rb +41 -41
  31. data/lib/media_types/scheme/not_strict.rb +15 -15
  32. data/lib/media_types/scheme/output_empty_guard.rb +45 -45
  33. data/lib/media_types/scheme/output_iterator_with_predicate.rb +66 -66
  34. data/lib/media_types/scheme/output_type_guard.rb +39 -39
  35. data/lib/media_types/scheme/rules.rb +186 -173
  36. data/lib/media_types/scheme/rules_exhausted_guard.rb +73 -73
  37. data/lib/media_types/scheme/validation_options.rb +44 -43
  38. data/lib/media_types/scheme.rb +535 -513
  39. data/lib/media_types/testing/assertions.rb +20 -20
  40. data/lib/media_types/validations.rb +118 -105
  41. data/lib/media_types/version.rb +5 -5
  42. data/lib/media_types/views.rb +12 -12
  43. data/lib/media_types.rb +73 -73
  44. data/media_types.gemspec +33 -33
  45. metadata +14 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 610b654c6f47fc159c8f104246edd4a0314d2f3439b3f136da1740ae198a7f08
4
- data.tar.gz: 325234c6d61a3dd660895d607e92ee8d3849b373b4871d77272a991f5dcad457
3
+ metadata.gz: 0e73cbda14f6c92ce158da57f61d1bdf88bcda3db508d9c100519f42ba812975
4
+ data.tar.gz: a051ea9dfcc29933084cfc7d70d1c63edc35ccea7d74d616c8c79f76a75b43eb
5
5
  SHA512:
6
- metadata.gz: 743edfc0e1d4c6d2eb277ea931d180721042b40cf3c2e060bf902a6277dce7cacf8446be6c712806947d2240345fc82abc60a2bee424548dde6c8100f5456136
7
- data.tar.gz: 744f67b305bdcd413420c640316531b74a74e09e4ebb045c42666508d20545790359499c6fff1ebcccd7a59740b6edc341356fad56f03f618e35fc138cb2344a
6
+ metadata.gz: cd93497ea5e07e0371c67d79dff55253eda875ebb5e1ab654bae3ecbca7af916ebd2778642b423fa19d443bba71185798e8fd9a6b73351185fc0538979bae042
7
+ data.tar.gz: b0e39b7c9124bcc60e4cebecb1af587670f37b29a3b0331c295a74605742ccdd0218fe05840adf2355263ba0ebdcec344fdcb965b8469b463d066c164af46184
@@ -1,43 +1,43 @@
1
- name: Debian
2
-
3
- on:
4
- push:
5
- tags:
6
- - '*'
7
-
8
-
9
- jobs:
10
- build:
11
-
12
- runs-on: ubuntu-18.04
13
-
14
- steps:
15
- - uses: actions/checkout@v1
16
- - name: Install dependencies
17
- run: |
18
- sudo apt-get update
19
- DEBIAN_FRONTEND=noninteractive sudo apt-get --yes install gem2deb bundler ruby-{actionpack,awesome-print,http,minitest,minitest-reporters,oj,simplecov}
20
- rm Gemfile.lock || true
21
- gem install bundler
22
- bundle install --local
23
- sudo apt-file update
24
- - name: Build
25
- run: |
26
- bundle exec rake build
27
- mkdir debpkg
28
- cp pkg/media_types-*.gem media_types.gem
29
- #(cd debpkg; gem2tgz media_types.gem)
30
- #(cd debpkg; dh-make-ruby media_types-*.tar.gz)
31
- #(cd debpkg; dh-make-ruby media_types-*.tar.gz)
32
- (cd pkg; gem2deb media_types*.gem)
33
- mv pkg/ruby-media-types_*_all.deb ruby-media-types.deb
34
- - name: Upload gem
35
- uses: actions/upload-artifact@v1
36
- with:
37
- name: media_types.gem
38
- path: media_types.gem
39
- - name: Upload deb
40
- uses: actions/upload-artifact@v1
41
- with:
42
- name: ruby-media-types.deb
43
- path: ruby-media-types.deb
1
+ name: Debian
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "*"
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v1
13
+ - name: Set up Ruby 2.7 (debian ruby)
14
+ uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.7
17
+ - name: Install dependencies
18
+ run: |
19
+ sudo apt-get update
20
+ DEBIAN_FRONTEND=noninteractive sudo apt-get --yes install gem2deb bundler ruby-{actionpack,awesome-print,http,minitest,minitest-reporters,oj,simplecov}
21
+ rm Gemfile.lock || true
22
+ bundle install --local
23
+ sudo apt-file update
24
+ - name: Build
25
+ run: |
26
+ bundle exec rake build
27
+ mkdir debpkg
28
+ cp pkg/media_types-*.gem media_types.gem
29
+ #(cd debpkg; gem2tgz media_types.gem)
30
+ #(cd debpkg; dh-make-ruby media_types-*.tar.gz)
31
+ #(cd debpkg; dh-make-ruby media_types-*.tar.gz)
32
+ (cd pkg; gem2deb media_types*.gem)
33
+ mv pkg/ruby-media-types_*_all.deb ruby-media-types.deb
34
+ - name: Upload gem
35
+ uses: actions/upload-artifact@v1
36
+ with:
37
+ name: media_types.gem
38
+ path: media_types.gem
39
+ - name: Upload deb
40
+ uses: actions/upload-artifact@v1
41
+ with:
42
+ name: ruby-media-types.deb
43
+ path: ruby-media-types.deb
@@ -0,0 +1,33 @@
1
+ name: Publish debian bookworm packages
2
+
3
+ on:
4
+ - workflow_dispatch
5
+
6
+ jobs:
7
+ publish-bookworm:
8
+ runs-on: ubuntu-latest
9
+ container:
10
+ image: debian:bookworm
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+ name: Check out repository
14
+ - name: Install repo
15
+ run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --yes install wget && wget -O key.deb https://deb1.ws.maxmaton.nl/key.deb && DEBIAN_FRONTEND=noninteractive apt-get --yes install ./key.deb && echo "deb [signed-by=/usr/share/keyrings/maxmaton.gpg] http://deb.maxmaton.nl/debian bookworm main non-free" > /etc/apt/sources.list.d/maxmaton.list
16
+ - name: Install dependencies
17
+ run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --yes install build-essential gem scrypt sshpass gem2deb ruby-actionpack ruby-activesupport ruby-media-types
18
+ - name: Build gem
19
+ run: |
20
+ sed -i -re "s/VERSION\s+=\s+'([0-9]+.[0-9]+.[0-9]+)'/VERSION = '\1.bookworm'/g" lib/media_types/version.rb
21
+ gem build media_types.gemspec
22
+ - name: Build deb
23
+ run: DEBEMAIL=info@delftsolutions.nl gem2deb media_types-*.gem && ls -hal
24
+ - name: Publish
25
+ env:
26
+ PUBLISH_SIGNING_KEY: ${{ secrets.PUBLISH_SIGNING_KEY }}
27
+ SSHPASS: ${{ secrets.SSHPASS }}
28
+ run: |
29
+ echo "deb1.ws.maxmaton.nl ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgN3TiyKvRTj4xBSyQtYz0OuHZYv2i+x3NL+svh2k0SgPr0Xms4Vu+g3AXntXUQGRM0W9zbcZSHiBIWbliv3Y+20f7lKlj9uXUEMHDuiB7Fu7dXObfHswIvTX3XWiPdDeG1jYQbGM3tENX/wtEoixyL++33O69t2SFR5MkPk+/j+zlGLCFf0ypTAMb7bT5NjRNM3+v0LT2WVSZuawA7Fl8WBVTq7MSSuCZIxHIv1kEq6AWpOjWZHNVZrijs+uRTIPcrZ47wSt6tanjAnWT9sAzu8KqcvQsPw9IQwqV1nfQWz0wMit7ijn9B3MrkNHXP5PaNiZQCezsbrh9glhShz0z" > known_hosts
30
+ echo "deb1.ws.maxmaton.nl ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMr5uAraiRj0pQ9Q9dQO0xMosTzFUAe+VjtMclIUbdJ7r7XMUa3etxh3BfBlW4nq3ZdIFCsV2zwzTaYSmfh95Xs=" >> known_hosts
31
+ echo "deb1.ws.maxmaton.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPhQl7Ik6h7hSQbdo9ZfF78WYFCzch8SAOXFBxxAZH06" >> known_hosts
32
+ echo "Uploading :" ruby-media-types_*.deb
33
+ scrypt enc --passphrase "env:PUBLISH_SIGNING_KEY" ruby-media-types_*.deb | sshpass -e ssh -o "UserKnownHostsFile=known_hosts" publish@deb1.ws.maxmaton.nl "echo 'uploading bookworm' && sudo /opt/max/publish-deb ruby-media-types bookworm main && echo 'bookworm done'"
@@ -0,0 +1,33 @@
1
+ name: Publish debian sid packages
2
+
3
+ on:
4
+ - workflow_dispatch
5
+
6
+ jobs:
7
+ publish-sid:
8
+ runs-on: ubuntu-latest
9
+ container:
10
+ image: debian:sid
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+ name: Check out repository
14
+ - name: Install repo
15
+ run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --yes install wget && wget -O key.deb https://deb1.ws.maxmaton.nl/key.deb && DEBIAN_FRONTEND=noninteractive apt-get --yes install ./key.deb && echo "deb [signed-by=/usr/share/keyrings/maxmaton.gpg] http://deb.maxmaton.nl/debian sid main non-free" > /etc/apt/sources.list.d/maxmaton.list
16
+ - name: Install dependencies
17
+ run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --yes install build-essential gem scrypt sshpass gem2deb ruby-actionpack ruby-activesupport ruby-media-types
18
+ - name: Build gem
19
+ run: |
20
+ sed -i -re "s/VERSION\s+=\s+'([0-9]+.[0-9]+.[0-9]+)'/VERSION = '\1.sid'/g" lib/media_types/version.rb
21
+ gem build media_types.gemspec
22
+ - name: Build deb
23
+ run: DEBEMAIL=info@delftsolutions.nl gem2deb media_types-*.gem && ls -hal
24
+ - name: Publish
25
+ env:
26
+ PUBLISH_SIGNING_KEY: ${{ secrets.PUBLISH_SIGNING_KEY }}
27
+ SSHPASS: ${{ secrets.SSHPASS }}
28
+ run: |
29
+ echo "deb1.ws.maxmaton.nl ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgN3TiyKvRTj4xBSyQtYz0OuHZYv2i+x3NL+svh2k0SgPr0Xms4Vu+g3AXntXUQGRM0W9zbcZSHiBIWbliv3Y+20f7lKlj9uXUEMHDuiB7Fu7dXObfHswIvTX3XWiPdDeG1jYQbGM3tENX/wtEoixyL++33O69t2SFR5MkPk+/j+zlGLCFf0ypTAMb7bT5NjRNM3+v0LT2WVSZuawA7Fl8WBVTq7MSSuCZIxHIv1kEq6AWpOjWZHNVZrijs+uRTIPcrZ47wSt6tanjAnWT9sAzu8KqcvQsPw9IQwqV1nfQWz0wMit7ijn9B3MrkNHXP5PaNiZQCezsbrh9glhShz0z" > known_hosts
30
+ echo "deb1.ws.maxmaton.nl ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMr5uAraiRj0pQ9Q9dQO0xMosTzFUAe+VjtMclIUbdJ7r7XMUa3etxh3BfBlW4nq3ZdIFCsV2zwzTaYSmfh95Xs=" >> known_hosts
31
+ echo "deb1.ws.maxmaton.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPhQl7Ik6h7hSQbdo9ZfF78WYFCzch8SAOXFBxxAZH06" >> known_hosts
32
+ echo "Uploading :" ruby-media-types_*.deb
33
+ scrypt enc --passphrase "env:PUBLISH_SIGNING_KEY" ruby-media-types_*.deb | sshpass -e ssh -o "UserKnownHostsFile=known_hosts" publish@deb1.ws.maxmaton.nl "echo 'uploading sid' && sudo /opt/max/publish-deb ruby-media-types sid main && echo 'sid done'"
@@ -1,23 +1,22 @@
1
- name: Ruby
2
-
3
- on: [push]
4
-
5
- jobs:
6
- build:
7
-
8
- runs-on: ubuntu-latest
9
-
10
- steps:
11
- - uses: actions/checkout@v1
12
- - name: Set up Ruby 2.6
13
- uses: actions/setup-ruby@v1
14
- with:
15
- ruby-version: 2.6.x
16
- - name: Build and test with Rake
17
- run: |
18
- sudo apt-get update
19
- DEBIAN_FRONTEND=noninteractive sudo apt-get install --yes bundler
20
- rm Gemfile.lock || true
21
- gem install bundler
22
- bundle install --jobs 4 --retry 3
23
- bundle exec rake
1
+ name: Ruby
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - uses: actions/checkout@v1
11
+ - name: Set up Ruby 3.1
12
+ uses: actions/setup-ruby@v1
13
+ with:
14
+ ruby-version: 3.1.x
15
+ - name: Build and test with Rake
16
+ run: |
17
+ sudo apt-get update
18
+ DEBIAN_FRONTEND=noninteractive sudo apt-get install --yes bundler
19
+ rm Gemfile.lock || true
20
+ gem install bundler
21
+ bundle install --jobs 4 --retry 3
22
+ bundle exec rake
data/.gitignore CHANGED
@@ -1,10 +1,20 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- .idea/
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ .idea/
11
+
12
+ /media_types-*.gem
13
+ /media-types-*.tar.gz
14
+ /ruby-media-types-*
15
+ /ruby-media-types_*.deb
16
+ /ruby-media-types_*.buildinfo
17
+ /ruby-media-types_*.changes
18
+ /ruby-media-types_*.debian.tar.xz
19
+ /ruby-media-types_*.dsc
20
+ /ruby-media-types_*.orig.tar.gz
data/.rubocop.yml CHANGED
@@ -1,29 +1,29 @@
1
- AllCops:
2
- Include:
3
- - '**/Rakefile'
4
- - 'lib/**/*.rb'
5
- Exclude:
6
- - 'Gemfile'
7
- - 'bin/**/*'
8
- TargetRubyVersion: 2.4
9
-
10
- Layout/EmptyLinesAroundClassBody:
11
- Enabled: false
12
-
13
- Layout/EndOfLine:
14
- Enabled: false
15
-
16
- Metrics/LineLength:
17
- Max: 120
18
-
19
- Metrics/MethodLength:
20
- Max: 15
21
-
22
- Style/Documentation:
23
- Enabled: false
24
-
25
- Style/EmptyMethod:
26
- EnforcedStyle: expanded
27
-
28
- Style/IfUnlessModifier:
29
- Enabled: false
1
+ AllCops:
2
+ Include:
3
+ - "**/Rakefile"
4
+ - "lib/**/*.rb"
5
+ Exclude:
6
+ - "Gemfile"
7
+ - "bin/**/*"
8
+ TargetRubyVersion: 3.0
9
+
10
+ Layout/EmptyLinesAroundClassBody:
11
+ Enabled: false
12
+
13
+ Layout/EndOfLine:
14
+ Enabled: false
15
+
16
+ Metrics/LineLength:
17
+ Max: 120
18
+
19
+ Metrics/MethodLength:
20
+ Max: 15
21
+
22
+ Style/Documentation:
23
+ Enabled: false
24
+
25
+ Style/EmptyMethod:
26
+ EnforcedStyle: expanded
27
+
28
+ Style/IfUnlessModifier:
29
+ Enabled: false