jakewendt-authorized 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +52 -0
 - data/app/controllers/roles_controller.rb +38 -0
 - data/app/models/role.rb +34 -0
 - data/config/routes.rb +9 -0
 - data/generators/authorized/USAGE +0 -0
 - data/generators/authorized/authorized_generator.rb +66 -0
 - data/generators/authorized/templates/functional/roles_controller_test.rb +142 -0
 - data/generators/authorized/templates/migrations/create_roles.rb +14 -0
 - data/generators/authorized/templates/migrations/create_roles_users.rb +14 -0
 - data/generators/authorized/templates/stylesheets/authorized.css +0 -0
 - data/generators/authorized/templates/unit/role_test.rb +29 -0
 - data/lib/authorized.rb +45 -0
 - data/lib/authorized/authorization.rb +69 -0
 - data/lib/authorized/controller.rb +87 -0
 - data/lib/authorized/core_extension.rb +16 -0
 - data/lib/authorized/factories.rb +15 -0
 - data/lib/authorized/factory_test_helper.rb +47 -0
 - data/lib/authorized/helper.rb +28 -0
 - data/lib/authorized/pending.rb +72 -0
 - data/lib/authorized/permissive_controller.rb +25 -0
 - data/lib/authorized/resourceful_controller.rb +81 -0
 - data/lib/authorized/tasks.rb +1 -0
 - data/lib/authorized/user_model.rb +144 -0
 - data/lib/tasks/application.rake +40 -0
 - data/lib/tasks/database.rake +52 -0
 - data/lib/tasks/documentation.rake +68 -0
 - data/lib/tasks/rcov.rake +41 -0
 - metadata +276 -0
 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Dir["#{File.dirname(__FILE__)}/../tasks/**/*.rake"].sort.each { |ext| load ext }
         
     | 
| 
         @@ -0,0 +1,144 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Authorized
         
     | 
| 
      
 2 
     | 
    
         
            +
            module UserModel
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            	def self.included(base)
         
     | 
| 
      
 5 
     | 
    
         
            +
            		base.extend(PrepMethod)
         
     | 
| 
      
 6 
     | 
    
         
            +
            #		base.send(:include, InstanceMethods)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #		base.class_eval do
         
     | 
| 
      
 8 
     | 
    
         
            +
            #			alias_method_chain :reset_persistence_token, :uniqueness
         
     | 
| 
      
 9 
     | 
    
         
            +
            #		end
         
     | 
| 
      
 10 
     | 
    
         
            +
            	end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            	module PrepMethod
         
     | 
| 
      
 13 
     | 
    
         
            +
            		def authorized(options={})
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            			include Authorized::UserModel::InstanceMethods
         
     | 
| 
      
 16 
     | 
    
         
            +
            			extend  Authorized::UserModel::ClassMethods
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            			has_and_belongs_to_many :roles,  :uniq => true
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            		end
         
     | 
| 
      
 21 
     | 
    
         
            +
            	end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            	module ClassMethods
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            #		def search(options={})
         
     | 
| 
      
 26 
     | 
    
         
            +
            #			conditions = {}
         
     | 
| 
      
 27 
     | 
    
         
            +
            #			includes = joins = []
         
     | 
| 
      
 28 
     | 
    
         
            +
            #			if !options[:role_name].blank?
         
     | 
| 
      
 29 
     | 
    
         
            +
            #				includes = [:roles]
         
     | 
| 
      
 30 
     | 
    
         
            +
            #				if Role.all.collect(&:name).include?(options[:role_name])
         
     | 
| 
      
 31 
     | 
    
         
            +
            #					joins = [:roles]
         
     | 
| 
      
 32 
     | 
    
         
            +
            #					conditions = ["roles.name = '#{options[:role_name]}'"]
         
     | 
| 
      
 33 
     | 
    
         
            +
            #		#		else
         
     | 
| 
      
 34 
     | 
    
         
            +
            #		#			@errors = "No such role '#{options[:role_name]}'"
         
     | 
| 
      
 35 
     | 
    
         
            +
            #				end 
         
     | 
| 
      
 36 
     | 
    
         
            +
            #			end 
         
     | 
| 
      
 37 
     | 
    
         
            +
            #			self.all( 
         
     | 
| 
      
 38 
     | 
    
         
            +
            #				:joins => joins, 
         
     | 
| 
      
 39 
     | 
    
         
            +
            #				:include => includes,
         
     | 
| 
      
 40 
     | 
    
         
            +
            #				:conditions => conditions )
         
     | 
| 
      
 41 
     | 
    
         
            +
            #		end 
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            	end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            	module InstanceMethods
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            		def role_names
         
     | 
