activestorage-validator 0.1.0 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a021d8b583438be10d8c5c4c888a1bc73df0f1c4da39e8e3d5c17185173ffac9
4
- data.tar.gz: 4f9f5841b1b3619d354c2ddec01a3b99a978b1b04810b6f157f52dda3d886e97
3
+ metadata.gz: 354d8f902cefe6a58a25fcc97f6bcae8c878b971be3e6b9f7689e4074ba3eb7d
4
+ data.tar.gz: 626b6ba362b037531daa1402387f788506ecf5cb7592cb1fd6c0e05c8a43d079
5
5
  SHA512:
6
- metadata.gz: b0d83e53fa6a761f1a4468495eb6ed316e8deabc845b64812e82057a30cd7851b163f3928b81f2eb5adfb5f55c94d94ec2805b9235859f43a072a71597f09796
7
- data.tar.gz: 7c241829ad5520c264ae73fcd54582c836e2b3ce71b6f8fef7bc69dbb41eaf6a250fd81d4e36feaaeab11df4db20668c98b2d3eb1328c410e6e65f0c1ee251c2
6
+ metadata.gz: 30f39dbfc6c3a21a74590042072468bea28d910790cfbb67c5777cf403a405af5576cb5a1c4ccb775d39a0ce30c8d33d2f39c35633b0632d86f51316b0506fab
7
+ data.tar.gz: 809232803f18f3fd3769591376439aa171c9aa4710ad923f1212a61fbefa0524377dc0d58077f6ff6064eb739cbf508b9922007272df3b291aad7c76214ff8aa
@@ -0,0 +1,54 @@
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
+
18
+ runs-on: ubuntu-latest
19
+ env:
20
+ BUNDLE_JOBS: 4
21
+ BUNDLE_RETRY: 3
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ ruby: [2.6, 2.7]
26
+ gemfile: [
27
+ "gemfiles/rails52.gemfile",
28
+ "gemfiles/rails60.gemfile",
29
+ ]
30
+ steps:
31
+ - name: Install packages
32
+ run: |
33
+ sudo apt update -y
34
+ sudo apt install -y libsqlite3-dev
35
+ - uses: actions/checkout@v2
36
+ - uses: actions/cache@v1
37
+ with:
38
+ path: /home/runner/bundle
39
+ key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
40
+ restore-keys: |
41
+ bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-
42
+ - name: Set up Ruby
43
+ uses: ruby/setup-ruby@v1
44
+ with:
45
+ ruby-version: ${{ matrix.ruby }}
46
+ - name: Install dependencies
47
+ run: |
48
+ bundle config path /home/runner/bundle
49
+ bundle config --global gemfile ${{ matrix.gemfile }}
50
+ bundle install
51
+ bundle update
52
+ bundle clean
53
+ - name: Run rspec
54
+ 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.1.4
4
+
5
+ - Updated test environment to rails 6.0.0
6
+ - Add pt-br locale (#22)
7
+
8
+ ## 0.1.3
9
+
10
+ - Update dependency
11
+ - Add German locale
12
+
13
+ ## 0.1.2
14
+
15
+ - Fix typo
16
+
17
+ ## 0.1.1
18
+
19
+ - Add default error messages
20
+
1
21
  ## 0.1.0
2
22
 
3
23
  - First Release
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.
@@ -25,11 +28,14 @@ class User < ApplicationRecord
25
28
  has_one_attached :avatar
26
29
  has_many_attached :photos
27
30
 
28
- validates :avatar, precence: true, blob: { content_type: :image }
29
- validates :photos, precence: true, blob: { content_type: ['image/png', 'image/jpg', 'image/jpeg'], size_range: 1..5.megabytes }
31
+ validates :avatar, presence: true, blob: { content_type: :image } # supported options: :image, :audio, :video, :text
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 }
30
34
  end
