attic-cleanup 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -81,6 +81,15 @@ Type y to continue or type n to exit.
81
81
  Once you press y all the file will be moved to the MyAttic folder and every file will be printed in the log.txt file.
82
82
 
83
83
 
84
+ Last Example: I want to send certain files in a folder to a different folder, but not the MyAttic folder
85
+ ========================================================================================================
86
+ attic-cleanup store @doc @projects
87
+
88
+
89
+ This line will give you the option to send files / folders from @doc to @projects.
90
+
91
+ This works exactly the same way as storing files to the MyAttic folder, except you're storing your files to a different location
92
+
84
93
  Checking which shortcuts are available
85
94
  ======================================
86
95
  attic-cleanup shortcuts
@@ -22,15 +22,17 @@ require File.expand_path("../../lib/attic-cleanup/initialize/init", __FILE__)
22
22
  # All the constants and initializers
23
23
  module MyAttic
24
24
  ATTIC = File.join(ENV["HOME"], "MyAttic")
25
- TODAY = File.join(ENV["HOME"], "MyAttic", Date.today.to_s)
26
- CUSTOM = File.join(ENV["HOME"], "MyAttic/custom_paths.txt")
27
- DEFAULT = File.join(ENV["HOME"], "MyAttic/default_path.txt")
28
- IGNORE = File.join(ENV["HOME"], "MyAttic/ignore_files.txt")
29
- LOG = File.join(ENV["HOME"], "MyAttic/log.txt")
25
+ TODAY = File.join(MyAttic::ATTIC, Date.today.to_s)
26
+ CONFIG = File.join(MyAttic::ATTIC, "config")
27
+ CUSTOM = File.join(MyAttic::CONFIG, "custom_paths.txt")
28
+ DEFAULT = File.join(MyAttic::CONFIG, "default_path.txt")
29
+ IGNORE = File.join(MyAttic::CONFIG, "ignore_files.txt")
30
+ LOG = File.join(MyAttic::CONFIG, "log.txt")
30
31
 
31
32
  # Checks if all the folders and files exist, also deletes any empty folders
32
33
  AtticCleanup::Init.check_folder(MyAttic::ATTIC)
33
34
  AtticCleanup::Init.check_folder(MyAttic::TODAY)
35
+ AtticCleanup::Init.check_folder(MyAttic::CONFIG)
34
36
  AtticCleanup::Init.check_file(MyAttic::DEFAULT)
35
37
  AtticCleanup::Init.check_file(MyAttic::CUSTOM)
36
38
  AtticCleanup::Init.check_file(MyAttic::IGNORE)
@@ -39,4 +41,4 @@ module MyAttic
39
41
  # This constant is set after the initializers because it reads
40
42
  # the custom_paths.txt file. And it needs to be created first.
41
43
  SHORTCUTS = AtticCleanup::Path::Custom.all(MyAttic::CUSTOM)
42
- end
44
+ end
@@ -5,11 +5,13 @@ module AtticCleanup
5
5
  CUSTOM_FILE = "#Write all your custom paths here.
6
6
  #Or generate them with the 'attic-cleanup new' command
7
7
  #Write all your custom paths like the examples, no extra spaces.
8
+ des #{File.join(ENV['HOME'], 'Desktop')}
8
9
  doc #{File.join(ENV['HOME'], 'Documents')}
9
10
  pic #{File.join(ENV['HOME'], 'Pictures')}
10
11
  mus #{File.join(ENV['HOME'], 'Music')}
11
12
  mov #{File.join(ENV['HOME'], 'Movies')}
12
- dow #{File.join(ENV['HOME'], 'Downloads')}"
13
+ dow #{File.join(ENV['HOME'], 'Downloads')}
14
+ dro #{File.join(ENV['HOME'], 'Dropbox')}"
13
15
 
14
16
  # Default text for the default_path.txt file
15
17
  DEFAULT_FILE = "#Write your default location here.
