rfs 0.1 → 0.2

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.
@@ -1,147 +0,0 @@
1
- $TESTING ||= true
2
- #require 'innate/tracerequire'
3
- require 'innate/debug'
4
- require 'innate/reload'
5
- require 'pp'
6
- require 'test/unit'
7
- $:.unshift '../lib'
8
- require 'renamer'
9
- require 'cursor/indexed'
10
-
11
-
12
- class RenamerMock < Renamer
13
- attr_reader :renames
14
-
15
- def run(name, options, &block)
16
- @onrename = block
17
- @renames = []
18
- @yielded = true
19
- p = options[:file_provider]
20
- if p.methods.include? "on_after"
21
- p.on_after do
22
- unless @onrename and @yielded
23
- @onrename.call :result => @result, :result_type => @result_type, :result_path => @result_path, :result_file => @result_file
24
- @yielded = true
25
- end
26
- end
27
- end
28
- super(name, options) do |rtype, result, path, file|
29
- @result = result
30
- @result_type = rtype
31
- @result_path = path
32
- @result_file = file
33
- @yielded = false
34
- end
35
- end
36
-
37
- def rename(path, oldfn, newfn, full_path = false)
38
- super
39
- if @onrename
40
- r = @onrename.call(:path => path,
41
- :oldfn => oldfn,
42
- :newfn => newfn,
43
- :full_path => full_path,
44
- :result => @result,
45
- :result_type => @result_type,
46
- :result_path => @result_path,
47
- :result_file => @result_file,
48
- :confirm => @confirm)
49
- @yielded = true
50
- end
51
- end
52
-
53
- alias actual_rename_orig actual_rename
54
-
55
- def actual_rename(o, n)
56
- @renames << [o, n]
57
- end
58
-
59
- alias actual_delete_orig actual_delete
60
-
61
- def actual_delete(fn)
62
- @renames << [fn, :deleted]
63
- end
64
- end
65
-
66
-
67
- module FileProviderTestEvents
68
- def self.extended(base)
69
- base.class.class_eval do
70
- alias_method :each_before_fpte, :each
71
- end
72
- end
73
-
74
- def each
75
- each_before_fpte do |path, file|
76
- before path, file
77
- yield path, file
78
- after path, file
79
- end
80
- end
81
-
82
- def on_before &block
83
- @on_before = [block]
84
- end
85
-
86
- def on_after &block
87
- @on_after = [block]
88
- end
89
-
90
- def before p, f
91
- return unless @on_before
92
- @on_before.each do |m|
93
- m.call p, f if m
94
- end
95
- end
96
-
97
- def after p, f
98
- return unless @on_before
99
- @on_after.each do |m|
100
- m.call p, f if m
101
- end
102
- end
103
- end
104
-
105
- class BaseTest < Test::Unit::TestCase
106
- def setup
107
- new_files( %w{ dir/. dir/.. dir/file1 dir/file2 dir/file3 } )
108
- @r = RenamerMock.new
109
- end
110
-
111
- def new_files(files)
112
- @files = Provider::File::Array.new(files)
113
- add_file_events
114
- end
115
-
116
- def add_file_events
117
- @files.extend FileProviderTestEvents
118
- @files.on_before do |p, f|
119
- @path = p
120
- @file = f
121
- @full_name = fp File.join(p, f)
122
- end
123
- end
124
-
125
- def fp(path)
126
- File.expand_path path
127
- end
128
-
129
- def test_shutup; end
130
-
131
- def r(action, name = :rename_replace, expected_yields = nil, options = {})
132
- options[:file_provider] ||= @files
133
- options[:action] ||= action
134
- options[:filter] = Filter.add options[:filter], Filter.new(/^\.+$/) unless options[:test_r_nofilter]
135
- yc = 0
136
- @r.run name, options do |h|
137
- yc += 1
138
- yield h if block_given?
139
- end
140
- if options[:test_r_count]
141
- raise 'exception raised' if expected_yields and expected_yields != yc
142
- else
143
- assert_equal expected_yields, yc, 'Expected yields from renamer' if expected_yields
144
- end
145
- end
146
- end
147
-