date_period_parser 0.1.1 → 0.1.2

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
2
  SHA1:
3
- metadata.gz: fff42959392de70cbf672c66f173f184875e6ccc
4
- data.tar.gz: 62a0d643d3969e188eae4f9f6a8c9cf4efdf261c
3
+ metadata.gz: a2cc2b66070f88f331001dd3b95385080879170b
4
+ data.tar.gz: df96c926644370e4b15a5a340cc47e3bcefb50ab
5
5
  SHA512:
6
- metadata.gz: 0b452fb2fecc484d1c57448afdaaadac74ea963cbc0693a86db999d483a681cb169db44d03b7495b897765784efb0a7812cc3c94832b35896acbe82a676be67b
7
- data.tar.gz: d9d383b619362e45485f246cdf85d97dd6061be836dc174a2a10ca98b54c3daa72d1da52f3a0e6ed415afe2b88e5e89f09e7e80ec1955ab5c96a42514ede8242
6
+ metadata.gz: ba8a5a733a4a683a4f4a3ede9ac33fe97c81350cd69ec5079bc74d36ebc1e5d5457b6cf06528c2ff9ccf6f097e0d46a8ecc4b28580a4b160440d349fb6a8e005
7
+ data.tar.gz: da0ed0c9deb1bd8290d27ba9582329ad30c1d590a1562f288fe0a11c6b9b474593651abad10781ec29321879ae2fe703537886119d0354a85746f0f6df3d4f74
data/.travis.yml CHANGED
@@ -1,4 +1,10 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.2.2
4
+ - 2.1.0
5
+ - 2.0.0
6
+ - 1.9.3
7
+ - jruby-19mode
8
+ - ruby-head
9
+ - jruby-head
4
10
  before_install: gem install bundler -v 1.10.3
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ ![build](https://travis-ci.org/hasclass/date_period_parser.svg?branch=master)
2
+
1
3
  # DatePeriodParser
2
4
 
3
5
  Parse a date-like string and returns it's start and end DateTime.
@@ -5,16 +7,21 @@ Parse a date-like string and returns it's start and end DateTime.
5
7
  This can be used to pass date-periods for URL parameters or query strings, e.g. filtering records in a given period.
6
8
 
7
9
  ```ruby
10
+ # Example useage in a rails controller
11
+
8
12
  class PostsController
9
13
  # GET /posts?period=2015-08
10
14
  def index
11
15
  date_range = DatePeriodParser.range(params["period"])
16
+ date_range ||= DatePeriodParser.range("today") # default
12
17
  @posts = Posts.where(created_at: date_range)
13
18
  end
14
19
  end
15
20
  ```
16
21
 
17
- It is *not* meant to be a natural language date parser like the [https://github.com/mojombo/chronic](chronic gem).
22
+ It is **not** a natural language date parser like the [chronic gem](https://github.com/mojombo/chronic).
23
+
24
+ Tested with all common Rubies, 1.9.3 .. 2.2, JRuby (1.9 mode). For details check .travis.yml
18
25
 
19
26
  ## Examples
20
27
 
data/Rakefile CHANGED
@@ -1,6 +1,9 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
2
 
4
- RSpec::Core::RakeTask.new(:spec)
3
+ require 'rake/testtask'
5
4
 
6
- task :default => :spec
5
+ Rake::TestTask.new do |t|
6
+ t.pattern = "spec/*_spec.rb"
7
+ end
8
+
9
+ task default: :test
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_development_dependency "bundler", "~> 1.10"
32
32
  spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency "minitest"
33
34
  end
@@ -1,3 +1,3 @@
1
1
  module DatePeriodParser
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -8,69 +8,69 @@ describe DatePeriodParser do
8
8
  end
9
9
 
10
10
  it '2014' do
11
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0000"), parse("2014").first
12
- assert_equal DateTime.parse("2014-12-31T23:59:59.999+0000"), parse("2014").last
11
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0000"), parse("2014").first
12
+ assert_equal DateTime.new(2014,12,31, 23, 59, 59.999, "+0000"), parse("2014").last
13
13
  end
14
14
 
15
15
  it '2014-01' do
16
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0000"), parse("2014-01").first
17
- assert_equal DateTime.parse("2014-01-31T23:59:59.999+0000"), parse("2014-01").last
16
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0000"), parse("2014-01").first
17
+ assert_equal DateTime.new(2014, 1,31, 23, 59, 59.999, "+0000"), parse("2014-01").last
18
18
  end
19
19
 
20
20
  it '2014-02' do
21
- assert_equal DateTime.parse("2014-02-01T00:00:00.000+0000"), parse("2014-02").first
22
- assert_equal DateTime.parse("2014-02-28T23:59:59.999+0000"), parse("2014-02").last
21
+ assert_equal DateTime.new(2014, 2, 1, 0, 0, 0.000, "+0000"), parse("2014-02").first
22
+ assert_equal DateTime.new(2014, 2,28, 23, 59, 59.999, "+0000"), parse("2014-02").last
23
23
 
24
- assert_equal DateTime.parse("2012-02-01T00:00:00.000+0000"), parse("2012-02").first
25
- assert_equal DateTime.parse("2012-02-29T23:59:59.999+0000"), parse("2012-02").last
24
+ assert_equal DateTime.new(2012, 2, 1, 0, 0, 0.000, "+0000"), parse("2012-02").first
25
+ assert_equal DateTime.new(2012, 2,29, 23, 59, 59.999, "+0000"), parse("2012-02").last
26
26
  end
27
27
 
28
28
  it '2014-12' do
29
- assert_equal DateTime.parse("2014-12-01T00:00:00.000+0000"), parse("2014-12").first
30
- assert_equal DateTime.parse("2014-12-31T23:59:59.999+0000"), parse("2014-12").last
29
+ assert_equal DateTime.new(2014,12, 1, 0, 0, 0.000, "+0000"), parse("2014-12").first
30
+ assert_equal DateTime.new(2014,12,31, 23, 59, 59.999, "+0000"), parse("2014-12").last
31
31
  end
32
32
 
33
33
  it '2014-08' do
34
- assert_equal DateTime.parse("2014-08-01T00:00:00.000+0000"), parse("2014-08").first
35
- assert_equal DateTime.parse("2014-08-31T23:59:59.999+0000"), parse("2014-08").last
34
+ assert_equal DateTime.new(2014, 8, 1, 0, 0, 0.000, "+0000"), parse("2014-08").first
35
+ assert_equal DateTime.new(2014, 8,31, 23, 59, 59.999, "+0000"), parse("2014-08").last
36
36
  end
37
37
 
38
38
  it '2014-01-01' do
39
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0000"), parse("2014-01-01").first
40
- assert_equal DateTime.parse("2014-01-01T23:59:59.999+0000"), parse("2014-01-01").last
39
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0000"), parse("2014-01-01").first
40
+ assert_equal DateTime.new(2014, 1, 1, 23, 59, 59.999, "+0000"), parse("2014-01-01").last
41
41
  end
42
42
 
43
43
  it '2014-12-31' do
44
- assert_equal DateTime.parse("2014-12-31T00:00:00.000+0000"), parse("2014-12-31").first
45
- assert_equal DateTime.parse("2014-12-31T23:59:59.999+0000"), parse("2014-12-31").last
44
+ assert_equal DateTime.new(2014,12,31, 0, 0, 0.000, "+0000"), parse("2014-12-31").first
45
+ assert_equal DateTime.new(2014,12,31, 23, 59, 59.999, "+0000"), parse("2014-12-31").last
46
46
  end
47
47
 
48
48
  it 'today' do
49
- today = Date.today
50
- assert_equal DateTime.parse("#{today}T00:00:00.000+0000"), parse("today").first
51
- assert_equal DateTime.parse("#{today}T23:59:59.999+0000"), parse("today").last
49
+ t = Date.today
50
+ assert_equal DateTime.new(t.year, t.month, t.day, 0, 0, 0.000, "+0000"), parse("today").first
51
+ assert_equal DateTime.new(t.year, t.month, t.day,23,59,59.999, "+0000"), parse("today").last
52
52
  end
53
53
 
54
54
  describe "with offsets" do
55
55
  it '2014' do
56
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0700"), parse("2014", "+0700").first
57
- assert_equal DateTime.parse("2014-12-31T23:59:59.999+0700"), parse("2014", "+0700").last
56
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0700"), parse("2014", "+0700").first
57
+ assert_equal DateTime.new(2014,12,31, 23, 59, 59.999, "+0700"), parse("2014", "+0700").last
58
58
  end
59
59
 
60
60
  it '2014-01' do
61
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0700"), parse("2014-01", "+7").first
62
- assert_equal DateTime.parse("2014-01-31T23:59:59.999+0700"), parse("2014-01", "+7").last
61
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0700"), parse("2014-01", "+7").first
62
+ assert_equal DateTime.new(2014, 1,31, 23, 59, 59.999, "+0700"), parse("2014-01", "+7").last
63
63
  end
64
64
 
65
65
  it '2014-01-01' do
66
- assert_equal DateTime.parse("2014-01-01T00:00:00.000+0700"), parse("2014-01-01", "+7").first
67
- assert_equal DateTime.parse("2014-01-01T23:59:59.999+0700"), parse("2014-01-01", "+7").last
66
+ assert_equal DateTime.new(2014, 1, 1, 0, 0, 0.000, "+0700"), parse("2014-01-01", "+7").first
67
+ assert_equal DateTime.new(2014, 1, 1, 23, 59, 59.999, "+0700"), parse("2014-01-01", "+7").last
68
68
  end
69
69
 
70
70
  it 'today' do
71
- today = Date.today
72
- assert_equal DateTime.parse("#{today}T00:00:00.000+0700"), parse("today", "+7").first
73
- assert_equal DateTime.parse("#{today}T23:59:59.999+0700"), parse("today", "+7").last
71
+ t = Date.today
72
+ assert_equal DateTime.new(t.year, t.month, t.day, 0, 0, 0.000, "+0700"), parse("today", "+7").first
73
+ assert_equal DateTime.new(t.year, t.month, t.day, 23, 59, 59.999, "+0700"), parse("today", "+7").last
74
74
  end
75
75
  end
76
76
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: date_period_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - hasclass
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Parse a date-like string and returns it's start and end DateTime.
42
56
  email:
43
57
  - sebi.burkhard@gmail.com