@@ -24,8 +26,7 @@ dow #{File.join(ENV['HOME'], 'Downloads')}"
24
26
  #{File.join(ENV['HOME'], 'Music')}
25
27
  #{File.join(ENV['HOME'], 'Movies')}
26
28
  #{File.join(ENV['HOME'], 'Downloads')}
27
- #{File.join(ENV['HOME'], 'Dropbox')}
28
- #{File.join(ENV['HOME'], 'MyAttic')}"
29
+ #{File.join(ENV['HOME'], 'Dropbox')}\n#{File.join(ENV['HOME'], 'MyAttic')}"
29
30
 
30
31
  # Checks if folder exists, if it doesn't it will be created
31
32
  def self.check_folder(value)
@@ -56,11 +57,11 @@ dow #{File.join(ENV['HOME'], 'Downloads')}"
56
57
  def self.clear
57
58
  attic_folders = Dir.glob(File.join(MyAttic::ATTIC, "*"));
58
59
  attic_folders.each do |f|
59
- if f == MyAttic::CUSTOM || f == MyAttic::LOG || f == MyAttic::TODAY || f == MyAttic::DEFAULT || f == MyAttic::IGNORE
60
+ if f == MyAttic::TODAY
60
61
  elsif Dir[File.join(f, "/*")].empty?
61
62
  FileUtils.rm_rf(f)
62
63
  end
63
64
  end
64
- end
65
+ end
65
66
  end
66
67
  end
@@ -15,6 +15,17 @@ module AtticCleanup
15
15
  end
16
16
  end
17
17
 
18
+ def check_shortcut(input)
19
+ if input[0..0] == "@"
20
+ c = AtticCleanup::Path::Custom.new
21
+ # The input without the first character (the @ sign)
22
+ c.name = input[1..-1]
23
+ c.file = MyAttic::CUSTOM
24
+ input = c.find_custom
25
+ end
26
+ input
27
+ end
28
+
18
29
  # Selects every line from the selected file
19
30
  # but ignores lines where the first character is '#'
20
31
  def self.all(file)
@@ -66,7 +77,7 @@ module AtticCleanup
66
77
  end
67
78
  end
68
79
  if selected_line == nil
69
- puts "Shortcut not found"
80
+ puts "Shortcut not found '@#{@name}'"
70
81
  exit 1
71
82
  else
72
83
  the_name_count = the_name.count("A-z, \s")
@@ -3,6 +3,8 @@ module AtticCleanup
3
3
  module Storage
4
4
  class StoreFiles
5
5
 
6
+ attr_accessor :destination
7
+
6
8
  # Easy method for input
7
9
  def input
8
10
  STDOUT.flush
@@ -17,7 +19,7 @@ module AtticCleanup
17
19
  # If the location wasn't set, the default
18
20
  # location will be used from the default_path.txt file
19
21
  def location= ( value )
20
- if value == ""
22
+ if value == "" || value == nil
21
23
  value = AtticCleanup::Path::Custom.default
22
24
  elsif value == "."
23
25
  Dir.chdir(".")
@@ -26,11 +28,15 @@ module AtticCleanup
26
28
  end
27
29
  @location = value
28
30
  end
29
-
31
+
30
32
  # Checks if the selected path exists
31
33
  def check
32
- if !File.directory? @location
33
- puts "Invalid path " + @location
34
+ @check
35
+ end
36
+
37
+ def check=(value)
38
+ if !File.directory? value
39
+ puts "Invalid path " + value
34
40
  exit 1
35
41
  end
36
42
  end
@@ -69,7 +75,8 @@ module AtticCleanup
69
75
  i = 1
70
76
  while i == 1
71
77
  # Message with the current location and simple instructions
72
- puts "\n"+location
78
+ puts "\nFrom: #{location}"
79
+ puts "To: #{destination}"
73
80
  puts "Which files do you want to store in your attic?"
74
81
  puts "Type ls for the list of items"
75
82
  puts "Select the items by id. Example: 1,3,5"
@@ -133,12 +140,12 @@ module AtticCleanup
133
140
  else