| 
      
 48 
     | 
    
         
            +
            			roles.collect(&:name).uniq
         
     | 
| 
      
 49 
     | 
    
         
            +
            		end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            		def deputize
         
     | 
| 
      
 52 
     | 
    
         
            +
            			roles << Role.find_or_create_by_name('administrator')
         
     | 
| 
      
 53 
     | 
    
         
            +
            		end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            		#	The 4 common CCLS roles are ....
         
     | 
| 
      
 56 
     | 
    
         
            +
            		def is_superuser?(*args)
         
     | 
| 
      
 57 
     | 
    
         
            +
            			self.role_names.include?('superuser')
         
     | 
| 
      
 58 
     | 
    
         
            +
            		end
         
     | 
| 
      
 59 
     | 
    
         
            +
            		alias_method :is_super_user?, :is_superuser?
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            		def is_administrator?(*args)
         
     | 
| 
      
 62 
     | 
    
         
            +
            			self.role_names.include?('administrator')
         
     | 
| 
      
 63 
     | 
    
         
            +
            		end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            		def is_editor?(*args)
         
     | 
| 
      
 66 
     | 
    
         
            +
            			self.role_names.include?('editor')
         
     | 
| 
      
 67 
     | 
    
         
            +
            		end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            		def is_interviewer?(*args)
         
     | 
| 
      
 70 
     | 
    
         
            +
            			self.role_names.include?('interviewer')
         
     | 
| 
      
 71 
     | 
    
         
            +
            		end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            		def is_reader?(*args)
         
     | 
| 
      
 74 
     | 
    
         
            +
            			self.role_names.include?('reader')
         
     | 
| 
      
 75 
     | 
    
         
            +
            		end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            		def is_user?(user=nil)
         
     | 
| 
      
 78 
     | 
    
         
            +
            			!user.nil? && self == user
         
     | 
| 
      
 79 
     | 
    
         
            +
            		end
         
     | 
| 
      
 80 
     | 
    
         
            +
            		alias_method :may_be_user?, :is_user?
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
            		def may_administrate?(*args)
         
     | 
| 
      
 83 
     | 
    
         
            +
            			(self.role_names & ['superuser','administrator']).length > 0
         
     | 
| 
      
 84 
     | 
    
         
            +
            		end
         
     | 
| 
      
 85 
     | 
    
         
            +
            		alias_method :may_view_permissions?,        :may_administrate?
         
     | 
| 
      
 86 
     | 
    
         
            +
            		alias_method :may_create_user_invitations?, :may_administrate?
         
     | 
| 
      
 87 
     | 
    
         
            +
            		alias_method :may_view_users?,              :may_administrate?
         
     | 
| 
      
 88 
     | 
    
         
            +
            		alias_method :may_assign_roles?,            :may_administrate?
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            		def may_edit?(*args)
         
     | 
| 
      
 91 
     | 
    
         
            +
            			(self.role_names & 
         
     | 
| 
      
 92 
     | 
    
         
            +
            				['superuser','administrator','editor']
         
     | 
| 
      
 93 
     | 
    
         
            +
            			).length > 0
         
     | 
| 
      
 94 
     | 
    
         
            +
            		end
         
     | 
| 
      
 95 
     | 
    
         
            +
            		alias_method :may_maintain_pages?, :may_edit?
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            #	Add tests for may_interview and may_read
         
     | 
| 
      
 99 
     | 
    
         
            +
            		def may_interview?(*args)
         
     | 
| 
      
 100 
     | 
    
         
            +
            			(self.role_names & 
         
     | 
| 
      
 101 
     | 
    
         
            +
            				['superuser','administrator','editor','interviewer']
         
     | 
| 
      
 102 
     | 
    
         
            +
            			).length > 0
         
     | 
| 
      
 103 
     | 
    
         
            +
            		end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            #	This is pretty lame as all current roles can read
         
     | 
| 
      
 106 
     | 
    
         
            +
            		def may_read?(*args)
         
     | 
| 
      
 107 
     | 
    
         
            +
            			(self.role_names & 
         
     | 
| 
      
 108 
     | 
    
         
            +
            				['superuser','administrator','editor','interviewer','reader']
         
     | 
| 
      
 109 
     | 
    
         
            +
            			).length > 0
         
     | 
| 
      
 110 
     | 
    
         
            +
            		end
         
     | 
| 
      
 111 
     | 
    
         
            +
            		alias_method :may_view?, :may_read?
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            		def may_view_user?(user=nil)
         
     | 
| 
      
 116 
     | 
    
         
            +
            			self.is_user?(user) || self.may_administrate?
         
     | 