31
35
  ```
32
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
+
33
39
  ## Contributing
34
40
 
35
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.
@@ -5,7 +5,7 @@ require "activestorage/validator/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "activestorage-validator"
8
- spec.version = Activestorage::Validator::VERSION
8
+ spec.version = ActiveStorage::Validator::VERSION
9
9
  spec.authors = ["aki"]
10
10
  spec.email = ["aki77@users.noreply.github.com"]
11
11
 
@@ -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", ">= 5.2.0"
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
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,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
+ en:
2
+ activerecord:
3
+ errors:
4
+ messages:
5
+ content_type: "is not a valid file format"
6
+ min_size_error: "File size should be greater than %{min_size}"
7
+ max_size_error: "File size should be less than %{max_size}"
@@ -0,0 +1,7 @@
1
+ ja:
2
+ activerecord:
3
+ errors:
4
+ messages:
5
+ content_type: "のファイル形式が不正です。"
6
+ min_size_error: "を%{min_size}以上のサイズにしてください。"
7
+ max_size_error: "を%{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}"
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rails', '5.2.4.2'
4
+ gem 'sqlite3'
5
+
6
+ gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rails', '6.0.2.2'
4
+ gem 'sqlite3'
5
+
6
+ gemspec path: '../'
@@ -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
@@ -11,3 +14,5 @@ module ActiveStorage
11
14
  end
12
15
  end
13
16
  end
17
+
18
+ I18n.load_path += Dir[File.expand_path(File.join(__dir__, '../../config/locales', '*.yml')).to_s]
@@ -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
- module Activestorage
1
+ module ActiveStorage
2
2
  module Validator
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage-validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - aki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-18 00:00:00.000000000 Z
11
+ date: 2021-08-04 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
19
  version: 5.2.0
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
26
  version: 5.2.0
27
27
  - !ruby/object:Gem::Dependency
@@ -30,28 +30,28 @@ dependencies:
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,19 +87,26 @@ 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
105
+ - config/locales/en.yml
106
+ - config/locales/ja.yml
107
+ - config/locales/pt-br.yml
108
+ - gemfiles/rails52.gemfile
109
+ - gemfiles/rails60.gemfile
89
110
  - lib/activestorage/validator.rb
90
111
  - lib/activestorage/validator/blob.rb
91
112
  - lib/activestorage/validator/version.rb
@@ -108,8 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
129
  - !ruby/object:Gem::Version
109
130
  version: '0'
110
131
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 2.7.6
132
+ rubygems_version: 3.1.2
113
133
  signing_key:
114
134
  specification_version: 4
115
135
  summary: ActiveStorage blob validator.
data/Gemfile.lock DELETED
@@ -1,144 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- activestorage-validator (0.1.0)
5
- rails (~> 5.2.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- actioncable (5.2.1)
11
- actionpack (= 5.2.1)
12
- nio4r (~> 2.0)
13
- websocket-driver (>= 0.6.1)
14
- actionmailer (5.2.1)
15
- actionpack (= 5.2.1)
16
- actionview (= 5.2.1)
17
- activejob (= 5.2.1)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.2.1)
21
- actionview (= 5.2.1)
22
- activesupport (= 5.2.1)
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.1)
28
- activesupport (= 5.2.1)
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.1)
34
- activesupport (= 5.2.1)
35
- globalid (>= 0.3.6)
36
- activemodel (5.2.1)
37
- activesupport (= 5.2.1)
38
- activerecord (5.2.1)
39
- activemodel (= 5.2.1)
40
- activesupport (= 5.2.1)
41
- arel (>= 9.0)
42
- activestorage (5.2.1)
43
- actionpack (= 5.2.1)
44
- activerecord (= 5.2.1)
45
- marcel (~> 0.3.1)
46
- activesupport (5.2.1)
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.0.5)
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.1.0)
60
- concurrent-ruby (~> 1.0)
61
- loofah (2.2.2)
62
- crass (~> 1.0.2)
63
- nokogiri (>= 1.5.9)
64
- mail (2.7.0)
65
- mini_mime (>= 0.1.1)
66
- marcel (0.3.3)
67
- mimemagic (~> 0.3.2)
68
- method_source (0.9.0)
69
- mimemagic (0.3.2)
70
- mini_mime (1.0.1)
71
- mini_portile2 (2.3.0)
72
- minitest (5.11.3)
73
- nio4r (2.3.1)
74
- nokogiri (1.8.4)
75
- mini_portile2 (~> 2.3.0)
76
- rack (2.0.5)
77
- rack-test (1.1.0)
78
- rack (>= 1.0, < 3)
79
- rails (5.2.1)
80
- actioncable (= 5.2.1)
81
- actionmailer (= 5.2.1)
82
- actionpack (= 5.2.1)
83
- actionview (= 5.2.1)
84
- activejob (= 5.2.1)
85
- activemodel (= 5.2.1)
86
- activerecord (= 5.2.1)
87
- activestorage (= 5.2.1)
88
- activesupport (= 5.2.1)
89
- bundler (>= 1.3.0)
90
- railties (= 5.2.1)
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.1)
98
- actionpack (= 5.2.1)
99
- activesupport (= 5.2.1)
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.0)
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.16.2