dateseq 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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: