Module: Petergate::ActionController::Base::ClassMethods
- Defined in:
- lib/petergate/action_controller/base.rb
Instance Method Summary collapse
- #access(rules = {}, &block) ⇒ Object
- #all_actions ⇒ Object
- #const_missing(const_name) ⇒ Object
- #except_actions(arr = []) ⇒ Object
Instance Method Details
#access(rules = {}, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/petergate/action_controller/base.rb', line 22 def access(rules = {}, &block) if block b_rules = block.call rules = rules.merge(b_rules) if b_rules.is_a?(Hash) end instance_eval do @_controller_rules = rules @_controller_message = rules.delete(:message) def controller_rules @_controller_rules end def @_controller_message end def inherited(subclass) subclass.instance_variable_set("@_controller_rules", instance_variable_get("@_controller_rules")) end end class_eval do def check_access (self.class.controller_rules) end end end |
#all_actions ⇒ Object
14 15 16 |
# File 'lib/petergate/action_controller/base.rb', line 14 def all_actions ->{self.action_methods.to_a.map(&:to_sym) - [:check_access, :title]}.call end |
#const_missing(const_name) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/petergate/action_controller/base.rb', line 5 def const_missing(const_name) if [:AllRest, :ALLREST].include?(const_name) warn "`AllRest` and `ALLREST` has been deprecated. Use :all instead." return ALLRESTDEP else return super end end |
#except_actions(arr = []) ⇒ Object
18 19 20 |
# File 'lib/petergate/action_controller/base.rb', line 18 def except_actions(arr = []) all_actions - arr end |