class GemsGenerator::Grape::Generators::InitGenerator

Public Instance Methods

add_gems() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 8
def add_gems
  gem "grape", '~>0.15.0'
  gem "grape_logging", git: "git@github.com:aserafin/grape_logging.git"
  gem "grape_on_rails_routes"
  gem_group :development, :staging, :test do
    gem "grape-swagger"
    gem "grape-swagger-rails", git: "git@github.com:ruby-grape/grape-swagger-rails.git"
  end
  gem 'rack-attack'
end
cope_api_error_file() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 56
def cope_api_error_file
  template "lib/api_error.rb", "lib/api_error.rb"
  template "locales/api_error/en.yml", "config/locales/api_error/en.yml"
end
copy_base_api_rb() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 20
def copy_base_api_rb
  template "base_api.rb.erb", File.join('app/api/',"#{file_name}_api.rb")
end
copy_concerns_file() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 25
def copy_concerns_file
  api_exception_handler_path = "concerns/api_exception_handler.rb"
  template api_exception_handler_path, File.join('app/api/', api_exception_handler_path)

  document_handler_path = "concerns/document_handler.rb"
  template document_handler_path, File.join('app/api/', document_handler_path)

  ping_pong_path = "concerns/ping_pong.rb"
  template ping_pong_path, File.join('app/api/', ping_pong_path)

  request_logger_path = "concerns/request_logger.rb"
  template request_logger_path, File.join('app/api/', request_logger_path)
end
copy_swagger_file() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 50
def copy_swagger_file
  swagger_path = "config/initializers/swagger.rb"
  template "initializers/swagger.rb", swagger_path
end
create_rack_attack_rb() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 62
def create_rack_attack_rb
  template "initializers/rack-attack.rb", "config/initializers/rack-attack.rb"
end
insert_application_rb() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 67
def insert_application_rb
  inject_into_file "config/application.rb", after: "Rails::Application\n" do
    "    config.autoload_paths << Rails.root.join('lib')\n" +
    "    config.eager_load_paths << Rails.root.join('lib')\n"
  end


  inject_into_file "config/application.rb", after: "Rails::Application\n" do
    "    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**/*.{rb,yml}').to_s]\n" +
    "    config.i18n.available_locales = %w(en zh-CN kr ja)\n" +
    "    config.i18n.fallbacks = [:en]\n"
  end

end
insert_grape_routes() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 40
def insert_grape_routes
  route "mount #{class_name}API => '/'"
end
insert_grape_swagger_routes() click to toggle source
# File lib/generators/gems_generator/grape/init_generator.rb, line 45
def insert_grape_swagger_routes
  route "mount GrapeSwaggerRails::Engine => '/swagger' unless Rails.env.production?"
end