\r
set_default: () ->\r
super()\r
- @args.item_name ||= @parent.item_name # not parent.name. follow singularized name\r
+ @args.item_name ||= Manifest.manifest().singularize(@parent.name)\r
+ @args.param_id ||= 'prefix'\r
\r
init: () ->\r
super()\r
@item_name = @args.item_name\r
+ @param_id = @args.param_id\r
+ \r
+ path_name: () ->\r
+ @parent.name\r
+ #Manifest.manifest().pluralize(@item_name)\r
+ \r
+ encode_query: (params) ->\r
+ q = []\r
+ q.push('page=' + Pettanr.to_s(params['page'])) if params['page']\r
+ q.push('page_size=' + Pettanr.to_s(params['page_size'])) if params['page_size']\r
+ if q.length > 0\r
+ '?' + q.join('&')\r
+ else\r
+ ''\r
+ \r
+ encode_url: (action_name, params) ->\r
+ controller_name = @path_name()\r
+ c = controller_name\r
+ a = if action_name == 'index' or action_name == 'show' or action_name == 'destroy'\r
+ ''\r
+ else\r
+ '/' + action_name\r
+ # f = if params['format'] # json request? so bad. html request as get rest api\r
+ f = if params['format'] == 'prof'\r
+ '.' + params['format']\r
+ else\r
+ ''\r
+ i = if params['id']\r
+ '/' + Pettanr.to_s(params['id'])\r
+ else\r
+ ''\r
+ q = @encode_query(params)\r
+ switch @param_id\r
+ when 'prefix'\r
+ c + i + a + f + q\r
+ when 'suffix'\r
+ c + a + i + f + q\r
+ else\r
+ c + a + f + q\r
+ \r
+ url: (params) ->\r
+ @encode_url(@name, params)\r
\r
-\r