Class: Napa::Deprecations

Inherits:
Object
  • Object
show all
Defined in:
lib/napa/deprecations.rb,
lib/napa/deprecations/napa_setup.rb,
lib/napa/deprecations/application_api.rb

Constant Summary collapse

REQUIRED_PATTERNS =
[
  /require 'bundler\/setup'/,
  /Bundler.setup\(:default\)/,
  /require 'napa\/setup'/,
  /Bundler.require\(:default, Napa.env.to_sym\)/,
  /require 'napa'/,
  /Napa.load_environment/,
  /Dir['.\/config\/initializers\/**\/*.rb'].map { |file| require file }/,
  /Dir['.\/config\/middleware\/**\/*.rb'].map { |file| require file }/,
  /relative_load_paths/,
  /ActiveSupport::Dependencies.autoload_paths \+\= relative_load_paths/
]
EXPIRED_PATTERNS =
[
  /require 'dotenv'/,
  "RACK_ENV = ENV['RACK_ENV']",
  "if RACK_ENV == 'test'",
  /Dotenv.load\(".env.test"\)/,
  /Dotenv.load\(Napa.env.test\? \? '.env.test' : '.env'\)/,
  /Bundler.require :default, RACK_ENV/,
  /require 'will_paginate'/,
  /require 'will_paginate\/active_record'/
]

Class Method Summary collapse

Class Method Details

.application_api_checkObject



3
4
5
6
7
# File 'lib/napa/deprecations/application_api.rb', line 3

def self.application_api_check
  unless File.exists?('./app/apis/application_api.rb')
    ActiveSupport::Deprecation.warn 'no application_api.rb file found in app/apis, see https://github.com/bellycard/napa/blob/master/lib/napa/generators/templates/scaffold/app/apis/application_api.rb for an example', caller
  end
end

.initialization_checksObject



8
9
10
11
# File 'lib/napa/deprecations.rb', line 8

def self.initialization_checks
  napa_setup_check
  application_api_check
end

.napa_setup_checkObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/napa/deprecations/napa_setup.rb', line 27

def self.napa_setup_check
  required_patterns_regex = Regexp.union(REQUIRED_PATTERNS)
  expired_patterns_regex = Regexp.union(EXPIRED_PATTERNS)

  if File.exists?('./app.rb')
    if File.readlines('./app.rb').grep(expired_patterns_regex).any? || (File.readlines('./app.rb').grep(required_patterns_regex).count < REQUIRED_PATTERNS.count)
      ActiveSupport::Deprecation.warn 'app.rb is out of date, please update your configuration', caller
    end
  end
end