ActiveRecord JSON Validator 使用教程
目录结构及介绍
activerecord_json_validator
项目的目录结构如下:
activerecord_json_validator/
├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── activerecord_json_validator.gemspec
├── docker-compose.yml
├── github/
│ └── workflows/
├── lib/
│ └── activerecord_json_validator/
├── spec/
└── rubocop.yml
Gemfile
:定义了项目所需的依赖。LICENSE
:项目的许可证文件。README.md
:项目的说明文档。Rakefile
:用于定义Rake任务。activerecord_json_validator.gemspec
:gem的规范文件。docker-compose.yml
:用于定义Docker容器配置。github/workflows/
:包含GitHub Actions的工作流配置文件。lib/activerecord_json_validator/
:包含项目的主要代码。spec/
:包含测试代码。rubocop.yml
:用于定义代码风格检查规则。
项目的启动文件介绍
项目的启动文件主要是 lib/activerecord_json_validator.rb
,它负责加载和初始化 activerecord_json_validator
gem。
require 'active_record'
require 'json-schema'
require 'activerecord_json_validator/version'
require 'activerecord_json_validator/validator'
require 'activerecord_json_validator/railtie' if defined?(Rails)
module ActiveRecord
module JSONValidator
end
end
require 'active_record'
:加载ActiveRecord库。require 'json-schema'
:加载JSON Schema库。require 'activerecord_json_validator/version'
:加载版本信息。require 'activerecord_json_validator/validator'
:加载验证器逻辑。require 'activerecord_json_validator/railtie'
:如果项目运行在Rails环境中,加载Rails集成逻辑。
项目的配置文件介绍
项目的配置文件主要包括 activerecord_json_validator.gemspec
和 Gemfile
。
activerecord_json_validator.gemspec
Gem::Specification.new do |spec|
spec.name = 'activerecord_json_validator'
spec.version = '3.0.0'
spec.authors = ['Mirego']
spec.email = ['samuel.gagne@mirego.com']
spec.summary = 'ActiveRecord::JSONValidator makes it easy to validate JSON attributes against a JSON schema.'
spec.description = 'ActiveRecord::JSONValidator makes it easy to validate JSON attributes against a JSON schema.'
spec.homepage = 'https://github.com/mirego/activerecord_json_validator'
spec.license = 'BSD-3-Clause'
spec.files = `git ls-files -z`.split("\x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ['lib']
spec.add_dependency 'activerecord', '< 6', '>= 4.2.0'
spec.add_dependency 'json-schema', '~> 2.8'
spec.add_development_dependency 'activesupport', '< 6', '>= 4.2.0'
spec.add_development_dependency 'bundler', '~> 1.12'
spec.add_development_dependency 'mysql2', '>= 0'
spec.add_development_dependency 'pg', '>= 0'
spec.add_development_dependency 'phare', '>= 0'
spec.add_development_dependency 'rake', '>= 0'
spec.add_development_dependency 'rspec', '~> 3.5'
spec.add_development_dependency 'rubocop', '~> 0.28'
end
spec.name
:gem的名称。- `