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