Created
March 10, 2009 20:38
-
-
Save roovo/77118 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# *************************************************** | |
# *** with load_classes_with_requirements patched *** | |
# *************************************************** | |
# -------------------------------------------------------------------------------------------- | |
# The datamapper models I've been having probs with | |
# admin_entered_new_membership.rb | |
puts "loading AdminEnteredNewMembership" | |
class AdminEnteredNewMembership < MembershipApplication | |
include DataMapper::Resource | |
end | |
# admin_entered_renewal.rb | |
puts "loading AdminEnteredRenewal" | |
class AdminEnteredRenewal < MembershipApplication | |
include DataMapper::Resource | |
end | |
# membership_application.rb | |
puts "loading MembershipApplication" | |
class MembershipApplication | |
include DataMapper::Resource | |
include MembershipApplicationBoatStoragePaymentForm | |
end | |
# membership_application_boat_storage_form.rb | |
puts "loading MembershipApplicationBoatStoragePaymentForm" | |
module MembershipApplicationBoatStoragePaymentForm | |
end | |
# -------------------------------------------------------------------------------------------- | |
# load_classes_with_requirements as it is, but printing debug info | |
def load_classes_with_requirements(klasses) | |
klasses.uniq! | |
while klasses.size > 0 | |
puts "KLASSES TO LOAD: #{klasses.inspect}" | |
# Note size to make sure things are loading | |
size_at_start = klasses.size | |
# List of failed classes | |
failed_classes = [] | |
# Map classes to exceptions | |
error_map = {} | |
klasses.each do |klass| | |
puts "KLASS BEING LOADED: #{klass}" | |
# klasses.delete(klass) | |
begin | |
load_file klass | |
rescue NameError => ne | |
error_map[klass] = ne | |
failed_classes.push(klass) | |
end | |
end | |
klasses.clear | |
puts "KLASSES AFTER: #{klasses.inspect}" | |
puts "FAILED KLASSES AFTER: #{failed_classes.inspect}" | |
...... | |
# -------------------------------------------------------------------------------------------- | |
# When I run the merb app: | |
DEBUG=true bin/merb -i | |
# I get the following output: | |
# <snipedy snip> | |
# ~ Loading: Merb::BootLoader::LoadClasses | |
# ~ Parent pid: 10084 | |
# loading AdminEnteredNewMembership | |
# loading AdminEnteredRenewal | |
# loading MembershipApplication | |
# loading MembershipApplicationBoatStoragePaymentForm | |
# -------------------------------------------------------------------------------------------- | |
# ENTER LOAD_CLASSES_WITH_REQUIREMENTS WITH KLASSES: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/mobile_phone_number.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/membership_application.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/home_postal_address.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/boat_storage_payment_form.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_renewal.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_new_membership.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_boat_storage_payment_form.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_renewal.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_online_application.rb"] | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/mobile_phone_number.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/membership_application.rb | |
# loading MembershipApplication | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/home_postal_address.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/boat_storage_payment_form.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_renewal.rb | |
# loading AdminEnteredRenewal | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_new_membership.rb | |
# loading AdminEnteredNewMembership | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_boat_storage_payment_form.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/a_renewal.rb | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/a_online_application.rb | |
# KLASSES AFTER: [] | |
# FAILED KLASSES AFTER: [] | |
# -------------------------------------------------------------------------------------------- | |
# <snipedy snip> | |
# Then at the irb prompt: | |
p MembershipApplication.properties | |
#<PropertySet:{#<Property:MembershipApplication:id>,#<Property:MembershipApplication:type>,#<Property:MembershipApplication:member_id>,#<Property:MembershipApplication:status>,#<Property:MembershipApplication:year>,#<Property:MembershipApplication:member_type>,#<Property:MembershipApplication:ap_connection>,#<Property:MembershipApplication:ap_connection_other>,#<Property:MembershipApplication:atlas_status>,#<Property:MembershipApplication:created_on>}> | |
p AdminEnteredRenewal.properties | |
#<PropertySet:{#<Property:AdminEnteredRenewal:id>,#<Property:AdminEnteredRenewal:type>,#<Property:AdminEnteredRenewal:member_id>,#<Property:AdminEnteredRenewal:status>,#<Property:AdminEnteredRenewal:year>,#<Property:AdminEnteredRenewal:member_type>,#<Property:AdminEnteredRenewal:ap_connection>,#<Property:AdminEnteredRenewal:ap_connection_other>,#<Property:AdminEnteredRenewal:atlas_status>,#<Property:AdminEnteredRenewal:created_on>}> | |
p AdminEnteredNewMembership.properties | |
#<PropertySet:{#<Property:AdminEnteredNewMembership:id>,#<Property:AdminEnteredNewMembership:type>,#<Property:AdminEnteredNewMembership:member_id>,#<Property:AdminEnteredNewMembership:status>,#<Property:AdminEnteredNewMembership:year>,#<Property:AdminEnteredNewMembership:member_type>,#<Property:AdminEnteredNewMembership:ap_connection>,#<Property:AdminEnteredNewMembership:ap_connection_other>,#<Property:AdminEnteredNewMembership:atlas_status>,#<Property:AdminEnteredNewMembership:created_on>}> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment