dir_processor 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65259145f8b0affef4fa03d46cebefea990e68b2
4
- data.tar.gz: 5ec868f3127ddfdc3dbeba1a0de9455c64ae9180
3
+ metadata.gz: 2a1ba8e96fb0e3e65cefc5ad96d82f63de75f465
4
+ data.tar.gz: 27118b88368131720966b7b612e4461a15eaeb45
5
5
  SHA512:
6
- metadata.gz: c07d98f934c0aa5fd0ebec217602693ca19ad64c61ea3cf1850af0c6d6ab8709ef92de5ffed845eef2d0443eb71479c2449fc107723a772333d39186d9acb1c4
7
- data.tar.gz: 4449acf430474b788b85c0fd2b2bf2d7d5cd9133f8e06e3394539bb7924357afe85c9248a29b605f594770d4452324b317f60c98aecd5e8a13c2b7bbadfeab51
6
+ metadata.gz: 9e57ab852ded737a40e7478376d9fe3647ba17ea3ec83af05d0230e91783c42ecfb8102415d2486d5cf49c2ba773d380705fe187fd3791cc50ddfab0b94f90a7
7
+ data.tar.gz: affd001b0e212c03865455aa843cb3b140f144cd25b85900744474e7ffcf19281e7d06de15236f15b873268487564e3a2e8949e6948dd79f2ab06148e9802dd9
@@ -22,5 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
 
24
24
  spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "pry"
25
26
  spec.add_runtime_dependency "def_dsl"
26
27
  end
@@ -1,3 +1,3 @@
1
1
  module DirProcessor
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/dir_processor.rb CHANGED
@@ -1,10 +1,53 @@
1
1
  require "dir_processor/version"
2
2
  require 'def_dsl'
3
+ # require 'pathname'
3
4
 
4
5
  def DirProcessor &block
5
6
  DirProcessor.new &block
6
7
  end
7
8
 
9
+ # my try to dry
10
+ module FeedMethod
11
+ def feed dir
12
+ return unless accept? dir
13
+
14
+ # Copy/Paste:
15
+ crap = proc { |x| x == '.' || x == '..' }
16
+
17
+ Dir.chdir dir do
18
+ this_dir = dir
19
+ dir = '.'
20
+
21
+ all = Dir.entries(dir).reject(&crap).group_by { |x| is_dir?(x) ? :dirs : :files } #long_name
22
+ all_files = all[:files]
23
+ all_dirs = all[:dirs]
24
+
25
+ so2(:first).each do |processor|
26
+ processor.feed this_dir
27
+ end
28
+ so2(:file).each do |processor|
29
+ (all[:files] || []).each { |file| processor.feed file } # long_name(dir,file) }
30
+ end
31
+ so2(:dir).each do |processor|
32
+ # require 'pry'; binding.pry
33
+ (all[:dirs] || []).each do |f|
34
+ processor.feed f #long_name(dir,f)
35
+ end
36
+ end
37
+
38
+ end
39
+ end
40
+
41
+ private
42
+ def long_name dir,file
43
+ File.join(dir,file).sub /^\.\//, ''
44
+ end
45
+ def is_dir? file
46
+ raise "file disappeared or did'nt exist..." unless File.exist? file
47
+ File.directory? file
48
+ end
49
+ end
50
+
8
51
  module DirProcessor
9
52
  def new &block
10
53
  DirProcessor.new &block
@@ -56,30 +99,7 @@ module DirProcessor
56
99
  def feed dir; @block.call dir end
57
100
  end
58
101
 