| 
      
 117 
     | 
    
         
            +
            		end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            		def may_share_document?(document=nil)
         
     | 
| 
      
 123 
     | 
    
         
            +
            			document && ( 
         
     | 
| 
      
 124 
     | 
    
         
            +
            				self.is_administrator? ||
         
     | 
| 
      
 125 
     | 
    
         
            +
            				( document.owner && self == document.owner ) 
         
     | 
| 
      
 126 
     | 
    
         
            +
            			)
         
     | 
| 
      
 127 
     | 
    
         
            +
            		end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            		def may_view_document?(document=nil)
         
     | 
| 
      
 130 
     | 
    
         
            +
            			document
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            		end
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
            	protected
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            	end
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
            end
         
     | 
| 
      
 143 
     | 
    
         
            +
            end
         
     | 
| 
      
 144 
     | 
    
         
            +
            ActiveRecord::Base.send( :include, Authorized::UserModel )
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespace :app do
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            #	task :args_as_array do
         
     | 
| 
      
 4 
     | 
    
         
            +
            #		args = $*.dup.slice(1..-1)
         
     | 
| 
      
 5 
     | 
    
         
            +
            #		puts args.collect {|arg| "X:" << arg }.join("\n")
         
     | 
| 
      
 6 
     | 
    
         
            +
            #		exit
         
     | 
| 
      
 7 
     | 
    
         
            +
            #	end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            	desc "Add some expected users."
         
     | 
| 
      
 10 
     | 
    
         
            +
            	task :add_users => :environment do
         
     | 
| 
      
 11 
     | 
    
         
            +
            		puts "Adding users"
         
     | 
| 
      
 12 
     | 
    
         
            +
            		%w( 859908 228181 855747 214766 180918 66458 808 768475 
         
     | 
| 
      
 13 
     | 
    
         
            +
            			10883 86094 754783 769067 854720 16647 ).each do |uid|
         
     | 
| 
      
 14 
     | 
    
         
            +
            			puts " - Adding user with uid:#{uid}:"
         
     | 
| 
      
 15 
     | 
    
         
            +
            			User.find_create_and_update_by_uid(uid)
         
     | 
| 
      
 16 
     | 
    
         
            +
            		end
         
     | 
| 
      
 17 
     | 
    
         
            +
            	end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            	desc "Deputize user by UID"
         
     | 
| 
      
 20 
     | 
    
         
            +
            	task :deputize => :environment do
         
     | 
| 
      
 21 
     | 
    
         
            +
            		puts
         
     | 
| 
      
 22 
     | 
    
         
            +
            		if ENV['uid'].blank?
         
     | 
| 
      
 23 
     | 
    
         
            +
            			puts "User's CalNet UID required."
         
     | 
| 
      
 24 
     | 
    
         
            +
            			puts "Usage: rake #{$*} uid=INTEGER"
         
     | 
| 
      
 25 
     | 
    
         
            +
            			puts
         
     | 
| 
      
 26 
     | 
    
         
            +
            			exit
         
     | 
| 
      
 27 
     | 
    
         
            +
            		end
         
     | 
| 
      
 28 
     | 
    
         
            +
            		if !User.exists?(:uid => ENV['uid'])
         
     | 
| 
      
 29 
     | 
    
         
            +
            			puts "No user found with uid=#{ENV['uid']}."
         
     | 
| 
      
 30 
     | 
    
         
            +
            			puts
         
     | 
| 
      
 31 
     | 
    
         
            +
            			exit
         
     | 
| 
      
 32 
     | 
    
         
            +
            		end
         
     | 
| 
      
 33 
     | 
    
         
            +
            		user = User.find(:first, :conditions => { :uid => ENV['uid'] })
         
     | 
| 
      
 34 
     | 
    
         
            +
            		puts "Found user #{user.displayname}.  Deputizing..."
         
     | 
| 
      
 35 
     | 
    
         
            +
            		user.deputize
         
     | 
| 
      
 36 
     | 
    
         
            +
            		puts "User deputized: #{user.is_administrator?}"
         
     | 
| 
      
 37 
     | 
    
         
            +
            		puts
         
     | 
| 
      
 38 
     | 
    
         
            +
            	end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespace :db do
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            	desc "Create yml fixtures for given model in database\n" <<
         
     | 
| 
      
 4 
     | 
    
         
            +
            	     "rake db:extract_fixtures_from pages"
         
     | 
| 
      
 5 
     | 
    
         
            +
            	task :extract_fixtures_from => :environment do
         
     | 
| 
      
 6 
     | 
    
         
            +
            		me = $*.shift
         
     | 
