fled 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -3,11 +3,6 @@
3
3
 
4
4
  `fled` lets you organise your files and folders in your favourite editor
5
5
 
6
- ## Disclaimer
7
-
8
- Warning: This is a very dangerous tool. The author recommends you do not
9
- use it. The author cannot be held responsible in any case.
10
-
11
6
  ## Introduction
12
7
 
13
8
  `fled` enumerates a folder and its files, and generates a text listing.
@@ -17,13 +12,17 @@ your files and folders around as-per your edits.
17
12
 
18
13
  **You should review that shell script very carefully before running it.**
19
14
 
15
+ ### Install
16
+
17
+ You can install using `gem install fled`.
18
+
20
19
  ### Philosophy
21
20
 
22
21
  `fled` only generates text, it does not perform any operation directly.
23
22
 
24
- The design optimises for making the edits very simple. The consequence of
25
- this is that very small edits can have large consequences, which makes
26
- this a **very dangerous** tool. But so is `rm` and the rest of the shell anyway...
23
+ The design optimises for making the edits very simple. This means that very small
24
+ edits can have large consequences, which makes this a **very dangerous** tool.
25
+ But so is `rm` and the rest of the shell anyway...
27
26
 
28
27
  ### Caveats
29
28
 
@@ -35,6 +34,10 @@ cases defined, any help is much appreciated.
35
34
 
36
35
  You should be scared when using `fled`.
37
36
 
