Module: RoleAuthorization::ViewSecurity::ClassMethods

Included in:
RoleAuthorization::ViewSecurity
Defined in:
lib/role_authorization/view_security.rb

Overview

InstanceMethods

Instance Method Summary collapse

Instance Method Details

#class_name_from_file(str) ⇒ Object



115
116
117
# File 'lib/role_authorization/view_security.rb', line 115

def class_name_from_file(str)
  str.split(".")[0].split("/").collect{|s| s.camelize }.join("::")
end

#load_controller_classesObject



79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/role_authorization/view_security.rb', line 79

def load_controller_classes
  @controller_classes = {}

  maybe_load_framework_controller_parent

  Dir.chdir("#{Rails.root}/app/controllers") do
    Dir["**/*.rb"].sort.each do |c|
      next if c.include?("application")
      rola_load(c)
    end
  end
end

#maybe_load_framework_controller_parentObject



92
93
94
95
96
97
98
99
# File 'lib/role_authorization/view_security.rb', line 92

def maybe_load_framework_controller_parent
  if ::Rails::VERSION::MAJOR >= 3 || (::Rails::VERSION::MAJOR >= 2 && ::Rails::VERSION::MINOR >= 3)
    filename = "application_controller.rb"
  else
    filename = "application.rb"
  end
  require_or_load(filename)
end

#qualified_const_get(klass) ⇒ Object



119
120
121
122
123
124
125
126
# File 'lib/role_authorization/view_security.rb', line 119

def qualified_const_get(klass)
  if klass =~ /::/
    namespace, klass = klass.split("::")
    eval(namespace).const_get(klass)
  else
    const_get(klass)
  end
end

#require_or_load(filename) ⇒ Object



107
108
109
110
111
112
113
# File 'lib/role_authorization/view_security.rb', line 107

def require_or_load(filename)
  if ActiveSupport.const_defined?("Dependencies")
    ActiveSupport::Dependencies.require_or_load(filename)
  else
    Dependencies.require_or_load(filename)
  end
end

#rola_load(filename) ⇒ Object



101
102
103
104
105
# File 'lib/role_authorization/view_security.rb', line 101

def rola_load(filename)
  klass = class_name_from_file(filename)
  require_or_load(filename)
  @controller_classes[klass] = qualified_const_get(klass)
end