class SnipmateToYas::SnippetFsWriter
Writes a list of snippets to the file system
Public Class Methods
new(snippets, base_directory)
click to toggle source
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 4 def initialize(snippets, base_directory) @snippets = snippets @base_directory = base_directory @snippets_directory = File.join( base_directory, "#{@snippets.mode.emacs_name}-mode" ) end
Public Instance Methods
write()
click to toggle source
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 12 def write FileUtils.mkdir_p(@snippets_directory) write_snippets write_yas_parents write_aliases_links end
Protected Instance Methods
filename(key)
click to toggle source
Cleaned up filename from key
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 46 def filename(key) return '_' if key.match(/^\.$/) key.gsub(%r{[\x00\/\\:\*\?\"<>\|]}, '_') end
write_aliases_links()
click to toggle source
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 36 def write_aliases_links @snippets.mode.aliases.each do |mode_alias| File.symlink( "#{@snippets.mode.emacs_name}-mode", File.join(@base_directory, "#{mode_alias}-mode") ) end end
write_snippets()
click to toggle source
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 21 def write_snippets @snippets.each do |snippet| path = File.join(@snippets_directory, filename(snippet.expand_key)) File.open(path, 'w') { |f| f << snippet.text } end end
write_yas_parents()
click to toggle source
# File lib/snipmate_to_yas/snippet_fs_writer.rb, line 28 def write_yas_parents parent_mode = @snippets.mode.parent return unless parent_mode path = File.join(@snippets_directory, '.yas-parents') File.open(path, 'w') { |f| f << "#{parent_mode.emacs_name}-mode" } end