defoker 0.0.6 → 0.0.7
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 +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
|