class BunchFinder
File search functions
Attributes
config_dir[RW]
Public Class Methods
new()
click to toggle source
# File lib/bunch/url_generator.rb, line 168 def initialize config_dir = `osascript -e 'tell app "#{TARGET_APP}" to get preference "Folder"'`.strip config_dir = File.expand_path(config_dir) if File.directory?(config_dir) @config_dir = config_dir else throw 'Unable to retrieve Bunches Folder' end end
Public Instance Methods
bunches_to_items()
click to toggle source
# File lib/bunch/url_generator.rb, line 178 def bunches_to_items items = [] `osascript -e 'tell app "#{TARGET_APP}" to list bunches'`.strip.split(/,/).each do |b| filename = b.strip items << MenuItem.new(filename, filename, filename) end items end
choose_bunch()
click to toggle source
# File lib/bunch/url_generator.rb, line 199 def choose_bunch items = bunches_to_items # items.map! do |item| # item.title = File.basename(item.title, '.bunch') # item.value = File.basename(item.title, '.bunch') # item # end menu = Menu.new(items) menu.choose('Select a Bunch') end
choose_snippet()
click to toggle source
# File lib/bunch/url_generator.rb, line 210 def choose_snippet items = files_to_items(@config_dir, '*') menu = Menu.new(items) menu.choose('Select a Snippet') end
contents(snippet)
click to toggle source
# File lib/bunch/url_generator.rb, line 220 def contents(snippet) IO.read(File.join(@config_dir, snippet)) end
expand_path(file)
click to toggle source
# File lib/bunch/url_generator.rb, line 216 def expand_path(file) File.join(@config_dir, file) end
files_to_items(dir, pattern)
click to toggle source
# File lib/bunch/url_generator.rb, line 187 def files_to_items(dir, pattern) Dir.chdir(dir) items = [] Dir.glob(pattern) do |f| if f.text? filename = File.basename(f) items << MenuItem.new(filename, filename, filename) end end items end
fill_variables(text)
click to toggle source
# File lib/bunch/url_generator.rb, line 231 def fill_variables(text) vars = variables(text) output = [] unless vars.empty? puts 'Enter values for variables' vars.each do |var| res = get_line(var) output << [var, CGI.escape(res)] unless res.empty? end end output end
variables(content)
click to toggle source
# File lib/bunch/url_generator.rb, line 224 def variables(content) matches = content.scan(/\$\{(\S+)(:.*?)?\}/) variables = [] matches.each { |m| variables << m[0].sub(/:\S+$/, '') } variables.uniq end