| 
      
 7 
     | 
    
         
            +
            		while( table_name = $*.shift )
         
     | 
| 
      
 8 
     | 
    
         
            +
            			File.open("#{RAILS_ROOT}/db/#{table_name}.yml", 'w') do |file|
         
     | 
| 
      
 9 
     | 
    
         
            +
            				data = table_name.singularize.capitalize.constantize.find(
         
     | 
| 
      
 10 
     | 
    
         
            +
            					:all).collect(&:attributes)
         
     | 
| 
      
 11 
     | 
    
         
            +
            				file.write data.inject({}) { |hash, record|
         
     | 
| 
      
 12 
     | 
    
         
            +
            					record.delete('created_at')
         
     | 
| 
      
 13 
     | 
    
         
            +
            					record.delete('updated_at')
         
     | 
| 
      
 14 
     | 
    
         
            +
            					hash["#{table_name}_#{record['id']}"] = record
         
     | 
| 
      
 15 
     | 
    
         
            +
            					hash
         
     | 
| 
      
 16 
     | 
    
         
            +
            				}.to_yaml
         
     | 
| 
      
 17 
     | 
    
         
            +
            			end
         
     | 
| 
      
 18 
     | 
    
         
            +
            		end
         
     | 
| 
      
 19 
     | 
    
         
            +
            		exit
         
     | 
| 
      
 20 
     | 
    
         
            +
            	end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            	desc "Dump MYSQL table descriptions."
         
     | 
| 
      
 23 
     | 
    
         
            +
            	task :describe => :environment do
         
     | 
| 
      
 24 
     | 
    
         
            +
            		puts
         
     | 
| 
      
 25 
     | 
    
         
            +
            		puts "FYI: This task ONLY works on MYSQL databases."
         
     | 
| 
      
 26 
     | 
    
         
            +
            		puts
         
     | 
| 
      
 27 
     | 
    
         
            +
            		config = ActiveRecord::Base.connection.instance_variable_get(:@config)
         
     | 
| 
      
 28 
     | 
    
         
            +
            #=> {:adapter=>"mysql", :host=>"localhost", :password=>nil, :username=>"root", :database=>"my_development", :encoding=>"utf8"}
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            		tables = ActiveRecord::Base.connection.execute('show tables;')
         
     | 
| 
      
 31 
     | 
    
         
            +
            		while( table = tables.fetch_row ) do
         
     | 
| 
      
 32 
     | 
    
         
            +
            			puts "Table: #{table}"
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            			#	may have to include host and port
         
     | 
| 
      
 35 
     | 
    
         
            +
            			system("mysql --table=true " <<
         
     | 
| 
      
 36 
     | 
    
         
            +
            				"--user=#{config[:username]} " <<
         
     | 
| 
      
 37 
     | 
    
         
            +
            				"--password='#{config[:password]}' " <<
         
     | 
| 
      
 38 
     | 
    
         
            +
            				"--execute='describe #{table}' " <<
         
     | 
| 
      
 39 
     | 
    
         
            +
            				config[:database]);
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            			#
         
     | 
| 
      
 42 
     | 
    
         
            +
            			#	mysql formats the table well so doing it by hand is something that
         
     | 
| 
      
 43 
     | 
    
         
            +
            			#	will have to wait until I feel like wasting my time
         
     | 
| 
      
 44 
     | 
    
         
            +
            			#
         
     | 
| 
      
 45 
     | 
    
         
            +
            			#	columns = ActiveRecord::Base.connection.execute("describe #{table};")
         
     | 
| 
      
 46 
     | 
    
         
            +
            			#	while( column = columns.fetch_hash ) do
         
     | 
| 
      
 47 
     | 
    
         
            +
            			#		puts column.keys Extra Default Null Type Field Key
         
     | 
| 
      
 48 
     | 
    
         
            +
            			#	end
         
     | 
| 
      
 49 
     | 
    
         
            +
            		end
         
     | 
| 
      
 50 
     | 
    
         
            +
            	end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,68 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #	This file has been copied from rails 
         
     | 
| 
      
 3 
     | 
    
         
            +
            #		.../rails-2.3.5/lib/tasks/documentation.rake
         
     | 
| 
      
 4 
     | 
    
         
            +
            #	so that parts of it could be modified.
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            namespace :doc do	|doc|
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            #	Rake::RDocTask.new("app") { |rdoc|
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #		We cannot overwrite or override an RDoc rake task.
         
     | 
| 
      
 11 
     | 
    
         
            +
            #		Redefining it here actually creates another
         
     | 
| 
      
 12 
     | 
    
         
            +
            #		of the same name and both are run when
         
     | 