134
141
  # If file was found move it, print it and record it in the log
135
142
  puts "Moving " + selected_file + " to your attic.."
136
- AtticCleanup::Log.save(selected_file, MyAttic::TODAY)
137
- FileUtils.mv(selected_file, MyAttic::TODAY)
143
+ AtticCleanup::Log.save(selected_file, @destination)
144
+ FileUtils.mv(selected_file, @destination)
138
145
  end
139
146
  end
140
- puts "The files have been moved to " + MyAttic::TODAY
147
+ puts "The files have been moved to " + @destination
141
148
  end
142
149
  end
143
150
  end
144
- end
151
+ end
@@ -6,11 +6,14 @@ module AtticCleanup
6
6
  "Choose a path or shortcut to store the contents of the given folder.
7
7
  custom paths are called by placing an '@' sign in front of it.
8
8
  example: @mypath
9
+ You can also store from one place to another, example:
10
+ attic-cleanup store @doc @myproject
11
+ Now you can choose files / folders from the @doc path and send them to the @myproject folder.
9
12
 
10
13
  -a => 'all'
11
14
  -f => 'force'\n\n"
12
15
  method_options :a => :boolean, :f => :boolean
13
- def store(input="")
16
+ def store(location="", destination="")
14
17
 
15
18
  # Checks if the options are set
16
19
  if options[:a]
@@ -19,21 +22,24 @@ module AtticCleanup
19
22
  if options[:f]
20
23
  f = true
21
24
  end
22
-
23
- # If the input for store has an "@" at the beginning
24
- # it's a shortcut.
25
- if input[0..0] == "@"
26
- c = AtticCleanup::Path::Custom.new
27
- # The input without the first character (the @ sign)
28
- c.name = input[1..-1]
29
- c.file = MyAttic::CUSTOM
30
- input = c.find_custom
31
- end
25
+
32
26
  # The input is the location, if the input had an @ sign
33
27
  # at the beginning, the custom path will be stored in input variable
28
+ c = AtticCleanup::Path::Custom.new
34
29
  s = AtticCleanup::Storage::StoreFiles.new
35
- s.location = input
36
- s.check
30
+ if destination != nil && destination != ""
31
+ destination = c.check_shortcut(destination)
32
+ s.destination = destination
33
+ s.check = destination
34
+ else
35
+ destination = MyAttic::TODAY
36
+ s.destination = destination
37
+ s.check = s.destination
38
+ end
39
+ location = c.check_shortcut(location)
40
+ s.location = location
41
+ location = s.location
42
+ s.check = location
37
43
  s.store(a, f)
38
44
  end
39
45
 
@@ -56,6 +62,8 @@ module AtticCleanup
56
62
 
57
63
  desc "default", "Set a default path for store."
58
64
  def default(input)
65
+ c = AtticCleanup::Path::Custom.new
66
+ input = c.check_shortcut(input)
59
67
  AtticCleanup::Path::Custom.set_default(input)
60
68
  end
61
69
 
@@ -63,6 +71,7 @@ module AtticCleanup
63
71
  def ignore(input)
64
72
  AtticCleanup::Path::Custom.set_ignore(input)
65
73
  end
74
+
66
75
  desc "shortcuts", "View all available shortcuts"
67
76
  # Show all the availible shortcuts from the custom_paths.txt file
68
77
  def shortcuts
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attic-cleanup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &74494500 !ruby/object:Gem::Requirement
16
+ requirement: &70362726577020 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *74494500
24
+ version_requirements: *70362726577020
25
25
  description:
26
26
  email: kevin.van.rooijen@gmail.com
27
27
  executables:
@@ -59,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  version: '0'
60
60
  requirements: []
61
61
  rubyforge_project:
62
- rubygems_version: 1.8.10
62
+ rubygems_version: 1.8.11
63
63
  signing_key:
64
64
  specification_version: 3
65
65
  summary: attic-cleanup is a gem to easily store your files when you need to get them