64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/plezi/router/route.rb', line 64
def prep_params(postfix)
pfa = postfix.split '/'.freeze
start = 0; stop = 0
optional = false
while pfa.any?
name = pfa.shift
raise "#{name} is not a valid path section in #{@origial}" unless /^((\:[\w\.\[\]]+)|(\(\:[\w\.\[\]]+\))|(\*))$/.match(name)
if name[0] == ':'
raise "Cannot have a required parameter after an optional parameter in #{@origial}" if optional
@param_names << name[1..-1].freeze
elsif name[0] == '('
optional = true
@param_names << name[2..-2].freeze
elsif name[0] == '*'
stop += 999_999
break
else
raise "invalid path section #{name} in #{@origial}"
end
optional ? (stop += 1) : (start += 1)
end
unless (@param_names.include? 'id'.freeze) || stop >= 999_999
@param_names << 'id'.freeze
stop += 1
end
@params_range = (start..(start + stop))
@param_names.freeze
@params_range.freeze
end
|