datetime_helper 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDFmZGQ5MjZiYmFiNWYzYWMxMjM1YTBjYmM1Y2VhMTJmZDY4MGExYg==
4
+ NmZjYmI4OWEwZTBhYzk4ZDBiYTVmZTBmZDhhZGM3N2NiZDlkZTU0OQ==
5
5
  data.tar.gz: !binary |-
6
- MGM5MTFhOWMzYjdhYTVjMGVkZjcxNDdiN2E0ODY4MjA2MTc2MDg4Zg==
6
+ NTJlOGNmYzUzNTU3NTQ4ZWUyNDg3MDMzY2QzZTRiNDU0MTQ3NGEwZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjczNzkyNDhmMTUwYzAyYTY4ZDdjNTg4MTkxZGRiZWZjOWM3NTIxYWMyM2Q0
10
- Y2NiZjMzYzEyODVkYmRjNzYzOWExZDM3ZjNlMGVkMTdkOTQ3ZTkxMzM0YjZl
11
- ZmQxY2QzYjgzMTQ0ZjNjODM4OTgwODJhZTg2NGM2NWFmZmU0ZTA=
9
+ NzFiY2VlODg2YzdhNzQ2NmZmNzY0ODRlMDIyODcyNWRlMjkyZmU0NjhiOWVk
10
+ NjNjNGFmMGU5MWYzZjdjNmU0Yzg1ZDQ3MmRlMmJlNzJhYjIxZjQwNDgwMjY0
11
+ NGYyMzZjNTVhNWI3ZDYzNWIxZWY4NWYzOTkwNTA1YTgzZTg5Y2Y=
12
12
  data.tar.gz: !binary |-
13
- YWMwMzNhY2M1OTdmOTI1OTU3MjcwODA1MmFiYjkxY2RkZGEyYzJlMmVjYzNl
14
- OTFkNTAwYTdmNTAxOTc0MmI2Mzk4ZmZjNmMwM2RjZGY0MjI0ODUzYWZmNThl
15
- MDFkZmMwZmQyZTEyMDM2MmRlNWQ4ZmM2N2QxYjJlMzRjZTI0OGM=
13
+ OGQ1MWRhNjZlNjMyYzFiMTFiY2ViMTNiMWViZWNjZjA0YTI1Y2ZkZjE5Yzdi
14
+ NmIwMWRmOTY1YjhhNmE5ZTAzMzQyYjJhYmUxYTRiOTM4NGI5NWNlM2VmMGZk
15
+ MDMyZjRkNmZkNzdmYTkzYTg4ZDAzNmJjNjliMmJlNzkyMjQ5Y2U=
data/README.md CHANGED
@@ -4,7 +4,7 @@ A collection of useful utilities for projects that have to deal with dates, time
4
4
 
5
5
  ## Features
6
6
 
7
- 1. A base method called `is_zulu_time?`,
7
+ 1. A base method called `is_zulu_time?`,
8
8
  2. `rspec` matchers `be_zulu_time`, `be_an_iso_formatted_date`, and `be_an_iso_formatted_time`
9
9
  3. An `ActiveModel` validator called `zulu_time`, and
10
10
  4. An `ActiveModel::Serializer` helper method called `enforce_zulu_time`.
@@ -88,7 +88,7 @@ This will verify that a `Time` is supplied at `UTC+0`,
88
88
  or that a `DateTime` has `.zone == "+00:00"`,
89
89
  or that a `String` is in Zulu Time format.
90
90
 
91
- ### Enforcing `ActiveModel::Serializer` Zulu Time string formats
91
+ ### Enforcing `ActiveModel::Serializer` Zulu Time and iso8601 Date String Formats
92
92
 
93
93
  First be sure you `require 'datetime_helper/active_model_serialiser'`
94
94
 
@@ -98,6 +98,7 @@ Then you can put this in your serialisers:
98
98
  extend DatetimeHelper::Serialisers
99
99
 
100
100
  enforce_zulu_time :updated_at
101
+ enforce_iso8601_date :enable_date
101
102
  ```
102
103
 
103
104
  or if you have a bunch of 'em
@@ -106,9 +107,11 @@ or if you have a bunch of 'em
106
107
  extend DatetimeHelper::Serialisers
107
108
 
108
109
  %w(updated_at deleted_at).each { |attribute| enforce_zulu_time attribute }
110
+ %w(date enable_date).each { |attribute| enforce_iso8601_date attribute }
109
111
  ```
110
112
 
111
- This will ensure that the serialised output is a proper Zulu Time formatted string.
113
+ This will ensure that the serialised output is a proper Zulu time formatted
114
+ string and iso8601 formatted date string.
112
115
 
113
116
  ## To build
114
117
 
@@ -143,3 +146,4 @@ The `Datetime Helper` is © 2015 Westfield Labs and is available for use under t
143
146
  |`0.0.3`| Added the `ActiveModel::Serializer` helper |
144
147
  |`1.0.0`| Cleaned up for first official release |
145
148
  |`1.0.1`| Enhanced matchers, and validator |
149
+ |`1.0.2`| Add iso8601 date format for serializers |
@@ -1,3 +1,3 @@
1
1
  require 'active_model_serializers'
2
2
  require_relative "../datetime_helper"
