defoker 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -0
- data/bin/defoker +19 -0
- data/lib/defoker/version.rb +1 -1
- data/lib/defoker_core.rb +28 -3
- data/spec/defoker_core_spec.rb +122 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a5f9afbcf61ccde102b125beaac16433ce3c251
|
4
|
+
data.tar.gz: 889fa48fe18e9c56fb152120dce25fd30c7254e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64da091ba8e210d74c2a063728f8d021b887ac7e2cb05c7930b3944bfb020496b6088dc63cf15eb430d944ff75d598b7d0001cf846301201a79954772182fccf
|
7
|
+
data.tar.gz: d01a268dc1a16947af3a0f777828213e2e345c7d0bf35ac082422f30dfb19ef3da091d3e6cba4ae88b95b2b734012061c9ec8b714fa1341b5bf853d8d92d9833
|
data/README.md
CHANGED
@@ -373,7 +373,89 @@ $ tree
|
|
373
373
|
┗ template.txt
|
374
374
|
~~~
|
375
375
|
|
376
|
+
### mv_month
|
377
|
+
move daily folders to monthly folder.
|
378
|
+
|
379
|
+
* Before move
|
380
|
+
|
381
|
+
~~~bash
|
382
|
+
$ tree
|
383
|
+
┣ 20141006_hige
|
384
|
+
┣ 20141007_hoge
|
385
|
+
┣ 20141106_hige
|
386
|
+
┣ 20141107_hoge
|
387
|
+
┣ 20141206_hige
|
388
|
+
┣ 20141207_hoge
|
389
|
+
┣ 20150106_hige
|
390
|
+
┣ 20150107_hoge
|
391
|
+
┗ invalid_folder
|
392
|
+
~~~
|
393
|
+
|
394
|
+
* Excute mv_month
|
395
|
+
|
396
|
+
~~~bash
|
397
|
+
$ defoker mv_month
|
398
|
+
$ tree
|
399
|
+
┣ 201410
|
400
|
+
┃ ┣ 06_hige
|
401
|
+
┃ ┗ 07_hoge
|
402
|
+
┣ 201411
|
403
|
+
┃ ┣ 06_hige
|
404
|
+
┃ ┗ 07_hoge
|
405
|
+
┣ 201412
|
406
|
+
┃ ┣ 06_hige
|
407
|
+
┃ ┗ 07_hoge
|
408
|
+
┣ 201501
|
409
|
+
┃ ┣ 06_hige
|
410
|
+
┃ ┗ 07_hoge
|
411
|
+
┗ invalid_folder
|
412
|
+
~~~
|
413
|
+
|
414
|
+
### mv_year
|
415
|
+
move monthly folders to yearly folder.
|
416
|
+
|
417
|
+
* Before move
|
418
|
+
|
419
|
+
~~~bash
|
420
|
+
$ tree
|
421
|
+
┣ 201410
|
422
|
+
┃ ┣ 06_hige
|
423
|
+
┃ ┗ 07_hoge
|
424
|
+
┣ 201411
|
425
|
+
┃ ┣ 06_hige
|
426
|
+
┃ ┗ 07_hoge
|
427
|
+
┣ 201412
|
428
|
+
┃ ┣ 06_hige
|
429
|
+
┃ ┗ 07_hoge
|
430
|
+
┣ 201501
|
431
|
+
┃ ┣ 06_hige
|
432
|
+
┃ ┗ 07_hoge
|
433
|
+
┗ invalid_folder
|
434
|
+
~~~
|
435
|
+
|
436
|
+
* Excute mv_month
|
437
|
+
|
438
|
+
~~~bash
|
439
|
+
$ defoker mv_year
|
440
|
+
┣ 2014
|
441
|
+
┃ ┣ 10
|
442
|
+
┃ ┃ ┣ 06_hige
|
443
|
+
┃ ┃ ┗ 07_hoge
|
444
|
+
┃ ┣ 11
|
445
|
+
┃ ┃ ┣ 06_hige
|
446
|
+
┃ ┃ ┗ 07_hoge
|
447
|
+
┃ ┗ 12
|
448
|
+
┃ ┣ 06_hige
|
449
|
+
┃ ┗ 07_hoge
|
450
|
+
┣ 2015
|
451
|
+
┃ ┗ 01
|
452
|
+
┃ ┣ 06_hige
|
453
|
+
┃ ┗ 07_hoge
|
454
|
+
┗ invalid_folder
|
455
|
+
~~~
|
456
|
+
|
376
457
|
## History
|
458
|
+
* version 0.0.7 : Add mv_month, mv_year commands.
|
377
459
|
* version 0.0.6 : Add callback in Defokerfile.
|
378
460
|
* version 0.0.5 : Fix typo in Defokerfile Template.
|
379
461
|
* version 0.0.4 : Add init/rule command for rule-output.
|
data/bin/defoker
CHANGED
@@ -109,12 +109,31 @@ module Defoker
|
|
109
109
|
exit(false)
|
110
110
|
end
|
111
111
|
|
112
|
+
desc 'mv_month', 'move daily folders to monthly folder'
|
113
|
+
def mv_month
|
114
|
+
Defoker::Core.mv_month
|
115
|
+
exit(true)
|
116
|
+
rescue => e
|
117
|
+
STDERR.puts(e.backtrace)
|
118
|
+
exit(false)
|
119
|
+
end
|
120
|
+
|
121
|
+
desc 'mv_year', 'move monthly folders to yearly folder'
|
122
|
+
def mv_year
|
123
|
+
Defoker::Core.mv_year
|
124
|
+
exit(true)
|
125
|
+
rescue => e
|
126
|
+
STDERR.puts(e.backtrace)
|
127
|
+
exit(false)
|
128
|
+
end
|
129
|
+
|
112
130
|
desc 'version', 'version'
|
113
131
|
def version
|
114
132
|
p Defoker::VERSION
|
115
133
|
end
|
116
134
|
|
117
135
|
private
|
136
|
+
|
118
137
|
def defoker_core_single_caller(method_name)
|
119
138
|
additional = options[:additional] ? options[:additional] : ''
|
120
139
|
dir = Defoker::Core.send(method_name, additional: additional)
|
data/lib/defoker/version.rb
CHANGED
data/lib/defoker_core.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'date_base_name'
|
3
3
|
require 'date'
|
4
|
+
require 'pathname'
|
4
5
|
require 'defoker_dsl'
|
5
6
|
require 'defoker_dsl_model'
|
6
7
|
|
@@ -26,9 +27,9 @@ base ''
|
|
26
27
|
# comment out following lines and edit your logic.
|
27
28
|
|
28
29
|
# callback ->(dir) {
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
30
|
+
# p dir
|
31
|
+
# # create File in your dir
|
32
|
+
# File.open("\#{dir}/some_template_file.txt", "w:utf-8") { |e|e.puts 'some template'}
|
32
33
|
# }
|
33
34
|
EOS
|
34
35
|
|
@@ -154,6 +155,30 @@ base ''
|
|
154
155
|
[dir, callback]
|
155
156
|
end
|
156
157
|
|
158
|
+
# Move YYYYMMDD_somename format folder to YYYYMM folder.
|
159
|
+
#
|
160
|
+
def self.mv_month
|
161
|
+
Dir.glob('*/').each do |dir|
|
162
|
+
next unless dir =~ %r(^[0-9]{8}(_.*)*/$)
|
163
|
+
month_dir = dir[0, 6]
|
164
|
+
FileUtils.mkdir_p(month_dir) unless Dir.exist?(month_dir)
|
165
|
+
day_dir = dir[6..-1]
|
166
|
+
FileUtils.mv(dir, File.join(month_dir, day_dir))
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
# Move YYYYMM_somename format folder to YYYY folder.
|
171
|
+
#
|
172
|
+
def self.mv_year
|
173
|
+
Dir.glob('*/').each do |dir|
|
174
|
+
next unless dir =~ %r(^[0-9]{6}(_.*)*/$)
|
175
|
+
year_dir = dir[0, 4]
|
176
|
+
FileUtils.mkdir_p(year_dir) unless Dir.exist?(year_dir)
|
177
|
+
month_dir = dir[4..-1]
|
178
|
+
FileUtils.mv(dir, File.join(year_dir, month_dir))
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
157
182
|
def self.read_dsl
|
158
183
|
dsl = Defoker::Dsl.new
|
159
184
|
unless File.exist?(DEFOKERFILE_PATH)
|
data/spec/defoker_core_spec.rb
CHANGED
@@ -737,4 +737,126 @@ base "hoge"
|
|
737
737
|
end
|
738
738
|
end
|
739
739
|
end
|
740
|
+
|
741
|
+
context :mv_month do
|
742
|
+
DEFOKER_MV_MONTH_TMP_DIR = 'tmp_mv_month'
|
743
|
+
|
744
|
+
cases = [
|
745
|
+
{
|
746
|
+
case_no: 1,
|
747
|
+
case_title: 'valid case',
|
748
|
+
setup_dirs: %w(20141006_hige 20141007_hoge 20141106_hige 20141107_hoge 20141206_hige 20141207_hoge 20150106_hige 20150107_hoge invalid_folder),
|
749
|
+
expected: [
|
750
|
+
'201410/06_hige',
|
751
|
+
'201410/07_hoge',
|
752
|
+
'201411/06_hige',
|
753
|
+
'201411/07_hoge',
|
754
|
+
'201412/06_hige',
|
755
|
+
'201412/07_hoge',
|
756
|
+
'201501/06_hige',
|
757
|
+
'201501/07_hoge',
|
758
|
+
'invalid_folder'
|
759
|
+
]
|
760
|
+
}
|
761
|
+
]
|
762
|
+
|
763
|
+
cases.each do |c|
|
764
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
765
|
+
begin
|
766
|
+
case_before c
|
767
|
+
|
768
|
+
# -- given --
|
769
|
+
# nothing
|
770
|
+
|
771
|
+
# -- when --
|
772
|
+
Defoker::Core.mv_month
|
773
|
+
|
774
|
+
# -- then --
|
775
|
+
c[:expected].each do |dir|
|
776
|
+
existence = Dir.exist?(dir)
|
777
|
+
expect(existence).to be_true
|
778
|
+
end
|
779
|
+
ensure
|
780
|
+
case_after c
|
781
|
+
end
|
782
|
+
end
|
783
|
+
|
784
|
+
def case_before(c)
|
785
|
+
Dir.mkdir(DEFOKER_MV_MONTH_TMP_DIR) unless Dir.exist? DEFOKER_MV_MONTH_TMP_DIR
|
786
|
+
Dir.chdir(DEFOKER_MV_MONTH_TMP_DIR)
|
787
|
+
FileUtils.mkdir_p(c[:setup_dirs])
|
788
|
+
end
|
789
|
+
|
790
|
+
def case_after(c) # rubocop:disable UnusedMethodArgument
|
791
|
+
Dir.chdir('../')
|
792
|
+
FileUtils.rm_rf(DEFOKER_MV_MONTH_TMP_DIR) if Dir.exist? DEFOKER_MV_MONTH_TMP_DIR
|
793
|
+
end
|
794
|
+
end
|
795
|
+
end
|
796
|
+
|
797
|
+
context :mv_year do
|
798
|
+
DEFOKER_MV_YEAR_TMP_DIR = 'tmp_mv_year'
|
799
|
+
|
800
|
+
cases = [
|
801
|
+
{
|
802
|
+
case_no: 1,
|
803
|
+
case_title: 'valid case',
|
804
|
+
setup_dirs: %w(
|
805
|
+
201410/06_hige
|
806
|
+
201410/07_hoge
|
807
|
+
201411/06_hige
|
808
|
+
201411/07_hoge
|
809
|
+
201412/06_hige
|
810
|
+
201412/07_hoge
|
811
|
+
201501/06_hige
|
812
|
+
201501/07_hoge
|
813
|
+
invalid_folde
|
814
|
+
),
|
815
|
+
expected: %w(
|
816
|
+
2014/10/06_hige
|
817
|
+
2014/10/07_hoge
|
818
|
+
2014/11/06_hige
|
819
|
+
2014/11/07_hoge
|
820
|
+
2014/12/06_hige
|
821
|
+
2014/12/07_hoge
|
822
|
+
2015/01/06_hige
|
823
|
+
2015/01/07_hoge
|
824
|
+
invalid_folde
|
825
|
+
)
|
826
|
+
}
|
827
|
+
]
|
828
|
+
|
829
|
+
cases.each do |c|
|
830
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
831
|
+
begin
|
832
|
+
case_before c
|
833
|
+
|
834
|
+
# -- given --
|
835
|
+
# nothing
|
836
|
+
|
837
|
+
# -- when --
|
838
|
+
Defoker::Core.mv_year
|
839
|
+
|
840
|
+
# -- then --
|
841
|
+
c[:expected].each do |dir|
|
842
|
+
existence = Dir.exist?(dir)
|
843
|
+
expect(existence).to be_true
|
844
|
+
end
|
845
|
+
ensure
|
846
|
+
case_after c
|
847
|
+
end
|
848
|
+
end
|
849
|
+
|
850
|
+
def case_before(c)
|
851
|
+
Dir.mkdir(DEFOKER_MV_YEAR_TMP_DIR) unless Dir.exist? DEFOKER_MV_YEAR_TMP_DIR
|
852
|
+
Dir.chdir(DEFOKER_MV_YEAR_TMP_DIR)
|
853
|
+
FileUtils.mkdir_p(c[:setup_dirs])
|
854
|
+
end
|
855
|
+
|
856
|
+
def case_after(c) # rubocop:disable UnusedMethodArgument
|
857
|
+
Dir.chdir('../')
|
858
|
+
FileUtils.rm_rf(DEFOKER_MV_YEAR_TMP_DIR) if Dir.exist? DEFOKER_MV_YEAR_TMP_DIR
|
859
|
+
end
|
860
|
+
end
|
861
|
+
end
|
740
862
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: defoker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tbpgr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|