32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/rad/router/_object_router.rb', line 32
def encode klass, method, params
return nil unless configured?
id = params[:id]
path = if id
raise ":id can be used with :default_class only (#{klass}, '#{id}')!" if klass != default_class
params.delete :id
raise ":id must not start from capital letter ('#{id}')!" if id =~ /^[A-Z]/
path = if !method or method == default_object_method
"/#{id}"
else
"/#{id}/#{method}"
end
else
resource = cached_class_to_resource klass
raise "no resource for #{klass}!" unless resource
raise "resource must start from capital letter (class: #{klass}, resource: '#{resource}')!" unless resource =~ /^[A-Z]/
path = if !method or method == default_class_method
"/#{resource}"
else
"/#{resource}/#{method}"
end
end
path = encode_prefix_params! path, params, prefix if prefix
params[:url_root] = url_root if url_root
[path, params]
end
|