From c70069d964bbf13c00c8fd3a0228e35c7d35f977 Mon Sep 17 00:00:00 2001 From: Henning Koch Date: Sun, 9 May 2010 09:20:21 +0200 Subject: [PATCH] fix for the new loader --- aegis.gemspec | 19 ++++++++++-------- lib/aegis.rb | 20 +----------------- lib/aegis/loader.rb | 49 +++++++++++++++++++++++++++------------------ spec/loader_spec.rb | 15 ++++++++++---- 4 files changed, 52 insertions(+), 51 deletions(-) diff --git a/aegis.gemspec b/aegis.gemspec index 542a137..5a031c3 100644 --- a/aegis.gemspec +++ b/aegis.gemspec @@ -5,11 +5,11 @@ Gem::Specification.new do |s| s.name = %q{aegis} - s.version = "2.0.0" + s.version = "2.0.1" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Henning Koch", "Tobias Kraze"] - s.date = %q{2010-05-02} + s.date = %q{2010-05-09} s.description = %q{Aegis is an authorization solution for Ruby on Rails that supports roles and a RESTish, resource-style declaration of permission rules.} s.email = %q{henning.koch@makandra.de} s.extra_rdoc_files = [ @@ -27,6 +27,7 @@ Gem::Specification.new do |s| "lib/aegis/action.rb", "lib/aegis/compiler.rb", "lib/aegis/has_role.rb", + "lib/aegis/loader.rb", "lib/aegis/parser.rb", "lib/aegis/permissions.rb", "lib/aegis/resource.rb", @@ -58,6 +59,7 @@ Gem::Specification.new do |s| "spec/app_root/script/console", "spec/controllers/reviews_controller_spec.rb", "spec/has_role_spec.rb", + "spec/loader_spec.rb", "spec/permissions_spec.rb", "spec/rcov.opts", "spec/spec.opts", @@ -66,15 +68,15 @@ Gem::Specification.new do |s| s.homepage = %q{http://github.com/makandra/aegis} s.rdoc_options = ["--charset=UTF-8"] s.require_paths = ["lib"] - s.rubygems_version = %q{1.3.5} + s.rubygems_version = %q{1.3.6} s.summary = %q{Complete authorization solution for Rails} s.test_files = [ - "spec/app_root/app/models/user.rb", + "spec/app_root/app/controllers/application_controller.rb", + "spec/app_root/app/controllers/reviews_controller.rb", + "spec/app_root/app/models/permissions.rb", "spec/app_root/app/models/property.rb", "spec/app_root/app/models/review.rb", - "spec/app_root/app/models/permissions.rb", - "spec/app_root/app/controllers/application_controller.rb", - "spec/app_root/app/controllers/reviews_controller.rb", + "spec/app_root/app/models/user.rb", "spec/app_root/config/boot.rb", "spec/app_root/config/environment.rb", "spec/app_root/config/environments/in_memory.rb", @@ -88,10 +90,11 @@ Gem::Specification.new do |s| "spec/app_root/db/migrate/003_create_reviews.rb", "spec/app_root/lib/console_with_fixtures.rb", "spec/action_controller_spec.rb", + "spec/controllers/reviews_controller_spec.rb", "spec/has_role_spec.rb", "spec/permissions_spec.rb", "spec/spec_helper.rb", - "spec/controllers/reviews_controller_spec.rb" + "spec/loader_spec.rb" ] if s.respond_to? :specification_version then diff --git a/lib/aegis.rb b/lib/aegis.rb index aca55dc..93bd282 100755 --- a/lib/aegis.rb +++ b/lib/aegis.rb @@ -1,20 +1,2 @@ -require 'ostruct' - -#for file in Dir["#{File.dirname(__FILE__)}/*/*.rb"] -# p file -#end - -# Dir["#{File.dirname(__FILE__)}/**/*.rb"].each {|f| require f} - require 'aegis/loader' -require 'aegis/access_denied' -require 'aegis/action' -require 'aegis/compiler' -require 'aegis/has_role' -require 'aegis/parser' -require 'aegis/permissions' -require 'aegis/role' -require 'aegis/sieve' - -require 'rails/action_controller' -require 'rails/active_record' +Aegis::Loader.load_paths diff --git a/lib/aegis/loader.rb b/lib/aegis/loader.rb index ed86ed8..0301c80 100644 --- a/lib/aegis/loader.rb +++ b/lib/aegis/loader.rb @@ -1,26 +1,35 @@ -class Aegis::Loader - class << self +module Aegis + class Loader + class << self - def paths - [ 'aegis/access_denied', - 'aegis/action', - 'aegis/compiler', - 'aegis/has_role', - 'aegis/parser', - 'aegis/permissions', - 'aegis/resource', - 'aegis/role', - 'aegis/sieve', + def paths + [ 'ostruct', - 'rails/action_controller', - 'rails/active_record' ] - end + 'aegis/access_denied', + 'aegis/action', + 'aegis/compiler', + 'aegis/has_role', + 'aegis/parser', + 'aegis/permissions', + 'aegis/resource', + 'aegis/role', + 'aegis/sieve', + + 'rails/action_controller', + 'rails/active_record' ] + end - def load - for path in paths - require path + def load_paths + for path in paths + require path + end + @loaded = true end + + def loaded? + @loaded + end + end - end -end \ No newline at end of file +end diff --git a/spec/loader_spec.rb b/spec/loader_spec.rb index a2081e8..6005b97 100644 --- a/spec/loader_spec.rb +++ b/spec/loader_spec.rb @@ -7,12 +7,19 @@ it "should return all paths in the lib folder" do root = "#{File.dirname(__FILE__)}/../lib/" - expected_paths = Dir["#{root}*/*.rb"].collect do |file| - file.sub(root, "").sub(/\.rb$/, "") - end - ['aegis/loader'] + Dir["#{root}*/*.rb"].collect do |file| + path = file.sub(root, "").sub(/\.rb$/, "") + Aegis::Loader.paths.should include(path) unless path == 'aegis/loader' + end - Aegis::Loader.paths.should =~ expected_paths + end + + end + + describe 'loaded?' do + it "should be loaded" do + Aegis::Loader.should be_loaded end end