class Prune::Configurer
The configurer is used for configure a custom retention policy for a specified folder by either editing the retention policy already in place, or by copying the default retention policy from the gem into place in the specified directory, and then editing it.
Public Class Methods
new( folder, options = {} )
click to toggle source
# File lib/prune/configurer.rb, line 11 def initialize( folder, options = {} ) @config_file = File.join( folder, ".prune" ) end
Public Instance Methods
configure()
click to toggle source
# File lib/prune/configurer.rb, line 15 def configure if File.file? @config_file then if File.writable? @config_file then edit_config else puts "Configuration file #{@config_file} exists, but is not writeable; cannot edit configuration." end elsif File.directory? @config_file puts "Configuration file #{@config_file} exists, but is a directory; cannot create or edit configuration file." else create_config edit_config end end
create_config()
click to toggle source
# File lib/prune/configurer.rb, line 34 def create_config FileUtils.cp default_retention, @config_file puts "Copied default retention policy to #{@config_file}" end
default_retention()
click to toggle source
# File lib/prune/configurer.rb, line 39 def default_retention source_folder = File.dirname( File.expand_path( __FILE__ ) ) File.join( source_folder, 'default_retention.rb' ) end
edit_config()
click to toggle source
# File lib/prune/configurer.rb, line 44 def edit_config editor = ENV[ 'VISUAL' ] || ENV[ 'EDITOR' ] if editor.nil? then puts "No editor defined in 'VISUAL' or 'EDITOR' variables. Edit #{@config_file} in your favorite editor." else puts "Editing configuration #{@config_file} with #{editor}" if system( "#{editor} #{@config_file}" ) then puts "Configuration complete." else puts "Failed to edit file." end end end
has_config?()
click to toggle source
# File lib/prune/configurer.rb, line 30 def has_config? File.file? @config_file end