class SublimeTextKit::Snippets::Snippet

Constants

ALLOWED_METHODS
ELEMENT_TRANSLATIONS

Attributes

content_element[R]
description_element[R]
document[R]
scope_element[R]
trigger_element[R]

Public Class Methods

new(document) click to toggle source
# File lib/sublime_text_kit/snippets/snippet.rb, line 17
def initialize document
  @document = document
  assign_elements
end

Private Instance Methods

assign_elements() click to toggle source
# File lib/sublime_text_kit/snippets/snippet.rb, line 30
def assign_elements
  root_element.elements.each do |element|
    name = element.name

    fail StandardError, "Unknown element: #{element}." unless ELEMENT_TRANSLATIONS.key? name

    instance_variable_set "@#{ELEMENT_TRANSLATIONS[name]}_element", element
  end
end
method_missing(name, *arguments, &block) click to toggle source
Calls superclass method
# File lib/sublime_text_kit/snippets/snippet.rb, line 44
def method_missing name, *arguments, &block
  return super unless respond_to_missing? name

  String((__send__("#{name}_element") || REXML::Element.new).text)
end
respond_to_missing?(name, include_private = false) click to toggle source

:reek: BooleanParameter

Calls superclass method
# File lib/sublime_text_kit/snippets/snippet.rb, line 51
def respond_to_missing? name, include_private = false
  ALLOWED_METHODS.include?(name) || super
end
root_element() click to toggle source
# File lib/sublime_text_kit/snippets/snippet.rb, line 40
def root_element
  document.root || REXML::Element.new
end