| 
      
 13 
     | 
    
         
            +
            #		`rake doc:app` is called.	The Rakefile
         
     | 
| 
      
 14 
     | 
    
         
            +
            #		is modified to handle the modifications.
         
     | 
| 
      
 15 
     | 
    
         
            +
            #
         
     | 
| 
      
 16 
     | 
    
         
            +
            #		Actually, that's not entirely true.  This would
         
     | 
| 
      
 17 
     | 
    
         
            +
            #		add another task, but you can remove and override
         
     | 
| 
      
 18 
     | 
    
         
            +
            #		a task.  The rdoc_rails plugin was overriding my
         
     | 
| 
      
 19 
     | 
    
         
            +
            #		override, which caused all the frustration!!!
         
     | 
| 
      
 20 
     | 
    
         
            +
            #
         
     | 
| 
      
 21 
     | 
    
         
            +
            #	}
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            	plugins = FileList['vendor/plugins/**'].collect { |plugin| 
         
     | 
| 
      
 24 
     | 
    
         
            +
            		File.basename(plugin) }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            	namespace :plugins do
         
     | 
| 
      
 27 
     | 
    
         
            +
            		# Define doc tasks for each plugin
         
     | 
| 
      
 28 
     | 
    
         
            +
            		plugins.each do |plugin|
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            			#	clear rails' Rake::Task of the same name
         
     | 
| 
      
 31 
     | 
    
         
            +
            			Rake::Task[plugin].clear_actions
         
     | 
| 
      
 32 
     | 
    
         
            +
            			Rake::Task[plugin].clear_prerequisites
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            			Rake::RDocTask.new(plugin) { |rdoc|
         
     | 
| 
      
 35 
     | 
    
         
            +
            				plugin_base  = "vendor/plugins/#{plugin}"
         
     | 
| 
      
 36 
     | 
    
         
            +
            				ENV['format'] ||= 'railsfish'
         
     | 
| 
      
 37 
     | 
    
         
            +
            				rdoc.rdoc_dir = "doc/plugins/#{plugin}"
         
     | 
| 
      
 38 
     | 
    
         
            +
            				rdoc.template = ENV['template'] if ENV['template']
         
     | 
| 
      
 39 
     | 
    
         
            +
            				rdoc.title    = "#{plugin.titlecase} Plugin Documentation"
         
     | 
| 
      
 40 
     | 
    
         
            +
            				rdoc.options << '--line-numbers' << '--inline-source'
         
     | 
| 
      
 41 
     | 
    
         
            +
            				rdoc.options << '--charset' << 'utf-8'
         
     | 
| 
      
 42 
     | 
    
         
            +
            				rdoc.options << '--format'  << ENV['format']
         
     | 
| 
      
 43 
     | 
    
         
            +
            				rdoc.rdoc_files.include("#{plugin_base}/lib/**/*.rb")
         
     | 
| 
      
 44 
     | 
    
         
            +
            				rdoc.rdoc_files.include("#{plugin_base}/app/**/*.rb")
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            				%w( README README.rdoc ).each do |readme|
         
     | 
| 
      
 47 
     | 
    
         
            +
            					if File.exist?("#{plugin_base}/#{readme}")
         
     | 
| 
      
 48 
     | 
    
         
            +
            						rdoc.main = "#{plugin_base}/#{readme}"
         
     | 
| 
      
 49 
     | 
    
         
            +
            						break
         
     | 
| 
      
 50 
     | 
    
         
            +
            					end
         
     | 
| 
      
 51 
     | 
    
         
            +
            				end
         
     | 
| 
      
 52 
     | 
    
         
            +
            				%w( TODO.org MIT-LICENSE LICENSE CHANGELOG README README.rdoc ).each do |possible_file|
         
     | 
| 
      
 53 
     | 
    
         
            +
            					if File.exist?("#{plugin_base}/#{possible_file}")
         
     | 
| 
      
 54 
     | 
    
         
            +
            						rdoc.rdoc_files.include("#{plugin_base}/#{possible_file}") 
         
     | 
| 
      
 55 
     | 
    
         
            +
            					end
         
     | 
| 
      
 56 
     | 
    
         
            +
            				end
         
     | 
| 
      
 57 
     | 
    
         
            +
            			}
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            		end
         
     | 
| 
      
 60 
     | 
    
         
            +
            	end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
            	task :parse_readme => :environment do
         
     | 
| 
      
 63 
     | 
    
         
            +
            		require 'rdoc/markup/to_html'
         
     | 
| 
      
 64 
     | 
    
         
            +
            		h = RDoc::Markup::ToHtml.new
         
     | 
