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