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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 28cb4066450d688e1fb21dd28d4409aea7ea26b7
4
- data.tar.gz: 8d199e6f3727bedd7c06a693500052063f79045f
2
+ SHA256:
3
+ metadata.gz: 3a181e21b26cb80b06328a19ca5a8b01709556b01e5840dd653d552da68d15db
4
+ data.tar.gz: '0586f2a9e65c5463a12acaddbff677b0a8eb48aecf20cc309f013a57db9df305'
5
5
  SHA512:
6
- metadata.gz: b478b828e3fdf5bdfc2d95b82c3fe6ff0a211e88590622145d5bcb2805bee5e3ee6d66ffed5ffb1240ba19962501051900b81d5c1b7e309261767d9354cee5ef
7
- data.tar.gz: 111640127506e4767d0298a4380a2a7661b9fe067a6f7c821acd001ea048dcb063fa3016c63206b5d39b357e0233c4daba5caf0070246cfc11a0b37d84b5f969
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', '~> 1.5'
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
@@ -1,4 +1,4 @@
1
1
  # Date Sequence
2
2
  module Dateseq
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.4'
4
4
  end
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.upto(to).map do |date|
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
- let(:generator) { Dateseq::Generator.new(options) }
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
- context '20131230 to 20140101' do
18
- let(:from) { '20131230' }
19
- let(:to) { '20140101' }
20
- let(:options) { { format: '%Y%m%d' } }
21
- let(:expected) { %w(20131230 20131231 20140101) }
22
- it_behaves_like 'generate date sequence'
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
- context '2013-12-30 to 2014-01-01' do
26
- let(:from) { '2013-12-30' }
27
- let(:to) { '2014-01-01' }
28
- let(:options) { { format: '%Y-%m-%d' } }
29
- let(:expected) { %w(2013-12-30 2013-12-31 2014-01-01) }
30
- it_behaves_like 'generate date sequence'
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
@@ -1,2 +1,7 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_filter '/vendor/'
4
+ end
5
+
1
6
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
7
  require 'dateseq'
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.2
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: 2014-06-03 00:00:00.000000000 Z
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: '1.5'
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: '1.5'
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
- rubyforge_project:
96
- rubygems_version: 2.2.0
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: