defoker 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 566abb39743a690c37d78d0d84803aa41d6b94c3
4
+ data.tar.gz: 22935a2803580506ed809b539c96fa2ef0d1c7d8
5
+ SHA512:
6
+ metadata.gz: 55d634319f4a080eb26d7c8c837134d14d7f59ce84c05415a085ee4d5c70caeead112b91b368ea6b6fed9bd2123e60ecc1750336cccd85a599821bc79ca08938
7
+ data.tar.gz: bacaa8a01b56b9a4172b651cab594208ba5f73958963b7742e26339a771ff02db84dd7d5c5d8b3dbc7919a36e69655898d2ab1a800a01dde4163bdc6bc977125
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ inherit_from: rubocop-todo.yml
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ before_install:
3
+ - gem update --system 2.1.11
4
+ - gem --version
5
+ rvm:
6
+ - 2.0.0
7
+ - 2.1.0
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+ gem "rspec", "~> 2.14.1"
5
+ gem "thor", "~> 0.18.1"
6
+ gem "simplecov", "~> 0.8.2"
7
+ gem "activesupport", "~> 4.0.1"
8
+ gem "activemodel", "~> 4.0.2"
9
+ gem "tudu", "~> 0.0.4"
10
+
11
+ group :doc do
12
+ gem "yard"
13
+ end
14
+
15
+ group :test do
16
+ gem 'coveralls', require: false
17
+ gem "timecop"
18
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 tbpgr
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,284 @@
1
+ # Defoker
2
+
3
+ [![Build Status](https://travis-ci.org/tbpgr/defoker.png?branch=master)](https://travis-ci.org/tbpgr/defoker)
4
+ [![Coverage Status](https://coveralls.io/repos/tbpgr/defoker/badge.png)](https://coveralls.io/r/tbpgr/defoker)
5
+
6
+ Defoker is date/month/year base format named folder generator.
7
+ Defoker = DatE format FOlder maKER.
8
+
9
+ ## Demo
10
+ ![defoker demo](./images/defoker.gif)
11
+
12
+ ## Target Versions
13
+ * Ruby 2.0
14
+ * Ruby 2.1
15
+
16
+ ## Installation
17
+
18
+ Add this line to your application's Gemfile:
19
+
20
+ ```ruby
21
+ gem 'defoker'
22
+ ```
23
+
24
+ And then execute:
25
+
26
+ $ bundle
27
+
28
+ Or install it yourself as:
29
+
30
+ $ gem install defoker
31
+
32
+ ## Usage
33
+ ### help
34
+ ~~~bash
35
+ $ defoker help
36
+ ~~~
37
+
38
+ ### today
39
+ * no additional text
40
+
41
+ ~~~bash
42
+ # execute at 2014/10/01
43
+ $ defoker today
44
+ $ ls -F | grep /
45
+ 20141001/
46
+ ~~~
47
+
48
+ * with additional text
49
+
50
+ ~~~bash
51
+ # execute at 2014/10/01
52
+ $ defoker today -a hoge
53
+ $ ls -F | grep /
54
+ 20141001_hoge/
55
+ ~~~
56
+
57
+ ### tommorow
58
+ * no additional text
59
+
60
+ ~~~bash
61
+ # execute at 2014/10/01
62
+ $ defoker tommorow
63
+ $ ls -F | grep /
64
+ 20141002/
65
+ ~~~
66
+
67
+ * with additional text
68
+
69
+ ~~~bash
70
+ # execute at 2014/10/01
71
+ $ defoker tommorow -a hoge
72
+ $ ls -F | grep /
73
+ 20141002_hoge/
74
+ ~~~
75
+
76
+ ### yesterday
77
+ * no additional text
78
+
79
+ ~~~bash
80
+ # execute at 2014/10/01
81
+ $ defoker yesterday
82
+ $ ls -F | grep /
83
+ 2014930/
84
+ ~~~
85
+
86
+ * with additional text
87
+
88
+ ~~~bash
89
+ # execute at 2014/10/01
90
+ $ defoker yesterday -a hoge
91
+ $ ls -F | grep /
92
+ 2014930_hoge/
93
+ ~~~
94
+
95
+ ### days
96
+ * no count, additional text
97
+
98
+ ~~~bash
99
+ # default = 3 directories
100
+ $ defoker days 20140920
101
+ $ ls -F | grep /
102
+ 20140920/
103
+ 20140921/
104
+ 20140922/
105
+ ~~~
106
+
107
+ * with repeat count, additional text
108
+
109
+ ~~~bash
110
+ $ defoker days 20140920 -c 4 -a hoge
111
+ $ ls -F | grep /
112
+ 20140920_hoge/
113
+ 20140921_hoge/
114
+ 20140922_hoge/
115
+ 20140923_hoge/
116
+ ~~~
117
+
118
+ ### this_month
119
+ * no additional text
120
+
121
+ ~~~bash
122
+ # execute at 2014/10/01
123
+ $ defoker this_month
124
+ $ ls -F | grep /
125
+ 201410/
126
+ ~~~
127
+
128
+ * with additional text
129
+
130
+ ~~~bash
131
+ # execute at 2014/10/01
132
+ $ defoker this_month -a hoge
133
+ $ ls -F | grep /
134
+ 201410_hoge/
135
+ ~~~
136
+
137
+ ### next_month
138
+ * no additional text
139
+
140
+ ~~~bash
141
+ # execute at 2014/10/01
142
+ $ defoker next_month
143
+ $ ls -F | grep /
144
+ 201411/
145
+ ~~~
146
+
147
+ * with additional text
148
+
149
+ ~~~bash
150
+ # execute at 2014/10/01
151
+ $ defoker next_month -a hoge
152
+ $ ls -F | grep /
153
+ 201411_hoge/
154
+ ~~~
155
+
156
+ ### previous_month
157
+ * no additional text
158
+
159
+ ~~~bash
160
+ # execute at 2014/10/01
161
+ $ defoker previous_month
162
+ $ ls -F | grep /
163
+ 201409/
164
+ ~~~
165
+
166
+ * with additional text
167
+
168
+ ~~~bash
169
+ # execute at 2014/10/01
170
+ $ defoker previous_month -a hoge
171
+ $ ls -F | grep /
172
+ 201409_hoge/
173
+ ~~~
174
+
175
+ ### months
176
+ * no count, additional text
177
+
178
+ ~~~bash
179
+ $ defoker months 201410
180
+ $ ls -F | grep /
181
+ 201410/
182
+ 201411/
183
+ 201412/
184
+ ~~~
185
+
186
+ * with count, additional text
187
+
188
+ ~~~bash
189
+ $ defoker months 201410 -c 4 -a hoge
190
+ $ ls -F | grep /
191
+ 201410_hoge/
192
+ 201411_hoge/
193
+ 201412_hoge/
194
+ 201501_hoge/
195
+ ~~~
196
+
197
+ ### this_year
198
+ * no additional text
199
+
200
+ ~~~bash
201
+ # execute at 2014/10/01
202
+ $ defoker this_year
203
+ $ ls -F | grep /
204
+ 2014/
205
+ ~~~
206
+
207
+ * with additional text
208
+
209
+ ~~~bash
210
+ # execute at 2014/10/01
211
+ $ defoker this_year -a hoge
212
+ $ ls -F | grep /
213
+ 2014_hoge/
214
+ ~~~
215
+
216
+ ### next_year
217
+ * no additional text
218
+
219
+ ~~~bash
220
+ # execute at 2014/10/01
221
+ $ defoker next_year
222
+ $ ls -F | grep /
223
+ 2015/
224
+ ~~~
225
+
226
+ * with additional text
227
+
228
+ ~~~bash
229
+ # execute at 2014/10/01
230
+ $ defoker next_year -a hoge
231
+ $ ls -F | grep /
232
+ 2015_hoge/
233
+ ~~~
234
+
235
+ ### previous_year
236
+ * no additional text
237
+
238
+ ~~~bash
239
+ # execute at 2014/10/01
240
+ $ defoker previous_year
241
+ $ ls -F | grep /
242
+ 2013/
243
+ ~~~
244
+
245
+ * with additional text
246
+
247
+ ~~~bash
248
+ # execute at 2014/10/01
249
+ $ defoker previous_year -a hoge
250
+ $ ls -F | grep /
251
+ 2013_hoge/
252
+ ~~~
253
+
254
+ ### years
255
+ * no count, additional text
256
+
257
+ ~~~bash
258
+ $ ls -F | grep /
259
+ 2014/
260
+ 2015/
261
+ 2016/
262
+ ~~~
263
+
264
+ * with count, additional text
265
+
266
+ ~~~bash
267
+ $ defoker years 2014 -c 4 -a hoge
268
+ $ ls -F | grep /
269
+ 2014_hoge/
270
+ 2015_hoge/
271
+ 2016_hoge/
272
+ 2017_hoge/
273
+ ~~~
274
+
275
+ ## History
276
+ * version 0.0.1 : First release.
277
+
278
+ ## Contributing
279
+
280
+ 1. Fork it ( https://github.com/[my-github-username]/defoker/fork )
281
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
282
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
283
+ 4. Push to the branch (`git push origin my-new-feature`)
284
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core'
3
+ require 'rspec/core/rake_task'
4
+ task default: [:spec]
5
+
6
+ RSpec::Core::RakeTask.new(:spec) do |spec|
7
+ spec.pattern = 'spec/**/*_spec.rb'
8
+ end
data/bin/defoker ADDED
@@ -0,0 +1,117 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'defoker_core'
5
+ require 'defoker/version'
6
+ require 'thor'
7
+ require 'fileutils'
8
+
9
+ module Defoker
10
+ # = Defoker CLI
11
+ class CLI < Thor
12
+ class_option :help, type: :boolean, aliases: '-h', desc: 'help message.'
13
+ class_option :version, type: :boolean, desc: 'version'
14
+
15
+ option :additional, aliases: 'a'
16
+ desc 'today', 'create today folder. ex) 20140912, 20140912_hoge'
17
+ def today
18
+ defoker_core_single_caller(:today)
19
+ end
20
+
21
+ option :additional, aliases: 'a'
22
+ desc 'tommorow', 'create tommorow folder. ex) 20140913, 20140913_hoge'
23
+ def tommorow
24
+ defoker_core_single_caller(:tommorow)
25
+ end
26
+
27
+ option :additional, aliases: 'a'
28
+ desc 'yesterday', 'create yesterday folder. ex) 20140911, 20140911_hoge'
29
+ def yesterday
30
+ defoker_core_single_caller(:yesterday)
31
+ end
32
+
33
+ option :count, aliases: 'c'
34
+ option :additional, aliases: 'a'
35
+ desc 'days', "create day folder list. ex) ['20140909','20140910','20140911','20140912'], ['20140909_hoge','20140910_hoge','20140911_hoge','20140912_hoge']"
36
+ def days(date)
37
+ defoker_core_multi_caller(date, :days)
38
+ end
39
+
40
+ option :additional, aliases: 'a'
41
+ desc 'this_month', 'create this_month folder. ex) 201409, 201409_hoge'
42
+ def this_month
43
+ defoker_core_single_caller(:this_month)
44
+ end
45
+
46
+ option :additional, aliases: 'a'
47
+ desc 'next_month', 'create next_month folder. ex) 201410, 201410_hoge'
48
+ def next_month
49
+ defoker_core_single_caller(:next_month)
50
+ end
51
+
52
+ option :additional, aliases: 'a'
53
+ desc 'previous_month', 'create previous_month folder. ex) 201410, 201410_hoge'
54
+ def previous_month
55
+ defoker_core_single_caller(:previous_month)
56
+ end
57
+
58
+ option :count, aliases: 'c'
59
+ option :additional, aliases: 'a'
60
+ desc 'months', "create month folder list. ex) ['201410','201411','201412','201501'], ['201410_hoge','201411_hoge','201412_hoge','201501_hoge']"
61
+ def months(date)
62
+ defoker_core_multi_caller(date, :months)
63
+ end
64
+
65
+ option :additional, aliases: 'a'
66
+ desc 'this_year', 'create this_year folder. ex) 2014, 2014_hoge'
67
+ def this_year
68
+ defoker_core_single_caller(:this_year)
69
+ end
70
+
71
+ option :additional, aliases: 'a'
72
+ desc 'next_year', 'create next_year folder. ex) 2015, 2015_hoge'
73
+ def next_year
74
+ defoker_core_single_caller(:next_year)
75
+ end
76
+
77
+ option :additional, aliases: 'a'
78
+ desc 'previous_year', 'create previous_year folder. ex) 2013, 2013_hoge'
79
+ def previous_year
80
+ defoker_core_single_caller(:previous_year)
81
+ end
82
+
83
+ option :count, aliases: 'c'
84
+ option :additional, aliases: 'a'
85
+ desc 'years', "create year folder list. ex) ['2014','2015','2016','2017'], ['2014_hoge','2015_hoge','2016_hoge','2017_hoge']"
86
+ def years(date)
87
+ defoker_core_multi_caller(date, :years)
88
+ end
89
+
90
+ desc 'version', 'version'
91
+ def version
92
+ p Defoker::VERSION
93
+ end
94
+
95
+ private
96
+ def defoker_core_single_caller(method_name)
97
+ additional = options[:additional] ? options[:additional] : ''
98
+ dir = Defoker::Core.new.send(method_name, additional: additional)
99
+ FileUtils.mkdir_p(dir)
100
+ exit(true)
101
+ rescue
102
+ exit(false)
103
+ end
104
+
105
+ def defoker_core_multi_caller(date, method_name)
106
+ count = options[:count] ? options[:count].to_i : 3
107
+ additional = options[:additional] ? options[:additional] : ''
108
+ dirs = Defoker::Core.new.send(method_name, date, count: count, additional: additional)
109
+ FileUtils.mkdir_p(dirs)
110
+ exit(true)
111
+ rescue
112
+ exit(false)
113
+ end
114
+ end
115
+ end
116
+
117
+ Defoker::CLI.start(ARGV)