class Obfusc::ShowCommand

Perform tasks related `show` command

Public Class Methods

call(config, *args) click to toggle source
# File lib/obfusc/commands/show_command.rb, line 12
def self.call(config, *args)
  source = args.first
  model = new(config, source)
  model.public_send(File.exist?(source.to_s) ? :run : :show_usage)
end
new(config, source) click to toggle source
# File lib/obfusc/commands/show_command.rb, line 7
def initialize(config, source)
  @config = config
  @source = source
end

Public Instance Methods

run() click to toggle source
# File lib/obfusc/commands/show_command.rb, line 18
def run
  files.each do |from, to|
    puts "#{from}:"
    puts "---> #{to}"
  end
end
show_usage() click to toggle source
# File lib/obfusc/commands/show_command.rb, line 25
    def show_usage
      usage = <<-TEXT.gsub('      ', '')
      Usage:
      $ obfusc show <source>

      Files:
        source: Relative or absolute directory where obfuscated files are stored. (Default to current directory)
      TEXT
      puts usage
    end

Protected Instance Methods

files() click to toggle source
# File lib/obfusc/commands/show_command.rb, line 38
def files
  recursive_from = File.join(@source, '**/{.*,*}') if File.directory?(@source)
  Dir.glob(recursive_from || @source).each_with_object({}) do |path, memo|
    next if File.directory?(path)
    next if File.symlink?(path)
    basename = File.basename(path)
    next unless @config.encryptor.obfuscated?(basename)
    memo[path] = @config.encryptor.decrypt(basename)
  end
end