pencil_pusher 0.0.7 → 0.0.8

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: 288c673425392e14cf9da525a876df644dbd8086
4
- data.tar.gz: 1e585ffe8ff58327274516c984cdbe27ef726ec6
3
+ metadata.gz: eccdb3dc3c5fe48726dc850bbf8dad5bffaa6130
4
+ data.tar.gz: 030fcc308e41f871c467a7c91a4559af3e930157
5
5
  SHA512:
6
- metadata.gz: 41c89b223f9c1642861089e06b9c605f21e74b1eba6522724fc3517ad7f84cda051d4cf57ccdc3b73fcce36f802fc41de68d104808ea219f1365e199a23871ec
7
- data.tar.gz: 0ffd054ad1960efec16e6dbb81a894b6e45ab014d94d417b95005479971fd2ea8dc9f7c2a3f8f675ebfff9d2afbf02cac070956a92d98363a4441727a3e02935
6
+ metadata.gz: e6b3c394a27bd3f543af1dc757cc6ab821aafc11e5eec7d9bde35ce0ecb983b588345c5bdfc37fa99f737228e856ddbe82fe36d53ad5a32e810a9e6c2f2d3785
7
+ data.tar.gz: 9c5d850074a59ac0392fc7502d693d1dc850acef0f4975e190617ec8baf5d53422be1253f1db402f1c15fc46df2c159ddcd34c29ae443ee05b2b17cb6a12155f
@@ -0,0 +1,35 @@
1
+ module PencilPusher
2
+ module Validations
3
+ class OptionalDateTimeValidator < ActiveModel::EachValidator
4
+ def validate_each(model, attribute, value)
5
+ @model = model
6
+ @attribute = attribute
7
+
8
+ return if blank?(value)
9
+ coerce_date(value)
10
+ end
11
+
12
+ private
13
+
14
+ attr_reader :model, :attribute
15
+
16
+ def messages
17
+ @messages ||= options.fetch(:messages)
18
+ end
19
+
20
+ def coerce_date(value)
21
+ Date.strptime(value, options.fetch(:format))
22
+ rescue ArgumentError
23
+ append_invalid_message
24
+ end
25
+
26
+ def blank?(value)
27
+ value.nil? || value.strip == ''
28
+ end
29
+
30
+ def append_invalid_message
31
+ model.errors[attribute] << messages.fetch(:invalid)
32
+ end
33
+ end
34
+ end
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pencil_pusher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myles Megyesi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-21 00:00:00.000000000 Z
12
+ date: 2013-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -100,6 +100,7 @@ files:
100
100
  - lib/pencil_pusher/have_required_choice_field.rb
101
101
  - lib/pencil_pusher/have_required_field.rb
102
102
  - lib/pencil_pusher/have_required_text_field.rb
103
+ - lib/pencil_pusher/validations/optional_date_time_validator.rb
103
104
  - lib/pencil_pusher/validations/time_validator.rb
104
105
  - lib/pencil_pusher/validations/date_time_validator.rb
105
106
  - lib/pencil_pusher/shared_fields.rb