Sha256: 02acd3bb1287b3614977e76d3758b5bd93e62a50d7a3a33a203de1351fb7621d

Contents?: true

Size: 984 Bytes

Versions: 1

Compression:

Stored size: 984 Bytes

Contents

require_relative "dsl/file"
module RoCommands
  class Info < Base
    include DSL::File

    class RoFile
      def initialize(path, size)
        @path = path
        @size = size
      end

      def path
      	@path ||= nil
      end

      def size
      	@size ||= nil
      end

      def to_s
        "size:#{size}, path:#{path}"
      end
    end

    desc 'file_size', ''

    def file_size(path, recursive=false)
      if recursive
        find(path).each do |f|
          files << RoFile.new(f, size(f))
        end
        puts files.sort_by(&:size)
      else
        Dir[File.join(path, "**")].each do |f|
          if dir?(f)
            s = find(f).inject(0) { |total_size, file_size| total_size += size(f) }
            rf = RoFile.new(f, s)
          else
            rf = RoFile.new(f, size(f))
          end
          files << rf
        end

        puts files.sort_by(&:size)
      end
    end


    private

    def files
      @files ||= []
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ro_commands-0.0.1 lib/ro_commands/info.rb