activestorage-validator 0.1.2 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e219b0a7a48931178b22053cfe7bcde70bd54b09ffe8845034366f18d984f964
4
- data.tar.gz: f7cf49daa5173000b4c7ad796e4df57d73b425bfdf0e6db6764e732228eea8ae
3
+ metadata.gz: 581d8fd7eb76407a49d99929d0882eab59e29d193ca0200ffb871e32917fb8b6
4
+ data.tar.gz: acc60f49380c73c732e23d56aed5b2fe399fdaac7567214c43b3d1fe9bc3a774
5
5
  SHA512:
6
- metadata.gz: b15f5858646799dab6af1e050b080885265d9e1755c42b838b00a1f6461af23f08ffbb5d10b840515ea18f3b9477daa3ee596a993926d0c4b4d7a7f009ef7d01
7
- data.tar.gz: 4c3ffb53043130c2161a69391d1c3fd81c7e3c674612f34a148734793a95fc5862d4c2a4653c417920ad845c8c030f4c539fd141cd8cedfd73bb5e7473d375a1
6
+ metadata.gz: 55c2fc909292f0bbfb6f5a9a0c6a99f7a9eacddab0640bc3e49152a40b2bdfc63b501b4aa20a0f2fdd4c8b52b27041fa77ff90d21b4bc2a88284de60d142810a
7
+ data.tar.gz: 6c0efaec232cd0ecc6b175e350427d55d02af366d45c2b668ed4f488a7447f5007e19a5ac6aab65bb9442f0f911b4d08ab9bba6b5e39207ed1765d87af007abb
@@ -0,0 +1,42 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Build
9
+
10
+ on:
11
+ push:
12
+ branches: [master]
13
+ pull_request:
14
+
15
+ jobs:
16
+ rspec:
17
+ runs-on: ubuntu-latest
18
+ env:
19
+ BUNDLE_JOBS: 4
20
+ BUNDLE_RETRY: 3
21
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ ruby: [2.7, 3.0]
26
+ gemfile: [rails60, rails61]
27
+ steps:
28
+ - name: Install packages
29
+ run: |
30
+ sudo apt update -y
31
+ sudo apt install -y libsqlite3-dev
32
+
33
+ - uses: actions/checkout@v2
34
+
35
+ - name: Set up Ruby
36
+ uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ matrix.ruby }}
39
+ bundler-cache: true
40
+
41
+ - name: Run rspec
42
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -9,3 +9,6 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ /Gemfile.lock
13
+ *.sqlite
14
+ Gemfile.local
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## [Unreleased]
2
+
3
+ ## 0.2.0
4
+
5
+ - Drop support for rails 5.2
6
+
7
+ ## 0.1.5
8
+
9
+ - Add French locale (#24)
10
+
11
+ ## 0.1.4
12
+
13
+ - Updated test environment to rails 6.0.0
14
+ - Add pt-br locale (#22)
15
+
16
+ ## 0.1.3
17
+
18
+ - Update dependency
19
+ - Add German locale
20
+
1
21
  ## 0.1.2
2
22
 
3
23
  - Fix typo
data/Gemfile CHANGED
@@ -5,4 +5,10 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
5
  # Specify your gem's dependencies in activestorage-validator.gemspec
6
6
  gemspec
7
7
 
8
- gem 'sqlite3'
8
+ local_gemfile = "Gemfile.local"
9
+
10
+ if File.exist?(local_gemfile)
11
+ eval_gemfile(local_gemfile) # rubocop:disable Security/Eval
12
+ else
13
+ gem 'sqlite3'
14
+ end
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Gem Version](https://badge.fury.io/rb/activestorage-validator.svg)](https://rubygems.org/gems/activestorage-validator)
2
+ [![Build](https://github.com/aki77/activestorage-validator/workflows/Build/badge.svg)](https://github.com/aki77/activestorage-validator/actions)
3
+
1
4
  # ActiveStorage Validator
2
5
 
3
6
  ActiveStorage blob validator.
@@ -26,11 +29,13 @@ class User < ApplicationRecord
26
29
  has_many_attached :photos
27
30
 
28
31
  validates :avatar, presence: true, blob: { content_type: :image } # supported options: :image, :audio, :video, :text
29
- validates :photos, presence: true, blob: { content_type: ['image/png', 'image/jpg', 'image/jpeg'], size_range: 1..5.megabytes }
30
- # validates :photos, presence: true, blob: { content_type: %r{^image/}, size_range: 1..5.megabytes }
32
+ validates :photos, presence: true, blob: { content_type: ['image/png', 'image/jpg', 'image/jpeg'], size_range: 1..(5.megabytes) }
33
+ # validates :photos, presence: true, blob: { content_type: %r{^image/}, size_range: 1..(5.megabytes) }
31
34
  end
32
35
  ```
33
36
 
37
+ Note: For `has_many_attached`, size is validated on each file individually. In the code above, `:photos` validation allows any number of photos to be upload, each one being 5 MB or less in size.
38
+
34
39
  ## Contributing
35
40
 
36
41
  Bug reports and pull requests are welcome on GitHub at https://github.com/aki77/activestorage-validator. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
@@ -23,8 +23,9 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "rails", "~> 5.2.0"
27
- spec.add_development_dependency "bundler", "~> 1.16"
28
- spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_dependency "rails", ">= 6.0.4.1"
27
+ spec.add_development_dependency "bundler", "~> 2.0"
28
+ spec.add_development_dependency "rake", ">= 12.3.3"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
+ spec.add_development_dependency "combustion"
30
31
  end
@@ -0,0 +1,7 @@
1
+ de:
2
+ activerecord:
3
+ errors:
4
+ messages:
5
+ content_type: "ist kein gültiges Dateiformat"
6
+ min_size_error: "Dateigröße sollte weniger als %{min_size} betragen"
7
+ max_size_error: "Dateigröße sollte weniger als %{max_size} betragen"
@@ -0,0 +1,7 @@
1
+ fr:
2
+ activerecord:
3
+ errors:
4
+ messages:
5
+ content_type: "n'est pas un format de fichier valide"
6
+ min_size_error: "La taille du fichier doit être supérieure à %{min_size}"
7
+ max_size_error: "La taille du fichier doit être inférieure à %{max_size}"
@@ -0,0 +1,7 @@
1
+ pt-br:
2
+ activerecord:
3
+ errors:
4
+ messages:
5
+ content_type: "não é um formato válido"
6
+ min_size_error: "tamanho do arquivo deve ser maior que %{min_size}"
7
+ max_size_error: "tamanho do arquivo deve ser menor que %{max_size}"
data/config.ru ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+ require "bundler"
5
+
6
+ Bundler.require :default, :development
7
+
8
+ Combustion.initialize! :all
9
+ run Combustion::Application
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rails', '6.0.4.1'
4
+ gem 'sqlite3'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rails', '6.1.4'
4
+ gem 'sqlite3'
5
+
6
+ gemspec path: '../'
@@ -1,6 +1,6 @@
1
1
  module ActiveRecord
2
2
  module Validations
3
- class BlobValidator < ActiveModel::EachValidator
3
+ class BlobValidator < ::ActiveModel::EachValidator
4
4
  def validate_each(record, attribute, values) # rubocop:disable Metrics/AbcSize
5
5
  return unless values.attached?
6
6
 
@@ -1,5 +1,5 @@
1
1
  module ActiveStorage
2
2
  module Validator
3
- VERSION = "0.1.2"
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -1,6 +1,9 @@
1
- require 'activestorage/validator/blob'
2
1
  require 'activestorage/validator/version'
3
2
 
3
+ ActiveSupport.on_load(:active_record) do
4
+ require 'activestorage/validator/blob'
5
+ end
6
+
4
7
  module ActiveStorage
5
8
  # https://github.com/rails/rails/commit/42259ce904eb2538761b32a793cbe390fb8272b7
6
9
  if Rails::VERSION::MAJOR < 6
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage-validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-17 00:00:00.000000000 Z
11
+ date: 2021-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.0
19
+ version: 6.0.4.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.0
26
+ version: 6.0.4.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 12.3.3
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 12.3.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: combustion
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: ActiveStorage blob validator.
70
84
  email:
71
85
  - aki77@users.noreply.github.com
@@ -73,21 +87,27 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
90
+ - ".github/workflows/rspec.yml"
76
91
  - ".gitignore"
77
92
  - ".rspec"
78
93
  - ".travis.yml"
79
94
  - CHANGELOG.md
80
95
  - CODE_OF_CONDUCT.md
81
96
  - Gemfile
82
- - Gemfile.lock
83
97
  - LICENSE.txt
84
98
  - README.md
85
99
  - Rakefile
86
100
  - activestorage-validator.gemspec
87
101
  - bin/console
88
102
  - bin/setup
103
+ - config.ru
104
+ - config/locales/de.yml
89
105
  - config/locales/en.yml
106
+ - config/locales/fr.yml
90
107
  - config/locales/ja.yml
108
+ - config/locales/pt-br.yml
109
+ - gemfiles/rails60.gemfile
110
+ - gemfiles/rails61.gemfile
91
111
  - lib/activestorage/validator.rb
92
112
  - lib/activestorage/validator/blob.rb
93
113
  - lib/activestorage/validator/version.rb
@@ -110,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
130
  - !ruby/object:Gem::Version
111
131
  version: '0'
112
132
  requirements: []
113
- rubyforge_project:
114
- rubygems_version: 2.7.6
133
+ rubygems_version: 3.1.2
115
134
  signing_key:
116
135
  specification_version: 4
117
136
  summary: ActiveStorage blob validator.
data/Gemfile.lock DELETED
@@ -1,144 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- activestorage-validator (0.1.2)
5
- rails (~> 5.2.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.2.2)
11
- actionpack (= 5.2.2)
12
- nio4r (~> 2.0)
13
- websocket-driver (>= 0.6.1)
14
- actionmailer (5.2.2)
15
- actionpack (= 5.2.2)
16
- actionview (= 5.2.2)
17
- activejob (= 5.2.2)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.2.2)
21
- actionview (= 5.2.2)
22
- activesupport (= 5.2.2)
23
- rack (~> 2.0)
24
- rack-test (>= 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.2.2)
28
- activesupport (= 5.2.2)
29
- builder (~> 3.1)
30
- erubi (~> 1.4)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.2.2)
34
- activesupport (= 5.2.2)
35
- globalid (>= 0.3.6)
36
- activemodel (5.2.2)
37
- activesupport (= 5.2.2)
38
- activerecord (5.2.2)
39
- activemodel (= 5.2.2)
40
- activesupport (= 5.2.2)
41
- arel (>= 9.0)
42
- activestorage (5.2.2)
43
- actionpack (= 5.2.2)
44
- activerecord (= 5.2.2)
45
- marcel (~> 0.3.1)
46
- activesupport (5.2.2)
47
- concurrent-ruby (~> 1.0, >= 1.0.2)
48
- i18n (>= 0.7, < 2)
49
- minitest (~> 5.1)
50
- tzinfo (~> 1.1)
51
- arel (9.0.0)
52
- builder (3.2.3)
53
- concurrent-ruby (1.1.4)
54
- crass (1.0.4)
55
- diff-lcs (1.3)
56
- erubi (1.7.1)
57
- globalid (0.4.1)
58
- activesupport (>= 4.2.0)
59
- i18n (1.2.0)
60
- concurrent-ruby (~> 1.0)
61
- loofah (2.2.3)
62
- crass (~> 1.0.2)
63
- nokogiri (>= 1.5.9)
64
- mail (2.7.1)
65
- mini_mime (>= 0.1.1)
66
- marcel (0.3.3)
67
- mimemagic (~> 0.3.2)
68
- method_source (0.9.2)
69
- mimemagic (0.3.2)
70
- mini_mime (1.0.1)
71
- mini_portile2 (2.4.0)
72
- minitest (5.11.3)
73
- nio4r (2.3.1)
74
- nokogiri (1.9.0)
75
- mini_portile2 (~> 2.4.0)
76
- rack (2.0.6)
77
- rack-test (1.1.0)
78
- rack (>= 1.0, < 3)
79
- rails (5.2.2)
80
- actioncable (= 5.2.2)
81
- actionmailer (= 5.2.2)
82
- actionpack (= 5.2.2)
83
- actionview (= 5.2.2)
84
- activejob (= 5.2.2)
85
- activemodel (= 5.2.2)
86
- activerecord (= 5.2.2)
87
- activestorage (= 5.2.2)
88
- activesupport (= 5.2.2)
89
- bundler (>= 1.3.0)
90
- railties (= 5.2.2)
91
- sprockets-rails (>= 2.0.0)
92
- rails-dom-testing (2.0.3)
93
- activesupport (>= 4.2.0)
94
- nokogiri (>= 1.6)
95
- rails-html-sanitizer (1.0.4)
96
- loofah (~> 2.2, >= 2.2.2)
97
- railties (5.2.2)
98
- actionpack (= 5.2.2)
99
- activesupport (= 5.2.2)
100
- method_source
101
- rake (>= 0.8.7)
102
- thor (>= 0.19.0, < 2.0)
103
- rake (10.5.0)
104
- rspec (3.8.0)
105
- rspec-core (~> 3.8.0)
106
- rspec-expectations (~> 3.8.0)
107
- rspec-mocks (~> 3.8.0)
108
- rspec-core (3.8.0)
109
- rspec-support (~> 3.8.0)
110
- rspec-expectations (3.8.1)
111
- diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.8.0)
113
- rspec-mocks (3.8.0)
114
- diff-lcs (>= 1.2.0, < 2.0)
115
- rspec-support (~> 3.8.0)
116
- rspec-support (3.8.0)
117
- sprockets (3.7.2)
118
- concurrent-ruby (~> 1.0)
119
- rack (> 1, < 3)
120
- sprockets-rails (3.2.1)
121
- actionpack (>= 4.0)
122
- activesupport (>= 4.0)
123
- sprockets (>= 3.0.0)
124
- sqlite3 (1.3.13)
125
- thor (0.20.3)
126
- thread_safe (0.3.6)
127
- tzinfo (1.2.5)
128
- thread_safe (~> 0.1)
129
- websocket-driver (0.7.0)
130
- websocket-extensions (>= 0.1.0)
131
- websocket-extensions (0.1.3)
132
-
133
- PLATFORMS
134
- ruby
135
-
136
- DEPENDENCIES
137
- activestorage-validator!
138
- bundler (~> 1.16)
139
- rake (~> 10.0)
140
- rspec (~> 3.0)
141
- sqlite3
142
-
143
- BUNDLED WITH
144
- 1.17.1