From 1c26dd5afd7753ebd2cf4e7364c26266a71945de Mon Sep 17 00:00:00 2001 From: Ryan Fitzgerald Date: Tue, 6 Nov 2018 09:47:34 -0800 Subject: [PATCH] Fix Mongoid support for newer versions Apparently Mongoid moved some stuff around at some point. --- lib/pry-rails/model_formatter.rb | 34 +++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/pry-rails/model_formatter.rb b/lib/pry-rails/model_formatter.rb index a34cfb4..490e7cf 100644 --- a/lib/pry-rails/model_formatter.rb +++ b/lib/pry-rails/model_formatter.rb @@ -49,12 +49,12 @@ module PryRails model.relations.each do |other_model, ref| options = [] - options << 'autosave' if ref.options[:autosave] - options << 'autobuild' if ref.options[:autobuild] - options << 'validate' if ref.options[:validate] + options << 'autosave' if ref.options[:autosave] || ref.autosave? + options << 'autobuild' if ref.options[:autobuild] || ref.autobuilding? + options << 'validate' if ref.options[:validate] || ref.validate? - if ref.options[:dependent] - options << "dependent-#{ref.options[:dependent]}" + if ref.options[:dependent] || ref.dependent + options << "dependent-#{ref.options[:dependent] || ref.dependent}" end out.push format_association \ @@ -82,13 +82,23 @@ module PryRails end def kind_of_relation(relation) - case relation.to_s.sub(/^Mongoid::Relations::/, '') - when 'Referenced::Many' then 'has_many' - when 'Referenced::One' then 'has_one' - when 'Referenced::In' then 'belongs_to' - when 'Embedded::Many' then 'embeds_many' - when 'Embedded::One' then 'embeds_one' - when 'Embedded::In' then 'embedded_in' + case relation.to_s.sub(/^Mongoid::(Relations::|Association::)/, '') + when 'Referenced::Many', 'Referenced::HasMany::Proxy' + 'has_many' + when 'Referenced::One', 'Referenced::HasOne::Proxy' + 'has_one' + when 'Referenced::In', 'Referenced::BelongsTo::Proxy' + 'belongs_to' + when 'Referenced::HasAndBelongsToMany::Proxy' + 'has_and_belongs_to_many' + when 'Embedded::Many', 'Embedded::EmbedsMany::Proxy' + 'embeds_many' + when 'Embedded::One', 'Embedded::EmbedsOne::Proxy' + 'embeds_one' + when 'Embedded::In', 'Embedded::EmbeddedIn::Proxy' + 'embedded_in' + else + '(unknown relation)' end end