| 
      
 65 
     | 
    
         
            +
            		puts h.convert( File.read('README.rdoc') )
         
     | 
| 
      
 66 
     | 
    
         
            +
            	end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/tasks/rcov.rake
    ADDED
    
    | 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #	This is from Advanced Rails Recipes, page 277
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            namespace :test do
         
     | 
| 
      
 5 
     | 
    
         
            +
            	
         
     | 
| 
      
 6 
     | 
    
         
            +
            	desc 'Tracks test coverage with rcov'
         
     | 
| 
      
 7 
     | 
    
         
            +
            	task :coverage do
         
     | 
| 
      
 8 
     | 
    
         
            +
            		rm_f "coverage"
         
     | 
| 
      
 9 
     | 
    
         
            +
            		rm_f "coverage.data"
         
     | 
| 
      
 10 
     | 
    
         
            +
            		
         
     | 
| 
      
 11 
     | 
    
         
            +
            		unless PLATFORM['i386-mswin32']
         
     | 
| 
      
 12 
     | 
    
         
            +
            			rcov = "rcov --sort coverage --rails --aggregate coverage.data " <<
         
     | 
| 
      
 13 
     | 
    
         
            +
            							"--text-summary -Ilib -T " <<
         
     | 
| 
      
 14 
     | 
    
         
            +
            							"-x gems/*,db/migrate/*,jrails/*/*" <<
         
     | 
| 
      
 15 
     | 
    
         
            +
            							',\(eval\),\(recognize_optimized\),\(erb\)' <<    # needed in jruby
         
     | 
| 
      
 16 
     | 
    
         
            +
            							",yaml,yaml/*,lib/tmail/parser.y,jruby.jar!/*" << # needed in jruby
         
     | 
| 
      
 17 
     | 
    
         
            +
            							",html_test/*/*" <<
         
     | 
| 
      
 18 
     | 
    
         
            +
            							",html_test_extension/*/*"
         
     | 
| 
      
 19 
     | 
    
         
            +
            		else
         
     | 
| 
      
 20 
     | 
    
         
            +
            			rcov = "rcov.cmd --sort coverage --rails --aggregate " <<
         
     | 
| 
      
 21 
     | 
    
         
            +
            							"coverage.data --text-summary -Ilib -T"
         
     | 
| 
      
 22 
     | 
    
         
            +
            		end
         
     | 
| 
      
 23 
     | 
    
         
            +
            		
         
     | 
| 
      
 24 
     | 
    
         
            +
            		dirs = Dir.glob("test/**/*_test.rb").collect{|f|File.dirname(f)}.uniq
         
     | 
| 
      
 25 
     | 
    
         
            +
            		lastdir = dirs.pop
         
     | 
| 
      
 26 
     | 
    
         
            +
            		dirs.each do |dir|
         
     | 
| 
      
 27 
     | 
    
         
            +
            			system("#{rcov} --no-html #{dir}/*_test.rb")
         
     | 
| 
      
 28 
     | 
    
         
            +
            		end
         
     | 
| 
      
 29 
     | 
    
         
            +
            		system("#{rcov} --html #{lastdir}/*_test.rb") unless lastdir.nil?
         
     | 
| 
      
 30 
     | 
    
         
            +
            		
         
     | 
| 
      
 31 
     | 
    
         
            +
            		unless PLATFORM['i386-mswin32']
         
     | 
| 
      
 32 
     | 
    
         
            +
            #	jruby-1.5.0.RC1 > PLATFORM 
         
     | 
| 
      
 33 
     | 
    
         
            +
            #	 => "java" 
         
     | 
| 
      
 34 
     | 
    
         
            +
            #			system("open coverage/index.html") if PLATFORM['darwin']
         
     | 
| 
      
 35 
     | 
    
         
            +
            			system("open coverage/index.html")
         
     | 
| 
      
 36 
     | 
    
         
            +
            		else
         
     | 
| 
      
 37 
     | 
    
         
            +
            			system("\"C:/Program Files/Mozilla Firefox/firefox.exe\" " +
         
     | 
| 
      
 38 
     | 
    
         
            +
            						 "coverage/index.html")
         
     | 
| 
      
 39 
     | 
    
         
            +
            		end
         
     | 
| 
      
 40 
     | 
    
         
            +
            	end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,276 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification 
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: jakewendt-authorized
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version 
         
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 19
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 6 
     | 
    
         
            +
              segments: 
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 4
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.1.4
         
     | 
| 
      
 11 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 12 
     | 
    
         
            +
            authors: 
         
     | 
| 
      
 13 
     | 
    
         
            +
            - George 'Jake' Wendt
         
     | 
| 
      
 14 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 15 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 16 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            date: 2010-10-25 00:00:00 -07:00
         
     | 
| 
      
 19 
     | 
    
         
            +
            default_executable: 
         
     | 
| 
      
 20 
     | 
    
         
            +
            dependencies: 
         
     | 
| 
      
 21 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 22 
     | 
    
         
            +
              name: i18n
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 25 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 26 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 27 
     | 
    
         
            +
                - - "="
         
     | 
| 
      
 28 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 29 
     | 
    
         
            +
                    hash: 29
         
     | 
| 
      
 30 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 31 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 32 
     | 
    
         
            +
                    - 3
         
     | 
| 
      
 33 
     | 
    
         
            +
                    - 7
         
     | 
| 
      
 34 
     | 
    
         
            +
                    version: 0.3.7
         
     | 
| 
      
 35 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: *id001
         
     | 
| 
      
 37 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 38 
     | 
    
         
            +
              name: rails
         
     | 
| 
      
 39 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 40 
     | 
    
         
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 41 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 42 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 43 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 44 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 45 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 46 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 47 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 48 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 49 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: *id002
         
     | 
| 
      
 51 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 52 
     | 
    
         
            +
              name: activerecord
         
     | 
| 
      
 53 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 54 
     | 
    
         
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 55 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 56 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 57 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 58 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 59 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 60 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 61 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 62 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 63 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: *id003
         
     | 
| 
      
 65 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 66 
     | 
    
         
            +
              name: activeresource
         
     | 
| 
      
 67 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 68 
     | 
    
         
            +
              requirement: &id004 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 69 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 70 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 71 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 72 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 73 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 74 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 75 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 76 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 77 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 78 
     | 
    
         
            +
              version_requirements: *id004
         
     | 
| 
      
 79 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 80 
     | 
    
         
            +
              name: activesupport
         
     | 
| 
      
 81 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 82 
     | 
    
         
            +
              requirement: &id005 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 83 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 84 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 85 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 86 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 87 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 88 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 89 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 90 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 91 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 92 
     | 
    
         
            +
              version_requirements: *id005
         
     | 
| 
      
 93 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 94 
     | 
    
         
            +
              name: actionmailer
         
     | 
| 
      
 95 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 96 
     | 
    
         
            +
              requirement: &id006 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 97 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 98 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 99 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 100 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 101 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 102 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 103 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 104 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 105 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 106 
     | 
    
         
            +
              version_requirements: *id006
         
     | 
| 
      
 107 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 108 
     | 
    
         
            +
              name: actionpack
         
     | 
| 
      
 109 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 110 
     | 
    
         
            +
              requirement: &id007 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 111 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 112 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 113 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 114 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 115 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 116 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 117 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 118 
     | 
    
         
            +
                    version: "2"
         
     | 
| 
      
 119 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 120 
     | 
    
         
            +
              version_requirements: *id007
         
     | 
| 
      
 121 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 122 
     | 
    
         
            +
              name: jakewendt-rails_helpers
         
     | 
| 
      
 123 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 124 
     | 
    
         
            +
              requirement: &id008 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 125 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 126 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 127 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 128 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 129 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 130 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 131 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 132 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 133 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 134 
     | 
    
         
            +
              version_requirements: *id008
         
     | 
| 
      
 135 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 136 
     | 
    
         
            +
              name: jakewendt-ruby_extension
         
     | 
| 
      
 137 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 138 
     | 
    
         
            +
              requirement: &id009 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 139 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 140 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 141 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 142 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 143 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 144 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 145 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 146 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 147 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 148 
     | 
    
         
            +
              version_requirements: *id009
         
     | 
| 
      
 149 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 150 
     | 
    
         
            +
              name: ryanb-acts-as-list
         
     | 
| 
      
 151 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 152 
     | 
    
         
            +
              requirement: &id010 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 153 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 154 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 155 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 156 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 157 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 158 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 159 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 160 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 161 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 162 
     | 
    
         
            +
              version_requirements: *id010
         
     | 
| 
      
 163 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 164 
     | 
    
         
            +
              name: thoughtbot-factory_girl
         
     | 
| 
      
 165 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 166 
     | 
    
         
            +
              requirement: &id011 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 167 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 168 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 169 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 170 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 171 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 172 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 173 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 174 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 175 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 176 
     | 
    
         
            +
              version_requirements: *id011
         
     | 
| 
      
 177 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 178 
     | 
    
         
            +
              name: jakewendt-assert_this_and_that
         
     | 
| 
      
 179 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 180 
     | 
    
         
            +
              requirement: &id012 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 181 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 182 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 183 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 184 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 185 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 186 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 187 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 188 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 189 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 190 
     | 
    
         
            +
              version_requirements: *id012
         
     | 
