OSDN Git Service

fix: bin tool
[pettanr/pettanr.git] / lib / manifest / controller / action / base.rb
index e7488e5..063e191 100644 (file)
@@ -2,7 +2,7 @@ module Manifest
   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
@@ -13,8 +13,37 @@ module Manifest
         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
@@ -25,6 +54,8 @@ module Manifest
           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