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