Class: TarkaMatchers::Helpers::ActionDispatch::RoutePopulator

Inherits:
Object
  • Object
show all
Defined in:
lib/tarka_matchers/helpers/rails/action_dispatch/route_populator.rb

Class Method Summary collapse

Class Method Details

.route_populate(unpopulated_route, populated_route) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/tarka_matchers/helpers/rails/action_dispatch/route_populator.rb', line 5

def self.route_populate unpopulated_route, populated_route
      converted_route = unpopulated_route.dup  
      converted_route.gsub!('(.:format)','')

  if populated_route != converted_route
    syncronizer = 0 
    unpopulated_route.scan /(?<=\/):\w+/ do |m|
      start_index = $~.offset(0)[0] + syncronizer
      break if start_index > populated_route.length
      end_index = $~.offset(0)[1] + syncronizer
          named_length = end_index - start_index
          parameter = populated_route.match(/(?<=\/)\w+/, start_index).to_s
          syncronizer += (named_length - parameter.length).abs
          converted_route.slice! start_index..end_index-1
      converted_route.insert start_index, parameter
    end
    end
  
  converted_route  
end