class Lolcommits::Configuration

Constants

LOLCOMMITS_BASE
LOLCOMMITS_ROOT

Attributes

loldir[W]

Public Class Methods

loldir_for(basename) click to toggle source

class methods

# File lib/lolcommits/configuration.rb, line 118
def self.loldir_for(basename)
  loldir = File.join(LOLCOMMITS_BASE, basename)

  if File.directory? loldir
    begin
      # ensure 755 permissions for loldir
      File.chmod(0755, loldir)
    rescue Errno::EPERM
      # abort if permissions cannot be met
      puts "FATAL: directory '#{loldir}' should be present and writeable by user '#{ENV['USER']}'"
      puts 'Try changing the directory permissions to 755'
      exit 1
    end
  else
    FileUtils.mkdir_p loldir
  end
  loldir
end
new(attributes = {}) click to toggle source
# File lib/lolcommits/configuration.rb, line 8
def initialize(attributes = {})
  attributes.each do |attr, val|
    send("#{attr}=", val)
  end
end

Public Instance Methods

archivedir() click to toggle source
# File lib/lolcommits/configuration.rb, line 30
def archivedir
  dir = File.join(loldir, 'archive')
  FileUtils.mkdir_p dir unless File.directory? dir
  dir
end
ask_for_plugin_name() click to toggle source
# File lib/lolcommits/configuration.rb, line 68
def ask_for_plugin_name
  puts_plugins
  print 'Name of plugin to configure: '
  STDIN.gets.strip
end
configuration_file() click to toggle source
# File lib/lolcommits/configuration.rb, line 19
def configuration_file
  "#{loldir}/config.yml"
end
do_configure!(plugin_name) click to toggle source

Modified by Felix to return useful values

# File lib/lolcommits/configuration.rb, line 84
def do_configure!(plugin_name)
  plugin_name = ask_for_plugin_name if plugin_name.to_s.strip.empty?

  plugin = find_plugin(plugin_name)
  return unless plugin
  config = read_configuration || {}
  plugin_config = plugin.configure_options!
  # having a plugin_config, means configuring went OK
  if plugin_config
    # save plugin and print config
    config[plugin_name] = plugin_config
    save(config)
    puts self
    puts "\nSuccessfully configured plugin: #{plugin_name} at path '#{configuration_file}'"
    return configuration_file
  else
    puts "\nAborted plugin configuration for: #{plugin_name}"
    return false
  end
end
find_plugin(plugin_name) click to toggle source
# File lib/lolcommits/configuration.rb, line 74
def find_plugin(plugin_name)
  Lolcommits::Runner.plugins.each do |plugin|
    return plugin.new(nil) if plugin.name == plugin_name
  end

  puts "Unable to find plugin: '#{plugin_name}'"
  puts_plugins
end
frames_loc() click to toggle source
# File lib/lolcommits/configuration.rb, line 60
def frames_loc
  File.join(loldir, 'tmp_frames')
end
jpg_images() click to toggle source
# File lib/lolcommits/configuration.rb, line 40
def jpg_images
  Dir.glob(File.join(loldir, '*.jpg')).sort_by { |f| File.mtime(f) }
end
jpg_images_today() click to toggle source
# File lib/lolcommits/configuration.rb, line 44
def jpg_images_today
  jpg_images.select { |f| Date.parse(File.mtime(f).to_s) == Date.today }
end
loldir() click to toggle source
# File lib/lolcommits/configuration.rb, line 23
def loldir
  return @loldir if @loldir
  basename ||= File.basename(Git.open('.').dir.to_s).sub(/^\./, 'dot')
  basename.sub!(/ /, '-')
  @loldir = Configuration.loldir_for(basename)
end
main_image(commit_sha, image_file_type = 'jpg') click to toggle source
# File lib/lolcommits/configuration.rb, line 52
def main_image(commit_sha, image_file_type = 'jpg')
  File.join loldir, "#{commit_sha}.#{image_file_type}"
end
most_recent() click to toggle source
# File lib/lolcommits/configuration.rb, line 36
def most_recent
  Dir.glob(File.join(loldir, '*.{jpg,gif}')).max_by { |f| File.mtime(f) }
end
puts_plugins() click to toggle source
# File lib/lolcommits/configuration.rb, line 64
def puts_plugins
  puts "Available plugins: #{Lolcommits::Runner.plugins.map(&:name).join(', ')}"
end
raw_image(image_file_type = 'jpg') click to toggle source
# File lib/lolcommits/configuration.rb, line 48
def raw_image(image_file_type = 'jpg')
  File.join loldir, "tmp_snapshot.#{image_file_type}"
end
read_configuration() click to toggle source
# File lib/lolcommits/configuration.rb, line 14
def read_configuration
  return unless File.exist?(configuration_file)
  YAML.load(File.open(configuration_file))
end
save(config) click to toggle source
# File lib/lolcommits/configuration.rb, line 105
def save(config)
  config_file_contents = config.to_yaml
  File.open(configuration_file, 'w') do |f|
    f.write(config_file_contents)
  end
end
to_s() click to toggle source
# File lib/lolcommits/configuration.rb, line 112
def to_s
  read_configuration.to_yaml.to_s
end
video_loc() click to toggle source
# File lib/lolcommits/configuration.rb, line 56
def video_loc
  File.join(loldir, 'tmp_video.mov')
end