59
- def feed dir
60
- return unless accept? dir
61
-
62
- # Copy/Paste:
63
- crap = proc { |x| x == '.' || x == '..' }
64
- all = Dir.entries(dir).reject(&crap).group_by { |x| File.directory?(x) ? :dirs : :files }
65
- all_files = all[:files]
66
- all_dirs = all[:dirs]
67
-
68
- so2(:first).each do |processor|
69
- processor.feed dir
70
- end
71
- so2(:file).each do |processor|
72
- (all[:files] || []).each { |file| processor.feed long_name(dir,file) }
73
- end
74
- so2(:dir).each do |processor|
75
- (all[:dirs] || []).each { |f| processor.feed long_name(dir,f) }
76
- end
77
- end
78
-
79
- private
80
- def long_name dir,file
81
- File.join(dir,file).sub /^\.\//, ''
82
- end
102
+ include FeedMethod
83
103
  end
84
104
  extend DefDSL
85
105
  def_dsl ADir, AFile
@@ -93,28 +113,30 @@ module DirProcessor
93
113
  instance_eval &block #yield
94
114
  end
95
115
 
96
-
97
- def feed dir
98
- # return unless accept? dir
99
-
100
- # Copy/Paste:
101
- crap = proc { |x| x == '.' || x == '..' }
102
- all = Dir.entries(dir).reject(&crap).group_by { |x| File.directory?(x) ? :dirs : :files }
103
- all_files = all[:files]
104
- all_dirs = all[:dirs]
105
-
106
- so2(:file).each do |processor|
107
- (all[:files] || []).each { |file| processor.feed long_name(dir,file) }
108
- end
109
- so2(:dir).each do |processor|
110
- (all[:dirs] || []).each { |f| processor.feed long_name(dir,f) }
111
- end
112
- end
113
-
114
- private
115
- def long_name dir,file
116
- File.join(dir,file).sub /^\.\//, ''
117
- end
116
+ include FeedMethod
117
+ def accept?(*); true end
118
+
119
+ # def feed dir
120
+ # # return unless accept? dir
121
+
122
+ # # Copy/Paste:
123
+ # crap = proc { |x| x == '.' || x == '..' }
124
+ # all = Dir.entries(dir).reject(&crap).group_by { |x| File.directory?(x) ? :dirs : :files }
125
+ # all_files = all[:files]
126
+ # all_dirs = all[:dirs]
127
+
128
+ # so2(:file).each do |processor|
129
+ # (all[:files] || []).each { |file| processor.feed long_name(dir,file) }
130
+ # end
131
+ # so2(:dir).each do |processor|
132
+ # (all[:dirs] || []).each { |f| processor.feed long_name(dir,f) }
133
+ # end
134
+ # end
135
+
136
+ # private
137
+ # def long_name dir,file
138
+ # File.join(dir,file).sub /^\.\//, ''
139
+ # end
118
140
 
119
141
  # def feed dir
120
142
  # # @so = @dir.feed(dir).send(:so)
data/spec/example_spec.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # do we need variant for lazy stuff??? (to get rid of dir~first do)
2
- #
2
+ # one_dir / dir '', 1..2 do
3
3
  # (...)
4
4
  # so1,so2: returns just last and array
5
5
  # file,files: yields one by one and all as array
@@ -23,7 +23,7 @@ describe 'DirProcessor method' do
23
23
  end
24
24
 
25
25
  it 'is configured by block' do
26
- DirProcessor(){}.send(:so).should_not == DirProcessor(){ dir('.'){} }.send(:so)
26
+ DirProcessor(){}.send(:so).should_not == DirProcessor(){ dir('*'){} }.send(:so)
27
27
  end
28
28
 
29
29
  example 'main' do
@@ -34,7 +34,9 @@ describe 'DirProcessor method' do
34
34
  end
35
35
  dir 'mp3s' do
36
36
  first do |dir|
37
- Dir.exist?(dir).should == true
37
+ # already chdir-ed in the dir
38
+ File.basename(File.expand_path('.')).should == dir
39
+ # Dir.exist?(dir).should == true
38
40
  (data[:dirs] ||= []) << dir
39
41
  end
40
42
 
@@ -45,28 +47,31 @@ describe 'DirProcessor method' do
45
47
  end
46
48
  dir 'empty' do
