class PryRails::ShowModels

Public Instance Methods

colorize_matches(string) click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 71
def colorize_matches(string)
  if Pry.color
    string.to_s.gsub(grep_regex) { |s| "\e[7m#{s}\e[27m" }
  else
    string
  end
end
display_activerecord_models() click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 27
def display_activerecord_models
  return unless defined?(ActiveRecord::Base)

  models = ActiveRecord::Base.descendants

  models.sort_by(&:to_s).each do |model|
    print_unless_filtered @formatter.format_active_record(model)
  end
end
display_mongoid_models() click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 37
def display_mongoid_models
  return unless defined?(Mongoid::Document)

  models = []

  ObjectSpace.each_object do |o|
    # If this is deprecated, calling any methods on it will emit a warning,
    # so just back away slowly.
    next if ActiveSupport::Deprecation::DeprecationProxy === o

    is_model = false

    begin
      is_model = o.class == Class && o.ancestors.include?(Mongoid::Document)
    rescue
      # If it's a weird object, it's not what we want anyway.
    end

    models << o if is_model
  end

  models.sort_by(&:to_s).each do |model|
    print_unless_filtered @formatter.format_mongoid(model)
  end
end
grep_regex() click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 79
def grep_regex
  @grep_regex ||= Regexp.new(opts[:G], Regexp::IGNORECASE)
end
options(opt) click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 8
  def options(opt)
    opt.banner unindent <<-USAGE
      Usage: show-models

      show-models displays the current Rails app's models.
    USAGE

    opt.on :G, "grep", "Filter output by regular expression", :argument => true
  end
print_unless_filtered(str) click to toggle source
process() click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 18
def process
  Rails.application.eager_load!

  @formatter = PryRails::ModelFormatter.new

  display_activerecord_models
  display_mongoid_models
end