class CodeSnippet::Manager
Manager
looks after a set of snippets
Constants
- DEFAULT_QUERY
Attributes
snippets[R]
Public Class Methods
new(snippet_dir)
click to toggle source
# File lib/code_snippet/manager.rb, line 8 def initialize(snippet_dir) @snippet_dir = snippet_dir @snippets = [] end
Public Instance Methods
filter(query = DEFAULT_QUERY)
click to toggle source
# File lib/code_snippet/manager.rb, line 21 def filter(query = DEFAULT_QUERY) @snippets.select do |snip| query.call(snip) end end
filter_by_extension(ext)
click to toggle source
# File lib/code_snippet/manager.rb, line 43 def filter_by_extension(ext) ext = ".#{ext}" unless ext.start_with?('.') ext_query = ->(snip) { snip.ext == ext } filter(ext_query) end
find(search_term, lang = nil)
click to toggle source
# File lib/code_snippet/manager.rb, line 27 def find(search_term, lang = nil) name_query = lambda do |snip| snip.name.include?(search_term) end results = filter(name_query) unless lang.nil? results = results.select do |snip| snip.ext == lang end end results end
load_snippets()
click to toggle source
# File lib/code_snippet/manager.rb, line 13 def load_snippets Dir.glob(File.join(@snippet_dir, '**', '*')).each do |file| next if File.directory?(file) @snippets << CodeSnippet::Snip.new_from_file(file) end end