require 'fileutils' namespace 'dry-swagger' do desc 'Create a configuration file for Struct and Contract' task :create_configuration_file do FileUtils.mkdir_p "#{ Dir.pwd }/config/initializers/" puts "Created #{ Dir.pwd }/config/initializers/dry-swagger.rb" File.open("#{ Dir.pwd }/config/initializers/dry-swagger.rb", "w") { |file| file.puts 'Dry::Swagger::Config::StructConfiguration.configuration do |config| config.enable_required_validation = true config.enable_nullable_validation = true config.enable_enums = true config.enable_descriptions = true config.nullable_type = :"x-nullable" # or :nullable end Dry::Swagger::Config::ContractConfiguration.configuration do |config| config.enable_required_validation = true config.enable_nullable_validation = true config.enable_enums = true config.enable_descriptions = true config.nullable_type = :"x-nullable" # or :nullable end' } end desc 'Create a YAML file for Contract swagger field descriptions' task :create_contract_descriptions_yaml do FileUtils.mkdir_p "#{ Dir.pwd }/config/locales/" puts "Created #{ Dir.pwd }/config/locales/dry-swagger.yml" File.open("#{ Dir.pwd }/config/locales/dry-swagger.yml", "w") { |file| file.puts 'en: contract: descriptions: eql?: "Must be equal to %{value}" max_size?: "Maximum size: %{value}" min_size?: "Minimum size: %{value}" gteq?: "Greater than or equal to %{value}" gt?: "Greater than %{value}" lt?: "Lower than %{value}" lteq?: "Lower than or equal to %{value}" ' } end desc 'Creates configuration files' task :install do Rake::Task['dry-swagger:create_configuration_file'].execute Rake::Task['dry-swagger:create_contract_descriptions_yaml'].execute end end