3
- require_relative "serialisers/zulu_time_active_model_serialiser_helper"
3
+ require_relative "serialisers/active_model_serialiser_helper"
@@ -0,0 +1,19 @@
1
+ module DatetimeHelper
2
+ module Serialisers
3
+
4
+ # Enforces that a DateTime is serialised as zulu time format
5
+ def enforce_zulu_time(attribute)
6
+ define_method(attribute) do
7
+ object.send(attribute).utc.iso8601 unless object.send(attribute).nil?
8
+ end
9
+ end
10
+
11
+ # Enforces that a Date is serialized as iso8601 format
12
+ def enforce_iso8601_date(attribute)
13
+ define_method(attribute) do
14
+ object.send(attribute).iso8601 unless object.send(attribute).nil?
15
+ end
16
+ end
17
+
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module DatetimeHelper
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -3,22 +3,25 @@ require "datetime_helper/active_model_serialiser"
3
3
 
4
4
  class TestSerialiser < ActiveModel::Serializer
5
5
  extend DatetimeHelper::Serialisers
6
- attributes :updated_at
7
-
6
+ attributes :updated_at, :enabled_date
7
+
8
8
  enforce_zulu_time :updated_at
9
+ enforce_iso8601_date :enabled_date
9
10
  end
10
11
 
11
12
  class TestItemNoTime
12
13
  include ActiveModel::SerializerSupport
13
- attr_reader :updated_at
14
+ attr_reader :updated_at, :enabled_date
14
15
  def initialize(options = {})
15
16
  @updated_at = nil
17
+ @enabled_date = nil
16
18
  end
17
19
  end
18
20
 
19
21
  class TestItem < TestItemNoTime
20
22
  def initialize(options = {})
21
23
  @updated_at = options[:updated_at] || Time.now.utc
24
+ @enabled_date = options[:enabled_date] || Time.now.to_date
22
25
  end
23
26
  end
24
27
 
@@ -28,12 +31,12 @@ describe DatetimeHelper::Serialisers do
28
31
 
29
32
  context 'with a UTC time' do
30
33
  let(:item) { TestItem.new }
31
- it { expect(subject[:updated_at]).to be_zulu_time}
34
+ it { expect(subject[:updated_at]).to be_zulu_time }
32
35
  end
33
36
 
34
37
  context 'with a local time' do
35
- let(:item) { TestItem.new updated_at: Time.now.getlocal }
36
- it { expect(subject[:updated_at]).to be_zulu_time}
38
+ let(:item) { TestItem.new updated_at: Time.now.getlocal }
39
+ it { expect(subject[:updated_at]).to be_zulu_time }
37
40
  end
38
41
 
39
42
  context 'with a nil time' do
@@ -41,4 +44,15 @@ describe DatetimeHelper::Serialisers do
41
44
  it { expect(subject[:updated_at]).to be_nil}
42
45
  end
43
46
 
47
+ context 'with a date' do
48
+ let(:item) { TestItem.new }
49
+
50
+ it { expect(subject[:enabled_date]).to be_an_iso_formatted_date }
51
+ end
52
+
53
+ context 'with a nil date' do
54
+ let(:item) { TestItemNoTime.new }
55
+ it { expect(subject[:enabled_date]).to be_nil}
56
+ end
57
+
44
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datetime_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - davesag
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-13 00:00:00.000000000 Z
11
+ date: 2015-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -117,13 +117,13 @@ files:
117
117
  - lib/datetime_helper/matchers/iso_date_and_time_rspec_matchers.rb
118
118
  - lib/datetime_helper/matchers/zulu_time_rspec_matcher.rb
119
119
  - lib/datetime_helper/rspec.rb
120
- - lib/datetime_helper/serialisers/zulu_time_active_model_serialiser_helper.rb
120
+ - lib/datetime_helper/serialisers/active_model_serialiser_helper.rb
121
121
  - lib/datetime_helper/validators/zulu_time_active_model_validator.rb
122
122
  - lib/datetime_helper/version.rb
123
123
  - spec/datetime_helper_spec.rb
124
124
  - spec/matchers/iso_date_and_time_rspec_matcher_spec.rb
125
125
  - spec/matchers/zulu_time_rspec_matcher_spec.rb
126
- - spec/serialisers/zulu_time_active_model_serialiser_helper_spec.rb
126
+ - spec/serialisers/active_model_serialiser_helper_spec.rb
127
127
  - spec/spec_helper.rb
128
128
  - spec/validators/zulu_time_active_model_validator_spec.rb
129
129
  homepage: https://github.com/westfieldlabs/datetime_helper
@@ -155,6 +155,6 @@ test_files:
155
155
  - spec/datetime_helper_spec.rb
156
156
  - spec/matchers/iso_date_and_time_rspec_matcher_spec.rb
157
157
  - spec/matchers/zulu_time_rspec_matcher_spec.rb
158
- - spec/serialisers/zulu_time_active_model_serialiser_helper_spec.rb
158
+ - spec/serialisers/active_model_serialiser_helper_spec.rb
159
159
  - spec/spec_helper.rb
160
160
  - spec/validators/zulu_time_active_model_validator_spec.rb
@@ -1,13 +0,0 @@
1
- # Enforces that a DateTime is serialised as zulu time
2
-
3
- module DatetimeHelper
4
- module Serialisers
5
-
6
- def enforce_zulu_time(attribute)
7
- define_method(attribute) do
8
- object.send(attribute).utc.iso8601 unless object.send(attribute).nil?
9
- end
10
- end
11
-
12
- end
13
- end