fled 0.0.1

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.
@@ -0,0 +1,229 @@
1
+ if Kernel.respond_to?(:require_relative)
2
+ require_relative "helper"
3
+ else
4
+ require File.join(File.dirname(__FILE__), 'helper')
5
+ end
6
+ require 'test/unit'
7
+
8
+ class TestSwapOperations < Test::Unit::TestCase
9
+ def test_swap_renames
10
+ ops = TestFS.new do
11
+ truc.a.txt(1)
12
+ truc.b.txt(2)
13
+ end.operations_if_edited_as <<-TEST
14
+ truc.a.txt :2
15
+ truc.b.txt :1
16
+ TEST
17
+ assert_equal [
18
+ [:mv, "truc.b.txt", "truc.a.txt.tmp"],
19
+ [:mv, "truc.a.txt", "truc.b.txt"],
20
+ [:mv, "truc.a.txt.tmp", "truc.a.txt"]
21
+ ], ops
22
+ end
23
+ def test_swap_renames_warn_overwrite
24
+ ops = TestFS.new do
25
+ truc.a.txt(1)
26
+ truc.b.txt(2)
27
+ end.operations_if_edited_as <<-TEST
28
+ truc.a.txt :2
29
+ TEST
30
+
31
+ assert_equal 2, ops.count
32
+ assert_equal 4, ops.first.count
33
+ assert_equal :warn, ops.first[0]
34
+ assert_equal :would_overwrite, ops.first[1]
35
+ assert_equal [:mv, "truc.b.txt", "truc.a.txt.tmp"], ops.last
36
+ end
37
+ def test_swap_renames_warn_overwrite_fallback
38
+ ops = TestFS.new do
39
+ truc.a.txt(1)
40
+ truc.b.txt(2)
41
+ truc.a.txt.tmp(3)
42
+ end.operations_if_edited_as <<-TEST
43
+ truc.a.txt :2
44
+ TEST
45
+
46
+ assert_equal 2, ops.count
47
+ assert_equal 4, ops.first.count
48
+ assert_equal :warn, ops.first[0]
49
+ assert_equal :would_overwrite, ops.first[1]
50
+ assert_equal [:mv, "truc.b.txt", "truc.a.txt.tmp.tmp"], ops.last
51
+ end
52
+ def test_swap_parents
53
+ ops = TestFS.new do
54
+ folder(0) {
55
+ subfolder(1) {
56
+ file(2)
57
+ }
58
+ }
59
+ end.operations_if_edited_as <<-TEST
60
+ subfolder :1
61
+ folder :0
62
+ file :2
63
+ TEST
64
+ assert_equal [
65
+ [:mv, "folder/subfolder", "subfolder"],
66
+ [:mv, "folder", "subfolder/folder"],
67
+ [:mv, "subfolder/file", "subfolder/folder/file"]
68
+ ], ops
69
+ end
70
+ end
71
+
72
+ class TestOperationErrors < Test::Unit::TestCase
73
+ def test_missing_uid_should_fail
74
+ ops = TestFS.new { folder(0) }.operations_if_edited_as <<-TEST
75
+ folder :5
76
+ something_else
77
+ TEST
78
+ assert_equal 1, ops.count
79
+ assert_equal 3, ops.first.count
80
+ assert_equal :fail, ops.first[0]
81
+ assert_equal :no_such_uid, ops.first[1]
82
+ end
83
+ end
84
+
85
+ class TestOperationExample < Test::Unit::TestCase
86
+ def test_nanana
87
+
88
+ ops = TestFS.new {
89
+ folder(0) {
90
+ file_one(1)
91
+ folder_two(2) {
92
+ file_three(3)
93
+ }
94
+ } }.operations_if_edited_as <<-TEST
95
+ folder_new/ :0
96
+ new_folder/
97
+ first :1
98
+ second :3
99
+ :2
100
+ TEST
101
+ assert_equal [
102
+ [:mv, "folder", "folder_new"],
103
+ [:mkdir, "folder_new/new_folder"],
104
+ [:mv, "folder_new/file_one", "folder_new/new_folder/first"],
105
+ [:mv, "folder_new/folder_two/file_three", "folder_new/new_folder/second"],
106
+ [:rmdir, "folder_new/folder_two"],
107
+ ], ops
108
+ end
109
+ end
110
+ class TestOperations < Test::Unit::TestCase
111
+ def setup
112
+ @fs = TestFS.new do
113
+ folder(0) {
114
+ sous(1) {
115
+ truc(2)
116
+ }
117
+ truc.txt(3)
118
+ }
119
+ end
120
+ end
121
+ def test_rename
122
+ ops = @fs.operations_if_edited_as <<-TEST
123
+ folder :0
124
+ sous :1
125
+ truche :2
126
+ truc.txt :3
127
+ TEST
128
+ assert_equal [[:mv, 'folder/sous/truc', 'folder/sous/truche']], ops
129
+ end
130
+ def test_rename_impact_on_mkdir
131
+ ops = @fs.operations_if_edited_as <<-TEST
132
+ folder_renamed :0
133
+ machin
134
+ TEST
135
+ assert_equal [[:mv, "folder", "folder_renamed"], [:mkdir, "folder_renamed/machin"]], ops
136
+
137
+ end
138
+ def test_rename_impact_on_delete
139
+ ops = @fs.operations_if_edited_as <<-TEST
140
+ folder :0
141
+ soupe :1
142
+ :2
143
+ truc.txt :3
144
+ TEST
145
+ assert_equal [[:mv, 'folder/sous', 'folder/soupe'], [:rm, 'folder/soupe/truc']], ops
146
+ end
147
+ def test_rename_impact_on_reparent
148
+ ops = @fs.operations_if_edited_as <<-TEST
149
+ folder :0
150
+ soupe :1
151
+ truc :2
152
+ truc.txt :3
153
+ TEST
154
+ assert_equal [[:mv, 'folder/sous', 'folder/soupe'], [:mv, 'folder/soupe/truc', 'folder/truc']], ops
155
+ end
156
+ def test_reparent
157
+ ops = @fs.operations_if_edited_as <<-TEST
158
+ folder :0
159
+ truc :2
160
+ TEST
161
+ assert_equal [[:mv, 'folder/sous/truc', 'folder/truc']], ops
162
+ ops = @fs.operations_if_edited_as <<-TEST
163
+ folder :0
164
+ truc :2
165
+ TEST
166
+ assert_equal [[:mv, 'folder/sous/truc', 'truc']], ops
167
+ end
168
+ def test_reparent_impact_on_mkdir
169
+ ops = @fs.operations_if_edited_as <<-TEST
170
+ folder :0
171
+ sous :1
172
+ machin
173
+ TEST
174
+ assert_equal [[:mv, "folder/sous", "sous"], [:mkdir, "sous/machin"]], ops
175
+ end
176
+ def test_reparent_impact_on_delete
177
+ ops = @fs.operations_if_edited_as <<-TEST
178
+ folder :0
179
+ sous :1
180
+ :2
181
+ TEST
182
+ assert_equal [[:mv, 'folder/sous', 'sous'], [:rm, 'sous/truc']], ops
183
+ end
184
+ def test_create_folder
185
+ ops = @fs.operations_if_edited_as <<-TEST
186
+ new
187
+ subnew
188
+ folder :0
189
+ another
190
+ TEST
191
+ assert_equal [[:mkdir, 'new'], [:mkdir, "folder/another"], [:mkdir, 'new/subnew']], ops
192
+ end
193
+ def test_delete_folder
194
+ ops = @fs.operations_if_edited_as <<-TEST
195
+ folder :0
196
+ :1
197
+ truc.txt :3
198
+ TEST
199
+ assert_equal [[:rmdir, 'folder/sous']], ops
200
+ ops = @fs.operations_if_edited_as <<-TEST
201
+ folder :0
202
+ :1
203
+ :2
204
+ truc.txt :3
205
+ TEST
206
+ assert_equal [[:rm, 'folder/sous/truc'], [:rmdir, 'folder/sous']], ops
207
+ end
208
+ def test_delete_file
209
+ ops = @fs.operations_if_edited_as <<-TEST
210
+ folder :0
211
+ sous :1
212
+ :2
213
+ truc.txt :3
214
+ TEST
215
+ assert_equal [[:rm, 'folder/sous/truc']], ops
216
+ end
217
+ def test_noop
218
+ ops = @fs.operations_if_edited_as <<-TEST
219
+ folder :0
220
+ sous :1
221
+ truc :2
222
+ truc.txt :3
223
+ TEST
224
+ assert_equal [], ops
225
+ ops = @fs.operations_if_edited_as <<-TEST
226
+ TEST
227
+ assert_equal [], ops
228
+ end
229
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fled
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Eric Doughty-Papassideris
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-31 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Generate a list of files, edit it, then print a bash script with the
15
+ appropriate commands
16
+ email:
17
+ executables:
18
+ - fled
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - lib/dtc/utils/dsldsl.rb
23
+ - lib/dtc/utils/exec.rb
24
+ - lib/dtc/utils/file_visitor.rb
25
+ - lib/dtc/utils/interactive_edit.rb
26
+ - lib/dtc/utils/mini_select.rb
27
+ - lib/dtc/utils.rb
28
+ - lib/fled/file_listing.rb
29
+ - lib/fled.rb
30
+ - bin/fled
31
+ - tests/helper.rb
32
+ - tests/readme.rb
33
+ - tests/test_operations.rb
34
+ - README.md
35
+ homepage: http://github.com/ddlsmurf/fled
36
+ licenses: []
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 1.8.22
56
+ signing_key:
57
+ specification_version: 3
58
+ summary: FlEd lets you edit file names and paths in your favourite editor
59
+ test_files: []