module ControllerModule
module ActionModule
class Base < ManifestBase::TypeNameArgs
- attr :param_id, :item_name, :action_name
+ attr :alias, :param_id, :item_name, :action_name, :original
def set_default
super
def init
super
@action_name = @name
+ @alias = @args['alias']
@item_name = @args['item_name']
@param_id = @args['param_id']
+ # source manifest of alias manifest
+ @original = @args['original']
+ end
+
+ def a_arg_names
+ []
+ end
+
+ def b_arg_names
+ ['item_name', 'param_id']
+ end
+
+ def controller
+ @parent
+ end
+
+ def has_param
+ @param_id != 'none'
+ end
+
+ def has_alias_action
+ @alias and @alias.any?
+ end
+
+ def alias_action
+ s = @alias.split('.')
+ c = ::Manifest.manifest.controllers[s[0]]
+ c.actions[s[1]]
end
def path_name
q = []
q.push('page=' + params['page'].to_s) if params['page']
q.push('page_size=' + params['page_size'].to_s) if params['page_size']
+ q.push('offset=' + params['offset'].to_s) if params['offset']
+ q.push('count=' + params['count'].to_s) if params['count']
if q.length > 0
'?' + q.join('&')
else