123456789_123456789_123456789_123456789_123456789_

Class: ActiveSupport::Editor

Relationships & Source Files
Inherits: Object
Defined in: activesupport/lib/active_support/editor.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(url_pattern) ⇒ Editor

[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 51

def initialize(url_pattern)
  @url_pattern = url_pattern
end

Class Method Details

.current

Returns the current editor pattern if it is known. First check for the RAILS_EDITOR environment variable, and if it's missing, check for the EDITOR environment variable.

[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 31

def current
  if @current == false
    @current = if editor_name = ENV["RAILS_EDITOR"] || ENV["EDITOR"]
      @editors[editor_name]
    end
  end
  @current
end

.find(name)

This method is for internal use only.
[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 42

def find(name)
  @editors[name]
end

.register(name, url_pattern, aliases: [])

Registers a URL pattern for opening file in a given editor. This allows ::Rails to generate clickable links to control known editors.

Example:

<code>register</code>("myeditor", "myeditor://%s:%d")
[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 20

def register(name, url_pattern, aliases: [])
  editor = new(url_pattern)
  @editors[name] = editor
  aliases.each do |a|
    @editors[a] = editor
  end
end

.reset

[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 46

def reset
  @current = false
end

Instance Method Details

#url_for(path, line)

[ GitHub ]

  
# File 'activesupport/lib/active_support/editor.rb', line 55

def url_for(path, line)
  sprintf(@url_pattern, path, line)
end