class Ld::Controllers

Attributes

headings[RW]
rows[RW]

Public Class Methods

new(root, models) click to toggle source
# File lib/ld/project/controllers.rb, line 5
def initialize root, models
  @root = root
  @models = models
  parse
end

Public Instance Methods

find_controller(model_name) click to toggle source
# File lib/ld/project/controllers.rb, line 31
def find_controller model_name
  @controllers.each do |c|
    if c.name.split('_controller.rb')[0] == model_name
      return c
    end
  end
  nil
end
parse() click to toggle source
# File lib/ld/project/controllers.rb, line 11
def parse
  @rows = @root.find('app/controllers').search_regexp(/_controller.rb$/).map { |c|
    model_name = c.name.split('_controller')[0].singularize
    model_name = @models.models.include?(model_name) ? model_name : nil
    lines = c.lines
    actions = lines.map{|l| l.split('def ')[1] if l.match(/def /)}.compact
    [model_name, c.name,actions.size, lines.size, c.path,actions.join(',')]
  }.sort{|a,b| b[2] <=> a[2]}
  @headings = ['所属模型名称', '控制器名','action个数', '文件行数','path', '所有action']
end
parse_by_model_name(model_name) click to toggle source
# File lib/ld/project/controllers.rb, line 22
def parse_by_model_name model_name
  controller = find_controller model_name.pluralize
  if controller
    controller_lines = controller.lines
    controller_methods = controller_lines.map{|l| l.split('def ')[1].chomp if l.match(/def /)}.compact
  end
  controller
end