class Acl9::Dsl::Generators::FilterMethod

Public Class Methods

new(subject_method, method_name) click to toggle source
# File lib/acl9/controller_extensions/generators.rb, line 86
def initialize(subject_method, method_name)
  super

  @method_name = method_name
  @controller = nil
end

Public Instance Methods

install_on(controller_class, options) click to toggle source
# File lib/acl9/controller_extensions/generators.rb, line 93
def install_on(controller_class, options)
  super
  _add_method(controller_class)
  controller_class.send(:before_action, @method_name, options)
end

Protected Instance Methods

_add_method(controller_class) click to toggle source
# File lib/acl9/controller_extensions/generators.rb, line 101
def _add_method(controller_class)
  code = self.to_method_code
  controller_class.send(:class_eval, code, __FILE__, __LINE__)
rescue SyntaxError
  raise FilterSyntaxError, code
end
to_method_code() click to toggle source
# File lib/acl9/controller_extensions/generators.rb, line 108
        def to_method_code
          <<-RUBY
            def #{@method_name}
              unless #{allowance_expression}
                #{_access_denied}
              end
            end
          RUBY
        end