Class: CodeSnippet::Manager
- Inherits:
-
Object
- Object
- CodeSnippet::Manager
- Defined in:
- lib/code_snippet/manager.rb
Overview
Manager looks after a set of snippets
Constant Summary collapse
- DEFAULT_QUERY =
->(_snip) { return true }
Instance Attribute Summary collapse
-
#snippets ⇒ Object
readonly
Returns the value of attribute snippets.
Instance Method Summary collapse
- #filter(query = DEFAULT_QUERY) ⇒ Object
- #filter_by_extension(ext) ⇒ Object
- #find(search_term, lang = nil) ⇒ Object
-
#initialize(snippet_dir) ⇒ Manager
constructor
A new instance of Manager.
- #load_snippets ⇒ Object
Constructor Details
#initialize(snippet_dir) ⇒ Manager
Returns a new instance of Manager.
8 9 10 11 |
# File 'lib/code_snippet/manager.rb', line 8 def initialize(snippet_dir) @snippet_dir = snippet_dir @snippets = [] end |
Instance Attribute Details
#snippets ⇒ Object (readonly)
Returns the value of attribute snippets.
6 7 8 |
# File 'lib/code_snippet/manager.rb', line 6 def snippets @snippets end |
Instance Method Details
#filter(query = DEFAULT_QUERY) ⇒ Object
21 22 23 24 25 |
# 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) ⇒ Object
43 44 45 46 47 48 |
# 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) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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 ⇒ Object
13 14 15 16 17 18 19 |
# 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 |