diter 0.1.1 → 0.1.2
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/.yardopts +1 -0
- data/README.md +1 -1
- data/bin/diter +38 -2
- data/diter.gemspec +7 -2
- data/lib/diter/version.rb +3 -0
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94747650af6e626f711d0341f35f3125ae5fec03
|
4
|
+
data.tar.gz: 35317fe2907e045be258f308e3a9dab624aeb6cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce80f11fff16d7e4be457c58c36c09adbae888c1c3ac694eaed00682c8b927612e4664a5b94f78e4373c07121dcf8827c2a00a70504df615c6cf496db3c45f99
|
7
|
+
data.tar.gz: d77d4b939d3a87d89ed4bcacad41f8cc348e1fcfb87dd11a1b0254f36f4e7e1a5af922f1a6252a0564e21a961ad366a31e88d699557d3dee76f93a8d986a9a44
|
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
-m markdown bin/*
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ Refer to [Date#strftime](https://docs.ruby-lang.org/en/2.1.0/Date.html#method-i-
|
|
52
52
|
|
53
53
|
*Parallel execution (with xargs):*
|
54
54
|
|
55
|
-
$
|
55
|
+
$ diter 2016-01-01 2016-01-03 | xargs -I{} -P2 -t echo date={}
|
56
56
|
echo date=2016-01-01
|
57
57
|
echo date=2016-01-02
|
58
58
|
date=2016-01-01
|
data/bin/diter
CHANGED
@@ -2,6 +2,22 @@
|
|
2
2
|
|
3
3
|
require 'date'
|
4
4
|
|
5
|
+
# `Diter` enumerate dates with some filters.
|
6
|
+
#
|
7
|
+
# require 'diter'
|
8
|
+
#
|
9
|
+
# from = Date.new(2016, 1, 1)
|
10
|
+
# to = Date.new(2016, 1, 31)
|
11
|
+
#
|
12
|
+
# Diter[from, to, wday: 3].each do |date|
|
13
|
+
# puts date.strftime('%Y/%m/%d')
|
14
|
+
# end
|
15
|
+
# #=>
|
16
|
+
# # 2016/01/06
|
17
|
+
# # 2016/01/13
|
18
|
+
# # 2016/01/20
|
19
|
+
# # 2016/01/27
|
20
|
+
#
|
5
21
|
class Diter
|
6
22
|
include Enumerable
|
7
23
|
|
@@ -9,12 +25,30 @@ class Diter
|
|
9
25
|
alias [] new
|
10
26
|
end
|
11
27
|
|
28
|
+
# Return a new instance of `Diter`.
|
29
|
+
#
|
30
|
+
# If `from` is greater than `to`, it enumerate dates in reverse order.
|
31
|
+
#
|
32
|
+
# @param [Date] from the start of dates
|
33
|
+
# @param [Date] to the end of dates
|
34
|
+
# @param [Hash] options
|
35
|
+
# @option options [Integer] :wday (nil) filter by the day of a week.
|
36
|
+
# @option options [Integer] :mday (nil) filter by the day of a month.
|
37
|
+
# @return [Diter]
|
12
38
|
def initialize(from, to, options = {})
|
13
39
|
@range = from < to ? from..to : (to..from).reverse_each
|
14
40
|
@options = options
|
15
41
|
end
|
16
42
|
|
43
|
+
# Calls the given block once for each date.
|
44
|
+
#
|
45
|
+
# Return `self` if no block is given.
|
46
|
+
#
|
47
|
+
# @yieldparam date [Date]
|
48
|
+
# @return [Diter] self
|
17
49
|
def each
|
50
|
+
return self unless block_given?
|
51
|
+
|
18
52
|
@range.each do |date|
|
19
53
|
next unless filter_wday(date)
|
20
54
|
next unless filter_mday(date)
|
@@ -23,6 +57,8 @@ class Diter
|
|
23
57
|
end
|
24
58
|
end
|
25
59
|
|
60
|
+
private
|
61
|
+
|
26
62
|
def filter_wday(date)
|
27
63
|
return true unless @options[:wday]
|
28
64
|
|
@@ -47,10 +83,10 @@ unless $DITER_REQUIRED # $DITER_REQUIRED is set to true in lib/diter.rb
|
|
47
83
|
Process.waitpid(spawn(program, *args))
|
48
84
|
$?.success?
|
49
85
|
rescue Errno::EACCES, Errno::ENOEXEC
|
50
|
-
$stderr.puts "diter: not executable: #{
|
86
|
+
$stderr.puts "diter: not executable: #{program}"
|
51
87
|
false
|
52
88
|
rescue Errno::ENOENT
|
53
|
-
$stderr.puts "diter: command not found: #{
|
89
|
+
$stderr.puts "diter: command not found: #{program}"
|
54
90
|
false
|
55
91
|
end
|
56
92
|
|
data/diter.gemspec
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'diter/version'
|
6
|
+
|
3
7
|
Gem::Specification.new do |spec|
|
4
8
|
spec.name = 'diter'
|
5
|
-
spec.version =
|
9
|
+
spec.version = Diter::VERSION
|
6
10
|
spec.authors = ['Hikaru Ojima']
|
7
|
-
spec.email = ['
|
11
|
+
spec.email = ['amijo4rihaku@gmail.com']
|
8
12
|
|
9
13
|
spec.summary = 'Date iteration utility.'
|
10
14
|
spec.description = 'Date iteration utility.'
|
@@ -20,4 +24,5 @@ Gem::Specification.new do |spec|
|
|
20
24
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
21
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
22
26
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
27
|
+
spec.add_development_dependency 'yard', '~> 0.9'
|
23
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hikaru Ojima
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,9 +52,23 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: yard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.9'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.9'
|
55
69
|
description: Date iteration utility.
|
56
70
|
email:
|
57
|
-
-
|
71
|
+
- amijo4rihaku@gmail.com
|
58
72
|
executables:
|
59
73
|
- diter
|
60
74
|
extensions: []
|
@@ -62,6 +76,7 @@ extra_rdoc_files: []
|
|
62
76
|
files:
|
63
77
|
- ".gitignore"
|
64
78
|
- ".travis.yml"
|
79
|
+
- ".yardopts"
|
65
80
|
- CODE_OF_CONDUCT.md
|
66
81
|
- Gemfile
|
67
82
|
- LICENSE.txt
|
@@ -70,6 +85,7 @@ files:
|
|
70
85
|
- bin/diter
|
71
86
|
- diter.gemspec
|
72
87
|
- lib/diter.rb
|
88
|
+
- lib/diter/version.rb
|
73
89
|
homepage: https://github.com/ojima-h/diter
|
74
90
|
licenses:
|
75
91
|
- MIT
|