module GrapeOnRails

rubocop:disable ModuleFunction, ClassVars

Constants

VERSION

Public Instance Methods

load() click to toggle source
# File lib/grape_on_rails.rb, line 34
def load
  config = load_file
  Kernel.send(:remove_const, short_name) if Kernel.const_defined?(short_name)
  Kernel.const_set short_name, config
  Models.set_default_model_actors config
  create_error_class config
end
Also aliased as: reload
reload()
Alias for: load
setup() { |self| ... } click to toggle source
# File lib/grape_on_rails.rb, line 28
def setup
  return if @@_ran_once
  @@_ran_once = true
  block_given? ? yield(self) : hook_rails_layers
end

Private Instance Methods

create_error_class(config) click to toggle source
# File lib/grape_on_rails.rb, line 51
def create_error_class config
  config.errors.each do |error|
    next if error.second.skip_create_error
    error_name = error.first.to_s.classify
    APIError.const_set error_name, Class.new(APIError::Base) unless APIError.const_defined?(error_name)
  end
end
hook_controller(*modules) click to toggle source
# File lib/grape_on_rails.rb, line 64
def hook_controller *modules
  modules.each do |mod|
    ActionController::Metal.include mod unless ActionController::Metal < mod
  end
end
hook_model(*modules) click to toggle source
# File lib/grape_on_rails.rb, line 70
def hook_model *modules
  modules.each do |mod|
    ActiveRecord::Base.extend mod unless ActiveRecord::Base.singleton_class < mod
  end
end
hook_rails_layers() click to toggle source
# File lib/grape_on_rails.rb, line 59
def hook_rails_layers
  hook_controller GrapeOnRails::API, GrapeOnRails::Authenticator
  hook_model GrapeOnRails::Models
end
load_file() click to toggle source
# File lib/grape_on_rails.rb, line 45
def load_file
  file = Rails.root.join("config", config_file)
  source = Sources::YAMLSource.new(file.to_s).load
  StructuralHash.new.from_hash source
end