class PryRails::ShowModels

Public Instance Methods

colorize_matches(string) click to toggle source
# File lib/pry-rails/commands/show_models.rb, line 66
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 26
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 36
def display_mongoid_models
  return unless defined?(Mongoid::Document)

  models = []

  ObjectSpace.each_object do |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 74
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 7
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 17
def process
  Rails.application.eager_load!

  @formatter = PryRails::ModelFormatter.new

  display_activerecord_models
  display_mongoid_models
end