module RequestParamsValidation::Definitions

Public Class Methods

get_request(resource, action) click to toggle source
# File lib/request_params_validation/definitions.rb, line 24
def self.get_request(resource, action)
  resource = @@definitions[resource]

  return unless resource

  action = resource.actions[action]

  return unless action

  action.request
end
load_all(use_load = false) click to toggle source
# File lib/request_params_validation/definitions.rb, line 8
def self.load_all(use_load = false)
  definitions_suffix = RequestParamsValidation.definitions_suffix
  Dir["#{definitions_path}/**/*#{definitions_suffix}.rb"].each { |f| use_load ? load(f) : require(f) }
end
register_resource(&block) click to toggle source
# File lib/request_params_validation/definitions.rb, line 13
def self.register_resource(&block)
  raise DefinitionArgumentError.new('Expecting block for resource definition') unless block_given?

  resource_name = resource_name_from_block(&block)
  resource = Resource.new(resource_name)

  resource.instance_eval(&block)

  @@definitions[resource_name] = resource
end

Private Class Methods

definitions_path() click to toggle source
# File lib/request_params_validation/definitions.rb, line 36
def self.definitions_path
  definitions_path = RequestParamsValidation.definitions_path.to_s

  definitions_path[0]  = '' if definitions_path.start_with?('/')
  definitions_path[-1] = '' if definitions_path.end_with?('/')

  "#{Rails.root}/#{definitions_path}"
end
resource_name_from_block(&block) click to toggle source
# File lib/request_params_validation/definitions.rb, line 46
def self.resource_name_from_block(&block)
  definitions_suffix = RequestParamsValidation.definitions_suffix

  block_path = block.source_location.first

  block_path.sub("#{definitions_path}/", '')
            .sub("#{definitions_suffix}", '')
            .sub('.rb', '')
end