class Lolcommits::Configuration
Constants
- LOLBASEDIR
- LOLCOMMITS_ROOT
Attributes
loldir[W]
Public Class Methods
can_animate?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 190 def self.can_animate? platform == 'Mac' end
command_which(cmd)
click to toggle source
Cross-platform way of finding an executable in the $PATH. idea taken from bit.ly/qDaTbY
which('ruby') #=> /usr/bin/ruby
# File lib/lolcommits/configuration.rb, line 198 def self.command_which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each { |ext| exe = "#{path}/#{cmd}#{ext}" return exe if File.executable? exe } end return nil end
git_config_color_always?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 186 def self.git_config_color_always? `git config color.ui`.chomp =~ /always/ end
is_cygwin?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 162 def self.is_cygwin? RUBY_PLATFORM.to_s.downcase.include?("cygwin") end
is_fakecapture?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 166 def self.is_fakecapture? (ENV['LOLCOMMITS_FAKECAPTURE'] == '1' || false) end
is_fakeplatform?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 170 def self.is_fakeplatform? ENV['LOLCOMMITS_FAKEPLATFORM'] end
is_linux?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 154 def self.is_linux? RUBY_PLATFORM.to_s.downcase.include?("linux") end
is_mac?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 150 def self.is_mac? RUBY_PLATFORM.to_s.downcase.include?("darwin") end
is_windows?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 158 def self.is_windows? !! RUBY_PLATFORM.match(/(win|w)32/) end
loldir_for(basename)
click to toggle source
# File lib/lolcommits/configuration.rb, line 60 def self.loldir_for(basename) loldir = File.join(LOLBASEDIR, basename) if not File.directory? loldir FileUtils.mkdir_p loldir end loldir end
new(attributes={})
click to toggle source
# File lib/lolcommits/configuration.rb, line 7 def initialize(attributes={}) attributes.each do |attr, val| self.send("#{attr}=", val) end end
platform()
click to toggle source
# File lib/lolcommits/configuration.rb, line 13 def self.platform if is_fakeplatform? ENV['LOLCOMMITS_FAKEPLATFORM'] elsif is_fakecapture? 'Fake' elsif is_mac? 'Mac' elsif is_linux? 'Linux' elsif is_windows? 'Windows' elsif is_cygwin? 'Cygwin' else raise "Unknown / Unsupported Platform." end end
valid_ffmpeg_installed?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 182 def self.valid_ffmpeg_installed? self.command_which('ffmpeg') end
valid_imagemagick_installed?()
click to toggle source
# File lib/lolcommits/configuration.rb, line 174 def self.valid_imagemagick_installed? return false unless self.command_which('identify') return false unless self.command_which('mogrify') # you'd expect the below to work on its own, but it only handles old versions # and will throw an exception if IM is not installed in PATH MiniMagick::valid_version_installed? end
Public Instance Methods
archivedir()
click to toggle source
# File lib/lolcommits/configuration.rb, line 52 def archivedir dir = File.join(loldir, 'archive') if not File.directory? dir FileUtils.mkdir_p dir end dir end
ask_for_plugin_name()
click to toggle source
# File lib/lolcommits/configuration.rb, line 101 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 39 def configuration_file "#{self.loldir}/config.yml" end
do_configure!(plugin_name)
click to toggle source
# File lib/lolcommits/configuration.rb, line 118 def do_configure!(plugin_name) if plugin_name.to_s.strip.empty? plugin_name = ask_for_plugin_name end if plugin = find_plugin(plugin_name) config = self.read_configuration || Hash.new 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}" else puts "\nAborted plugin configuration for: #{plugin_name}" end end end
find_plugin(plugin_name)
click to toggle source
# File lib/lolcommits/configuration.rb, line 107 def find_plugin(plugin_name) Lolcommits::PLUGINS.each do |plugin| if plugin.name == plugin_name return plugin.new(nil) end end puts "Unable to find plugin: '#{plugin_name}'" puts_plugins end
frames_loc()
click to toggle source
# File lib/lolcommits/configuration.rb, line 93 def frames_loc File.join(self.loldir, 'tmp_frames') end
images()
click to toggle source
# File lib/lolcommits/configuration.rb, line 73 def images Dir.glob(File.join self.loldir, "*.jpg").sort_by {|f| File.mtime(f)} end
images_today()
click to toggle source
# File lib/lolcommits/configuration.rb, line 77 def images_today images.select { |f| Date.parse(File.mtime(f).to_s) === Date.today } end
loldir()
click to toggle source
# File lib/lolcommits/configuration.rb, line 43 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 85 def main_image(commit_sha, image_file_type = 'jpg') File.join self.loldir, "#{commit_sha}.#{image_file_type}" end
most_recent()
click to toggle source
# File lib/lolcommits/configuration.rb, line 69 def most_recent Dir.glob(File.join self.loldir, "*.jpg").max_by {|f| File.mtime(f)} end
puts_plugins()
click to toggle source
# File lib/lolcommits/configuration.rb, line 97 def puts_plugins puts "Available plugins: #{Lolcommits::PLUGINS.map(&:name).join(', ')}" end
raw_image(image_file_type = 'jpg')
click to toggle source
# File lib/lolcommits/configuration.rb, line 81 def raw_image(image_file_type = 'jpg') File.join self.loldir, "tmp_snapshot.#{image_file_type}" end
read_configuration()
click to toggle source
# File lib/lolcommits/configuration.rb, line 31 def read_configuration if File.exists?(configuration_file) YAML.load(File.open(configuration_file)) else nil end end
save(config)
click to toggle source
# File lib/lolcommits/configuration.rb, line 139 def save(config) config_file_contents = config.to_yaml File.open(self.configuration_file, 'w') do |f| f.write(config_file_contents) end end
to_s()
click to toggle source
# File lib/lolcommits/configuration.rb, line 146 def to_s read_configuration.to_yaml.to_s end
video_loc()
click to toggle source
# File lib/lolcommits/configuration.rb, line 89 def video_loc File.join(self.loldir, 'tmp_video.mov') end