47
49
  first do |dir|
48
- Dir.exist?(dir).should == true
50
+ # already chdir-ed in the dir
51
+ File.basename(File.expand_path('.')).should == dir
52
+ # Dir.exist?(dir).should == true
49
53
  (data[:dirs] ||= []) << dir
50
54
  end
51
55
  end
52
56
  end
53
57
 
54
58
  temp_dir do
55
- mkfile 'about.png'
56
- mkfile 'any.other'
59
+ mkfile '1/about.png'
60
+ mkfile '1/any.other'
57
61
 
58
- mkfile 'mp3s/one.mp3'
59
- mkfile 'mp3s/two.mp3'
60
- mkfile 'mp3s/three.mp3'
62
+ mkfile '1/mp3s/one.mp3'
63
+ mkfile '1/mp3s/two.mp3'
64
+ mkfile '1/mp3s/three.mp3'
61
65
 
62
- Dir.mkdir 'empty'
63
-
64
- this.feed '.'
66
+ mkdir '1/empty'
67
+
68
+ this.feed '1'
65
69
  end
66
70
 
67
71
  data.keys.should =~ [:about, :dirs, :mp3s]
68
72
  data[:about].should == 'about.png'
69
- data[:mp3s].should =~ %w[ mp3s/one.mp3 mp3s/two.mp3 mp3s/three.mp3 ]
73
+ # data[:mp3s].should =~ %w[ mp3s/one.mp3 mp3s/two.mp3 mp3s/three.mp3 ]
74
+ data[:mp3s].should =~ %w[ one.mp3 two.mp3 three.mp3 ]
70
75
  data[:dirs].should =~ %w[ empty mp3s ]
71
76
  end
72
77
 
@@ -74,21 +79,24 @@ describe 'DirProcessor method' do
74
79
  data = {}
75
80
 
76
81
  this = DirProcessor do
77
- dir 'empty' do
82
+ dir '*' do
78
83
  first do |dir|
79
- Dir.exist?(dir).should == true
84
+ # already chdir-ed in the dir
85
+ File.basename(File.expand_path('.')).should == dir
86
+ # Dir.exist?(dir).should == true
80
87
  (data[:dirs] ||= []) << dir
81
88
  end
82
89
  end
83
90
  end
84
91
 
85
92
  temp_dir do
86
- Dir.mkdir 'empty'
87
- this.feed '.'
93
+ mkdir '1/empty'
94
+ Dir.exist?('1/empty').should == true
95
+ this.feed '1'
88
96
  end
89
97
 
90
- data.keys.should =~ [:dirs]
91
- data[:dirs].should =~ %w[ empty ]
98
+ data.keys.should == [:dirs]
99
+ data[:dirs].should == %w[ empty ]
92
100
  end
93
101
 
94
102
  end
@@ -2,6 +2,7 @@ require 'fileutils'
2
2
 
3
3
  # runs block in temp dir, purge it after all
4
4
  def temp_dir temp='tmp/trash'
5
+ FileUtils.rm_rf temp
5
6
  FileUtils.mkpath temp
6
7
  Dir.chdir(temp) { yield }
7
8
  FileUtils.rm_rf temp
@@ -9,6 +10,10 @@ end
9
10
 
10
11
  # mkpath + touch
11
12
  def mkfile file
12
- FileUtils.mkpath File.split(file)[0]
13
+ mkdir File.split(file)[0]
13
14
  FileUtils.touch file
15
+ end
16
+
17
+ def mkdir dir
18
+ FileUtils.mkpath dir
14
19
  end
@@ -17,3 +17,5 @@ RSpec.configure do |config|
17
17
  # --seed 1234
18
18
  config.order = 'random'
19
19
  end
20
+
21
+ F = :focus
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dir_processor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander K
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-24 00:00:00.000000000 Z
11
+ date: 2013-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: def_dsl
57
71
  requirement: !ruby/object:Gem::Requirement