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
# File lib/pry-rails/commands/show_models.rb, line 63 def print_unless_filtered(str) if opts.present?(:G) return unless str =~ grep_regex str = colorize_matches(str) # :( end output.puts str end
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