class RailsIdle::Collector::Views

Public Instance Methods

collect() click to toggle source
# File lib/rails-idle/collector/views.rb, line 4
def collect
  view_paths.each do |path|
    views = Dir[path + '/**/*.*']
    views.each do |view|
      view = modify_prefix(view)
      next unless view
      if view =~ extensions_regexp
        _collect view
      end
    end
  end
end
subscribe() click to toggle source
# File lib/rails-idle/collector/views.rb, line 17
def subscribe
  %w{render_template render_partial render_collection}.each do |event|
    ActiveSupport::Notifications.subscribe("#{event}.action_view") do |name, started, finished, unique_id, payload|
      orig_prefix = ''
      view = modify_prefix payload[:identifier], orig_prefix
      next unless view
      execution_time = finished.to_f - started.to_f 
      push(view, execution_time)
      if payload[:layout] && view =~ /\.\w+\.\w+$/
        # just_view = extract_view  payload[:identifier], view
        # prefix = payload[:identifier].gsub(just_view, '')
        extension = view.match(/\.\w+\.\w+$/)[0]
        layout = orig_prefix + '/' + payload[:layout] + extension
        layout = modify_prefix layout
        push(layout, execution_time) if layout
      end
    end
  end
end

Private Instance Methods

build_extensions_regexp() click to toggle source
# File lib/rails-idle/collector/views.rb, line 47
def build_extensions_regexp
  formats = %w(html text)
  handlers = ActionView::Template.template_handler_extensions
  exts = view_extentions.join('|').gsub(/\./, '\.')
  Regexp.new "(#{exts})$"
end
build_view_extentions() click to toggle source
# File lib/rails-idle/collector/views.rb, line 58
def build_view_extentions
  extentions = []
  format_extensions = %w(html text)
  handler_extensions = ActionView::Template.template_handler_extensions
  handler_extensions.each do |handler_ext|
    extentions << ".#{handler_ext}"
    format_extensions.each do |format_ext|
      extentions << ".#{format_ext}.#{handler_ext}"
    end
  end
  extentions
end
extensions_regexp() click to toggle source
# File lib/rails-idle/collector/views.rb, line 43
def extensions_regexp
  @extensions_regexp ||= build_extensions_regexp
end
modify_prefix(identifier, orig_prefix = '') click to toggle source
# File lib/rails-idle/collector/views.rb, line 71
def modify_prefix(identifier, orig_prefix = '')
  view_paths.each_with_index do |path, idx|
    orig_prefix.replace path
    return identifier.gsub(path + '/', '') if identifier.start_with?(path)
  end
  orig_prefix.replace ''
  nil
end
view_extentions() click to toggle source
# File lib/rails-idle/collector/views.rb, line 54
def view_extentions
  @view_extentions ||= build_view_extentions
end
view_paths() click to toggle source
# File lib/rails-idle/collector/views.rb, line 39
def view_paths
  ActionController::Base.new.view_paths.map(&:to_path)
end