dir_processor 0.0.3 → 0.0.4

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.
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