dateseq 0.0.2 → 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 +5 -5
- data/.github/workflows/test.yml +65 -0
- data/bin/dateseq +9 -1
- data/dateseq.gemspec +2 -1
- data/lib/dateseq/version.rb +1 -1
- data/lib/dateseq.rb +2 -1
- data/spec/dateseq_spec.rb +41 -14
- data/spec/spec_helper.rb +5 -0
- metadata +25 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3a181e21b26cb80b06328a19ca5a8b01709556b01e5840dd653d552da68d15db
|
4
|
+
data.tar.gz: '0586f2a9e65c5463a12acaddbff677b0a8eb48aecf20cc309f013a57db9df305'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e63e1131f63cc5d61627e610249c36f97e706c720c3472dbb80114af0ee09c30b85ad0f9be7260122c783814c7cd302a06aeaa420e942bc5323a65a70c3a5be
|
7
|
+
data.tar.gz: 6cae8ce41f398bf9f60c79100d18aa1e2421cd829d150eb3ff396fb192cf0f6302951a5d09c6f186ef7a25ef27d4186c01368b306543658a41e6342ebb13ff19
|
@@ -0,0 +1,65 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
types:
|
9
|
+
- opened
|
10
|
+
- synchronize
|
11
|
+
- reopened
|
12
|
+
schedule:
|
13
|
+
- cron: "0 10 * * 5" # JST 19:00 (Fri)
|
14
|
+
|
15
|
+
env:
|
16
|
+
RUBYOPT: -EUTF-8
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
test:
|
20
|
+
runs-on: ubuntu-latest
|
21
|
+
|
22
|
+
strategy:
|
23
|
+
fail-fast: false
|
24
|
+
|
25
|
+
matrix:
|
26
|
+
ruby:
|
27
|
+
- "2.6"
|
28
|
+
- "2.7"
|
29
|
+
- "3.0"
|
30
|
+
- "3.1"
|
31
|
+
- "3.2"
|
32
|
+
|
33
|
+
steps:
|
34
|
+
- uses: actions/checkout@v3
|
35
|
+
|
36
|
+
- uses: ruby/setup-ruby@v1
|
37
|
+
with:
|
38
|
+
ruby-version: ${{ matrix.ruby }}
|
39
|
+
bundler-cache: true
|
40
|
+
|
41
|
+
- run: bundle update --jobs $(nproc) --retry 3
|
42
|
+
|
43
|
+
- name: bundle update
|
44
|
+
run: |
|
45
|
+
set -xe
|
46
|
+
bundle config path vendor/bundle
|
47
|
+
bundle update --jobs $(nproc) --retry 3
|
48
|
+
|
49
|
+
- name: Setup Code Climate Test Reporter
|
50
|
+
uses: aktions/codeclimate-test-reporter@v1
|
51
|
+
with:
|
52
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
53
|
+
command: before-build
|
54
|
+
continue-on-error: true
|
55
|
+
|
56
|
+
- run: bundle exec rspec
|
57
|
+
timeout-minutes: 1
|
58
|
+
|
59
|
+
- name: Teardown Code Climate Test Reporter
|
60
|
+
uses: aktions/codeclimate-test-reporter@v1
|
61
|
+
with:
|
62
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
63
|
+
command: after-build
|
64
|
+
if: always()
|
65
|
+
continue-on-error: true
|
data/bin/dateseq
CHANGED
@@ -13,7 +13,15 @@ opt.on('-f', '--format FORMAT',
|
|
13
13
|
end
|
14
14
|
opt.on('-s', '--separator SEP',
|
15
15
|
'Set separator charactor (default is \'\n\')') do |v|
|
16
|
-
options[:sep] = v
|
16
|
+
options[:sep] = case v
|
17
|
+
when '\t' then "\t"
|
18
|
+
when '\n' then "\n"
|
19
|
+
else v
|
20
|
+
end
|
21
|
+
end
|
22
|
+
opt.on('-p', '--step NUM',
|
23
|
+
'Set date step (default is 1)') do |v|
|
24
|
+
options[:step] = v.to_i
|
17
25
|
end
|
18
26
|
opt.on('-h', '--help', 'Show this message') do
|
19
27
|
abort(opt.help)
|
data/dateseq.gemspec
CHANGED
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '
|
21
|
+
spec.add_development_dependency 'bundler', '>= 2.2.33'
|
22
22
|
spec.add_development_dependency 'rake'
|
23
23
|
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'simplecov'
|
24
25
|
end
|
data/lib/dateseq/version.rb
CHANGED
data/lib/dateseq.rb
CHANGED
@@ -8,12 +8,13 @@ module Dateseq
|
|
8
8
|
def initialize(options)
|
9
9
|
@format = options[:format] || '%Y%m%d'
|
10
10
|
@sep = options[:sep] || "\n"
|
11
|
+
@step = options[:step] || 1
|
11
12
|
end
|
12
13
|
|
13
14
|
def sequence(from_date, to_date)
|
14
15
|
from = Date.parse(from_date)
|
15
16
|
to = Date.parse(to_date)
|
16
|
-
from.
|
17
|
+
from.step(to, @step).map do |date|
|
17
18
|
date.strftime(@format)
|
18
19
|
end
|
19
20
|
end
|
data/spec/dateseq_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Dateseq do
|
3
|
+
describe Dateseq::Generator do
|
4
4
|
it 'should have a version number' do
|
5
5
|
expect(Dateseq::VERSION).not_to be_nil
|
6
6
|
end
|
@@ -12,21 +12,48 @@ describe Dateseq do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
shared_examples_for 'generate date sequence_str' do
|
16
|
+
it 'generate date sequence_str' do
|
17
|
+
seq = generator.sequence_str(from, to)
|
18
|
+
expect(seq).to eq expected
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
let(:generator) { described_class.new(options) }
|
23
|
+
|
24
|
+
describe '#sequence' do
|
25
|
+
context '20131230 to 20140101' do
|
26
|
+
let(:from) { '20131230' }
|
27
|
+
let(:to) { '20140101' }
|
28
|
+
let(:options) { { format: '%Y%m%d' } }
|
29
|
+
let(:expected) { %w(20131230 20131231 20140101) }
|
30
|
+
it_behaves_like 'generate date sequence'
|
31
|
+
end
|
16
32
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
33
|
+
context '2013-12-30 to 2014-01-01' do
|
34
|
+
let(:from) { '2013-12-30' }
|
35
|
+
let(:to) { '2014-01-01' }
|
36
|
+
let(:options) { { format: '%Y-%m-%d' } }
|
37
|
+
let(:expected) { %w(2013-12-30 2013-12-31 2014-01-01) }
|
38
|
+
it_behaves_like 'generate date sequence'
|
39
|
+
end
|
23
40
|
end
|
24
41
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
42
|
+
describe '#sequence_str' do
|
43
|
+
context '20131230 to 20140101' do
|
44
|
+
let(:from) { '20131230' }
|
45
|
+
let(:to) { '20140101' }
|
46
|
+
let(:options) { { format: '%Y%m%d' } }
|
47
|
+
let(:expected) { "20131230\n20131231\n20140101" }
|
48
|
+
it_behaves_like 'generate date sequence_str'
|
49
|
+
end
|
50
|
+
|
51
|
+
context '2013/12/30 to 2014/01/01' do
|
52
|
+
let(:from) { '2013/12/30' }
|
53
|
+
let(:to) { '2014/01/01' }
|
54
|
+
let(:options) { { format: '%Y/%m/%d', sep: "\t" } }
|
55
|
+
let(:expected) { "2013/12/30\t2013/12/31\t2014/01/01" }
|
56
|
+
it_behaves_like 'generate date sequence_str'
|
57
|
+
end
|
31
58
|
end
|
32
59
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dateseq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- masa21kik
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.2.33
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.2.33
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
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
|
description: Generate date sequence like seq command
|
56
70
|
email:
|
57
71
|
- masa21kik@gmail.com
|
@@ -60,6 +74,7 @@ executables:
|
|
60
74
|
extensions: []
|
61
75
|
extra_rdoc_files: []
|
62
76
|
files:
|
77
|
+
- ".github/workflows/test.yml"
|
63
78
|
- ".gitignore"
|
64
79
|
- ".rspec"
|
65
80
|
- ".travis.yml"
|
@@ -77,7 +92,7 @@ homepage: ''
|
|
77
92
|
licenses:
|
78
93
|
- MIT
|
79
94
|
metadata: {}
|
80
|
-
post_install_message:
|
95
|
+
post_install_message:
|
81
96
|
rdoc_options: []
|
82
97
|
require_paths:
|
83
98
|
- lib
|
@@ -92,9 +107,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
107
|
- !ruby/object:Gem::Version
|
93
108
|
version: '0'
|
94
109
|
requirements: []
|
95
|
-
|
96
|
-
|
97
|
-
signing_key:
|
110
|
+
rubygems_version: 3.3.7
|
111
|
+
signing_key:
|
98
112
|
specification_version: 4
|
99
113
|
summary: Generate date sequence like seq command
|
100
114
|
test_files:
|