Sha256: 7ce714c8161b26a75e113d28e498b759321943a3abed7260dc2981f5673262d6
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
module Footnotes module Notes class ControllerNote < AbstractNote def initialize(controller) @controller = controller end def row :edit end def link Footnotes::Filter.prefix(controller_filename, controller_line_number + 1, 3) end def valid? prefix? && controller_filename && File.exist?(controller_filename) end protected def controller_path @controller_path = @controller.class.name.underscore end def controller_filename @controller_filename ||= Gem.find_files(controller_path).first # tnx https://github.com/MasterLambaster end def controller_text @controller_text ||= IO.read(controller_filename) end def action_index (controller_text =~ /def\s+#{@controller.action_name}[\s\(]/) end def controller_line_number lines_from_index(controller_text, action_index) || 0 end def lines_from_index(string, index) return nil if string.blank? || index.blank? lines = string.respond_to?(:to_a) ? string.to_a : string.lines.to_a running_length = 0 lines.each_with_index do |line, i| running_length += line.length if running_length > index return i end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails-footnotes-7.0.0 | lib/rails-footnotes/notes/controller_note.rb |