| 
      
 191 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 192 
     | 
    
         
            +
              name: jakewendt-calnet_authenticated
         
     | 
| 
      
 193 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 194 
     | 
    
         
            +
              requirement: &id013 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 195 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 196 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 197 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 198 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 199 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 200 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 201 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 202 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 203 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 204 
     | 
    
         
            +
              version_requirements: *id013
         
     | 
| 
      
 205 
     | 
    
         
            +
            description: longer description of your gem
         
     | 
| 
      
 206 
     | 
    
         
            +
            email: github@jake.otherinbox.com
         
     | 
| 
      
 207 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
      
 211 
     | 
    
         
            +
            extra_rdoc_files: 
         
     | 
| 
      
 212 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
      
 213 
     | 
    
         
            +
            files: 
         
     | 
| 
      
 214 
     | 
    
         
            +
            - app/controllers/roles_controller.rb
         
     | 
| 
      
 215 
     | 
    
         
            +
            - app/models/role.rb
         
     | 
| 
      
 216 
     | 
    
         
            +
            - config/routes.rb
         
     | 
| 
      
 217 
     | 
    
         
            +
            - generators/authorized/USAGE
         
     | 
| 
      
 218 
     | 
    
         
            +
            - generators/authorized/authorized_generator.rb
         
     | 
| 
      
 219 
     | 
    
         
            +
            - generators/authorized/templates/functional/roles_controller_test.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - generators/authorized/templates/migrations/create_roles.rb
         
     | 
| 
      
 221 
     | 
    
         
            +
            - generators/authorized/templates/migrations/create_roles_users.rb
         
     | 
| 
      
 222 
     | 
    
         
            +
            - generators/authorized/templates/stylesheets/authorized.css
         
     | 
| 
      
 223 
     | 
    
         
            +
            - generators/authorized/templates/unit/role_test.rb
         
     | 
| 
      
 224 
     | 
    
         
            +
            - lib/authorized.rb
         
     | 
| 
      
 225 
     | 
    
         
            +
            - lib/authorized/authorization.rb
         
     | 
| 
      
 226 
     | 
    
         
            +
            - lib/authorized/controller.rb
         
     | 
| 
      
 227 
     | 
    
         
            +
            - lib/authorized/core_extension.rb
         
     | 
| 
      
 228 
     | 
    
         
            +
            - lib/authorized/factories.rb
         
     | 
| 
      
 229 
     | 
    
         
            +
            - lib/authorized/factory_test_helper.rb
         
     | 
| 
      
 230 
     | 
    
         
            +
            - lib/authorized/helper.rb
         
     | 
| 
      
 231 
     | 
    
         
            +
            - lib/authorized/pending.rb
         
     | 
| 
      
 232 
     | 
    
         
            +
            - lib/authorized/permissive_controller.rb
         
     | 
| 
      
 233 
     | 
    
         
            +
            - lib/authorized/resourceful_controller.rb
         
     | 
| 
      
 234 
     | 
    
         
            +
            - lib/authorized/tasks.rb
         
     | 
| 
      
 235 
     | 
    
         
            +
            - lib/authorized/user_model.rb
         
     | 
| 
      
 236 
     | 
    
         
            +
            - lib/tasks/application.rake
         
     | 
| 
      
 237 
     | 
    
         
            +
            - lib/tasks/database.rake
         
     | 
| 
      
 238 
     | 
    
         
            +
            - lib/tasks/documentation.rake
         
     | 
| 
      
 239 
     | 
    
         
            +
            - lib/tasks/rcov.rake
         
     | 
| 
      
 240 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
      
 241 
     | 
    
         
            +
            has_rdoc: true
         
     | 
| 
      
 242 
     | 
    
         
            +
            homepage: http://github.com/jakewendt/authorized
         
     | 
| 
      
 243 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
      
 245 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 246 
     | 
    
         
            +
            rdoc_options: 
         
     | 
| 
      
 247 
     | 
    
         
            +
            - --charset=UTF-8
         
     | 
| 
      
 248 
     | 
    
         
            +
            require_paths: 
         
     | 
| 
      
 249 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 250 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 251 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 252 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 253 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 254 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 255 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 256 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 257 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 258 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 259 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 260 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 261 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 262 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 263 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 264 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 265 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 266 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 267 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 268 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
      
 270 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 271 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
      
 272 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 273 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 274 
     | 
    
         
            +
            summary: one-line summary of your gem
         
     | 
| 
      
 275 
     | 
    
         
            +
            test_files: []
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     |