37
+ ### Test status
38
+
39
+ [![Build Status](https://secure.travis-ci.org/ddlsmurf/fled.png?branch=master&this_url_now_ends_with=.png)](http://travis-ci.org/ddlsmurf/fled)
40
+
38
41
  ### Examples
39
42
 
40
43
  Print help text and option list
@@ -163,7 +166,7 @@ If an indent is forgotten:
163
166
 
164
167
  Generates:
165
168
 
166
- mv folder/folder_two/file_three folder/file_one/file_three
169
+ mv folder/folder_two/file_three folder/file_three
167
170
 
168
171
  ### All together
169
172
 
@@ -224,7 +227,28 @@ Generates:
224
227
  mv folder sub_sub_folder/sub_folder/folder
225
228
  mv sub_sub_folder/file.txt sub_sub_folder/sub_folder/folder/file.txt
226
229
 
230
+ ## Changelog
231
+
232
+ *Version v0.0.2*
233
+
234
+ - Fix: Unreadable directories now ignored
235
+ - Fix: Version display and DRYed
236
+ - Fix: Moving files under files now moves up to parent folder of destination
237
+ - Meta: Travis-CI integration
238
+
239
+ *Version v0.0.1*
240
+
241
+ - First version
242
+
243
+ ## Disclaimer
244
+
245
+ Warning: This is a very dangerous tool. The author recommends you do not
246
+ use it. The author cannot be held responsible in any case.
247
+
227
248
  ## Contributors
228
249
 
229
250
  - [Eric Doughty-Papassideris](http://github.com/ddlsmurf)
230
251
 
252
+ ## Licence
253
+
254
+ [GPLv3](http://www.gnu.org/licenses/gpl-3.0.html)
data/bin/fled CHANGED
@@ -146,7 +146,7 @@ class App
146
146
  end
147
147
 
148
148
  def output_version
149
- $stderr.puts "#{File.basename(__FILE__)} version #{VERSION}"
149
+ $stderr.puts "#{File.basename(__FILE__)} version #{FlEd::VERSION}"
150
150
  end
151
151
  end
152
152
  App.new.run
@@ -17,6 +17,7 @@ module DTC
17
17
  @folders.pop
18
18
  end
19
19
  def self.browse path, visitor, max_depth = -1
20
+ return unless File.readable?(path)
20
21
  dir = Dir.new(path)
21
22
  return unless visitor.enter_folder path
22
23
  dir.each do |f|
@@ -89,7 +89,7 @@ module FlEd
89
89
  next if path.any? { |o| o[:error] }
90
90
  if target[:name] != "" && !target[:uid]
91
91
  operations << [:mk, self.path_of(target).map { |o| o[:name] }]
92
- fake_source = {:name => target[:name]}
92
+ fake_source = {:name => target[:name], :dir => true}
93
93
  fake_source[:parent] = running_source[path.last[:source][:uid]] unless path.empty?
94
94
  target_uid = "new_#{running_source.count}"
95
95
  target_uid += "_" while @objects_by_id[target_uid] || running_source[target_uid]
@@ -111,11 +111,16 @@ module FlEd
111
111
  if new_name != target[:name]
112
112
  pending_renames << [:renamed, target, target[:name]]
113
113
  end
114
+ if (target_parent = target[:parent])
115
+ until !target_parent || !target_parent[:source] || target_parent[:source][:dir]
116
+ target_parent = target_parent[:parent]
117
+ end
118
+ end
114
119
  source_path = running_source.path_of(source).map { |o| o[:name] }
115
120
  target[:name] = source[:name] = new_name
116
121
  operations << [:moved,
117
122
  source_path,
118
- self.path_of(target).map { |o| o[:name] }
123
+ self.path_of(target_parent).map { |o| o[:name] } + [target[:name]]
119
124
  ]
120
125
  if target[:parent]
121
126
  source[:parent] = running_source[target[:parent][:uid]]
data/lib/fled.rb CHANGED
@@ -4,7 +4,7 @@ require 'shellwords'
4
4
  module FlEd
5
5
  require 'fled/file_listing'
6
6
 
7
- VERSION = '0.0.1'
7
+ VERSION = '0.0.2'
8
8
 
9
9
  def self.operation_list_to_bash ops
10
10
  ops = ops.map do |op|
data/tests/readme.rb CHANGED
@@ -75,11 +75,6 @@ end
75
75
  readme = ExampleDSLWriter.run do
76
76
  h1 "FlEd", '`fled` lets you organise your files and folders in your favourite editor'
77
77
 
78
- h2 "Disclaimer", <<-MD
79
- Warning: This is a very dangerous tool. The author recommends you do not
80
- use it. The author cannot be held responsible in any case.
81
- MD
82
-
83
78
  h2 "Introduction", <<-MD
84
79
  `fled` enumerates a folder and its files, and generates a text listing.
85
80
  You can then edit that listing in your favourite editor, and save changes.
@@ -90,12 +85,16 @@ readme = ExampleDSLWriter.run do
90
85
 
91
86
  MD
92
87
 
88
+ h3 "Install", <<-MD
89
+ You can install using `gem install fled`.
90
+ MD
91
+
93
92
  h3 "Philosophy", <<-MD
94
93
  `fled` only generates text, it does not perform any operation directly.
95
94
 
96
- The design optimises for making the edits very simple. The consequence of
97
- this is that very small edits can have large consequences, which makes
98
- this a **very dangerous** tool. But so is `rm` and the rest of the shell anyway...
95
+ The design optimises for making the edits very simple. This means that very small
96
+ edits can have large consequences, which makes this a **very dangerous** tool.
97
+ But so is `rm` and the rest of the shell anyway...
99
98
  MD
100
99
 
101
100
  h3 "Caveats", <<-MD
@@ -108,6 +107,8 @@ readme = ExampleDSLWriter.run do
108
107
  You should be scared when using `fled`.
109
108
  MD
110
109
 
110
+ h3 "Test status", "[![Build Status](https://secure.travis-ci.org/ddlsmurf/fled.png?branch=master&this_url_now_ends_with=.png)](http://travis-ci.org/ddlsmurf/fled)"
111
+
111
112
  h3 "Examples"
112
113
  [
113
114
  ["Print help text and option list", "fled --help"],
@@ -250,7 +251,29 @@ readme = ExampleDSLWriter.run do
250
251
  file.txt :3
251
252
  EXAMPLE
252
253
 
254
+ h2 "Changelog"
255
+ ({
256
+ 'v0.0.1' => ['First version'],
257
+ 'v0.0.2' => [
258
+ 'Fix: Unreadable directories now ignored',
259
+ 'Fix: Version display and DRYed',
260
+ 'Fix: Moving files under files now moves up to parent folder of destination',
261
+ 'Meta: Travis-CI integration',
262
+ ],
263
+ }).sort { |a, b| b[0] <=> a[0] }.each do |version, changes|
264
+ em "Version #{version}"
265
+ changes.each { |change| li change }
266
+ end
267
+
268
+ h2 "Disclaimer", <<-MD
269
+ Warning: This is a very dangerous tool. The author recommends you do not
270
+ use it. The author cannot be held responsible in any case.
271
+ MD
272
+
253
273
  h2 "Contributors"
254
274
  li "[Eric Doughty-Papassideris](http://github.com/ddlsmurf)"
275
+
276
+ h2 "Licence", "[GPLv3](http://www.gnu.org/licenses/gpl-3.0.html)"
277
+
255
278
  end
256
279
  puts readme
@@ -165,6 +165,33 @@ class TestOperations < Test::Unit::TestCase
165
165
  TEST
166
166
  assert_equal [[:mv, 'folder/sous/truc', 'truc']], ops
167
167
  end
168
+ def test_reparent_under_file
169
+ ops = @fs.operations_if_edited_as <<-TEST
170
+ folder :0
171
+ sous :1
172
+ truc :2
173
+ truc.txt :3
174
+ TEST
175
+ assert_equal [[:mv, "folder/truc.txt", "folder/sous/truc.txt"]], ops
176
+ end
177
+ def test_reparent_under_file_at_root
178
+ ops = TestFS.new do
179
+ folder(0) {
180
+ file_one(1)
181
+ file_two(2)
182
+ file_three(3)
183
+ }
184
+ end.operations_if_edited_as <<-TEST
185
+ file_one :1
186
+ file_two :2
187
+ file_three :3
188
+ TEST
189
+ assert_equal [
190
+ [:mv, "folder/file_one", "file_one"],
191
+ [:mv, "folder/file_two", "file_two"],
192
+ [:mv, "folder/file_three", "file_three"],
193
+ ], ops
194
+ end
168
195
  def test_reparent_impact_on_mkdir
169
196
  ops = @fs.operations_if_edited_as <<-TEST
170
197
  folder :0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: