Module: FileDiscard

Defined in:
lib/file_discard.rb,
lib/file_discard_version.rb

Defined Under Namespace

Classes: Discarder, LinuxDiscarder, OsxDiscarder, TrashMissing

Constant Summary collapse

VERSION =

:nodoc:

'0.1.5'
RELEASE =

:nodoc:

'4441d85:20141102225117'
@@create_trash_when_missing =
false

Class Method Summary collapse

Class Method Details

.create_trash_when_missingObject



78
79
80
# File 'lib/file_discard.rb', line 78

def self.create_trash_when_missing
  @@create_trash_when_missing
end

.create_trash_when_missing=(value) ⇒ Object

Enable or disable the automatic creation of trash directories if they do not exist. The default is to raise a TrashMissing exception).



74
75
76
# File 'lib/file_discard.rb', line 74

def self.create_trash_when_missing=(value)
  @@create_trash_when_missing = value
end

.discard(*args) ⇒ Object

See Discarder.discard for usage.



51
52
53
# File 'lib/file_discard.rb', line 51

def self.discard(*args)
  discarder.discard(*args)
end

.discarderObject



60
61
62
63
64
65
66
67
68
# File 'lib/file_discard.rb', line 60

def self.discarder
  @@discarder ||= case RUBY_PLATFORM
                  when /darwin/i then OsxDiscarder.new
                  when /linux/i then LinuxDiscarder.new
                  else
                    raise NotImplementedError
                      .new("Unsupported platform: #{RUBY_PLATFORM}")
                  end
end

.discarder=(discarder) ⇒ Object

Set the default discarder to use.



56
57
58
# File 'lib/file_discard.rb', line 56

def self.discarder=(discarder)
  @@discarder = discarder
end

.mix_it_in!Object

Extend Ruby’s File and Pathname classes with Discarder.discard methods.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/file_discard.rb', line 34

def self.mix_it_in!
  [File, Pathname].each do |klass|
    klass.class_eval do
      # :nodoc:
      def self.discard(*args)
        FileDiscard.discarder.discard(*args)
      end
      # :nodoc:
      def discard(options = {})
        FileDiscard.discarder.discard(self, options)
      end
    end
  end
  self
end