- Bizside::CronValidator ** バリデーションを強化
- Bizside::JobUtils ** add_cron_to と add_cron で cron を設定する際 blocking: true オプションを自動で付与
- Bizside::LogAnalyzer を削除
- Minitest を利用している箇所において MiniTest => Minitest にモジュール名を変更
- Bizside::FileConverter
- RMagick 5系に対応
- Bizside::FileUploader
- 以下の全角記号をファイル名の使用することを許可
『 』 :
- 以下の全角記号をファイル名の使用することを許可
- Bizside::JobUtils
delayed?
のexcept
オプションの不具合修正
- Bizside::JobUtils
- ジョブが遅延しているか判定する
delayed?
を追加
- ジョブが遅延しているか判定する
Warning
!! BREAKING CHANGE !!
- クライアントのデバイスによる View ファイルの切替において、Rails 標準の拡張子を使うように変更
- デバイスにより View ファイル を切り替えている場合は、ファイル名を BizSide 独自形式から Rails 標準の形式に変更してください
- BizSide 独自形式の例:
show.pc.html.erb
- Rails 標準の形式の例:
show.html+pc.erb
- BizSide 独自形式の例:
- デバイスにより View ファイル を切り替えている場合は、ファイル名を BizSide 独自形式から Rails 標準の形式に変更してください
- config/bizside.yml の user_agent が enabled: true の場合、常に request.variant へのセットを行うように変更
- これまでは use_varint: true の場合のみセットしていました
- use_varint は廃止になりました。config/bizside.yml にある場合は削除してください
-
Bizside::AuditLog
- スレッドセーフな実装に修正
- mimemagic のバージョン制限を緩く(~> 0.3.10 から ~> 0.3 に変更)
-
Validator 関連
- Rails 6.1 の ActiveModel::Error の変更に対応
- Rails 6.x をサポート
-
Bizside::JobUtils
- テスト時の Resque との挙動の差異が残っていたため修正
- ジョブの引数にバイナリが指定できない、数値キーが文字列でなく数値のままだった等
- テスト時の Resque との挙動の差異が残っていたため修正
-
Bizside::JobUtils
- 遅延ジョブの情報取得メソッドを追加。
-
bizside/carrierwave
- fog_public=false の時 CarrierWave+Fog でACLで private を指定する代わりにACL未指定でアップロードするパッチを適用
- S3でのACLは無効化が推奨されており、ACLが無効化された別アカウント上のバケットに対しては、 ACLをprivateに指定してファイルアップロードしてもエラーとなる。
- ACL未指定時はエラーとならず、その場合 private が適用される。
- fog_public=false の時 CarrierWave+Fog でACLで private を指定する代わりにACL未指定でアップロードするパッチを適用
-
Bizside::JobUtils
- RAILS_ENV=test 時の挙動を本来の Resque の挙動となるべく揃えるように修正
- Resque がサポートしている hook として before_enqueue 以外の hook も実行
https://github.com/resque/resque/blob/master/docs/HOOKS.md#job-hooks
- NOTE:
HOOKNAME_IDENTIFIER
の形式は未対応のまま
- NOTE:
- before_enqueue の戻り値の false と nil を区別
- キューに登録された際の引数の Hash のキーを String に変換
- Resque がサポートしている hook として before_enqueue 以外の hook も実行
https://github.com/resque/resque/blob/master/docs/HOOKS.md#job-hooks
- RAILS_ENV=test 時の挙動を本来の Resque の挙動となるべく揃えるように修正
-
Bizside::AuditLog
監査ログに出力する際の文字数の制限を、例外メッセージにも反映(PR#39)
-
Bizside::AuditLog
バックトレースを監査ログに出力する際に、文字数の制限を追加(PR#39) デフォルトでは 8192 文字分の出力に制限されます。 Bizside::AuditLog.truncate_length の値を変更することで調整が可能です。
- bizside/resque
- resque の設定値として String だけでなく Hash にも対応
- resque.yml/redis.yml は YAML.load でなく YAML.safe_load でロードするように修正
-
email_validator を廃止
長らく https://github.com/K-and-R/email_validator のラッパーとして存在していました。 直接上記Gemを利用して適切なオプションを利用してください。
- Bizside::CarrierwaveStringIO#path で実在するファイルを参照しないよう、必ず存在しないパスを返すように変更
- CarrierWave::Uploader::Base#store! で意図しないファイルが保存対象となるのを防ぐため
- BIZSIDE_SUPPRESS_AUDIT変数を設定できない場合(Engine等)でもAuditLogを抑制可能とする(PR#36)
- AuditLogを抑制したいURIパスをBizside::AuditLog.ignored_pathsに指定する
- require 'bizside' で Bizside::StdoutLogger をロードするように修正(PR#33)
- Railsのログを log/[Rails.env].log に加え、標準出力にも出力するためのミドルウェア Bizside::StdoutLogger を追加(PR#31)
- 依存ライブラリのバージョン更新
- faraday 1.x.xまで許可(#62048)
- yes_confirmed? のオプション(fail_on_error)のバグを修正(PR#22)
- 定義済の変数を参照するように修正
- StringUtils.create_random_alpha_string の生成する文字の上限を廃止(PR#21)
- 半角英小文字のみの場合は26文字、半角英大文字・小文字の場合は52文字を超える文字を生成出来るように修正
- 依存ライブラリのバージョン更新(PR#20)
- development_dependency
- cucumber-rails
- 2.x を使う
- cucumber のバージョンに合わせる
- cucumber-rails
- development_dependency
- 依存ライブラリのバージョン更新(PR#18)
- runtime_dependency
- rake
- 13.x を許可
- rake
- development_dependency
- sqlite3
- 1.4.x を許可
- capybara
- 3.35.x を許可
- cucumber
- 7.x を使う
- sqlite3
- runtime_dependency
- CI アップデート(PR#17)
- リファクタリング(PR#19)
- job_audit.log 出力に server_address を追加
- JobUtils#enqueue_at_with_queue を追加
- JobUtils#enqueue_at_with_queue_silently を追加
- JobUtils#remove_delayed_in_queue を追加
-
Carrierwaveでアップロード時にファイル名の長さチェックができるように拡張(PR#13)
長い(Linuxの場合255バイトより長い)ファイル名の場合、ファイルをキャッシュするタイミングで Errno::ENAMETOOLONG が発生していました。 Bizside::FileUploader の挙動を設定で制御できるようになりました。
-
Bizside.config.file_uploader.ignore_long_filename_error が true の場合 Errno::ENAMETOOLONG の発生を抑制します。 モデルに original_filename というプロパティがある場合は、当該プロパティにファイル名を設定します。 以下のようなモデルのバリデーションを定義することで、エラーを通知することが可能です。
# 4バイト文字が Linux 上の 255バイト制限に収まる長さ validates :original_filename, length: {maximum: 255 / 4}
-
Bizside.config.file_uploader.ignore_long_filename_error が false の場合 これまでどおり Errno::ENAMETOOLONG が発生します。
デフォルトでは ignore_long_filename_error は false で、互換性を維持しています。 アプリ側でファイル名の適切なバリデーションを行う場合は ignore_long_filename_error を true にしてください。 いずれの場合もファイルのキャッシュは実施されていないため、正常系の処理を続けることはできません。
-
-
Bizside::Config にメソッド呼び出し形式で値を設定できない不具合の修正(#57892)
- Bizside::FileConverter による rmagick のロードは必要になったタイミングで require するように
- ENV[COVERAGE]の値に関わらずカバレージ計測をしてしまう不具合の修正(#57337)
- Bizside::FileUploader#downloaded_file が返すパスにファイルが存在しない場合にハンドリングする(#57053)
- bizside/file_uploader のバグフィックス
-
OSSとして公開(https://github.com/maedadev/bizside-ruby)
バージョン 1系では Railsアプリ以外で bizside.gem を使用する時は config/bizside.yml は任意でした。 バージョン 2系以降では常に config/bizside.yml が必須になります。