Created
March 10, 2009 20:37
-
-
Save roovo/77117 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 as per current merb source *** | |
# ********************************************************************** | |
# -------------------------------------------------------------------------------------------- | |
# 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 | |
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 | |
# -------------------------------------------------------------------------------------------- | |
# KLASSES TO LOAD: | |
# ["/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/home_postal_address.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_new_membership.rb | |
# loading AdminEnteredNewMembership | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/a_renewal.rb | |
# KLASSES AFTER: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/membership_application.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.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_boat_storage_payment_form.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_online_application.rb"] | |
# FAILED KLASSES AFTER: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_new_membership.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_renewal.rb"] | |
# -------------------------------------------------------------------------------------------- | |
# -------------------------------------------------------------------------------------------- | |
# KLASSES TO LOAD: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/membership_application.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.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_boat_storage_payment_form.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_online_application.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_new_membership.rb", | |
# "/Users/rupert/Sites/home/merb/apsc_new/app/models/a_renewal.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/admin_entered_renewal.rb | |
# loading AdminEnteredRenewal | |
# KLASS BEING LOADED: /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/a_renewal.rb | |
# KLASSES AFTER: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.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/admin_entered_new_membership.rb"] | |
# FAILED KLASSES AFTER: [] | |
# -------------------------------------------------------------------------------------------- | |
# -------------------------------------------------------------------------------------------- | |
# KLASSES TO LOAD: | |
# ["/Users/rupert/Sites/home/merb/apsc_new/app/models/home_phone_number.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/admin_entered_new_membership.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/admin_entered_new_membership.rb | |
# loading AdminEnteredNewMembership | |
# KLASSES AFTER: ["/Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_boat_storage_payment_form.rb"] | |
# FAILED KLASSES AFTER: [] | |
# KLASS BEING LOADED: /Users/rupert/Sites/home/merb/apsc_new/app/models/admin_entered_boat_storage_payment_form.rb | |
# KLASSES AFTER: [] | |
# FAILED KLASSES AFTER: [] | |
# -------------------------------------------------------------------------------------------- | |
# <snipedy snip> | |
# Then the problem is manifesting itself when at the merb 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:status>}> | |
# this is bad - AdminEnteredNewMembership should have the properties inherited from MembershipApplication |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment