Class: RouteValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/valid_route/route_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ RouteValidator

Returns a new instance of RouteValidator.



3
4
5
6
7
8
# File 'lib/valid_route/route_validator.rb', line 3

def initialize(options)
  # options[:get_all_conflicts] = true
  super
  scrub_options options
  
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/valid_route/route_validator.rb', line 10

def validate_each(record, attribute, value)
	# Get all Routes
	inspector = ActionDispatch::Routing::RoutesInspector.new(Rails.application.routes.routes)
	routes = inspector.format(ValidRoute::RouteFormatter.new)

	routes = scrub_routes routes

	conflicts = check_conflicts routes, record	

	unless conflicts.empty?
		record.errors[attribute] << (@options[:message] || "route is taken")
	end
end