pencil_pusher 0.0.3 → 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
2
  SHA1:
3
- metadata.gz: e65dd4877f82625a813ff89e86e542c490cc2733
4
- data.tar.gz: 30cac5b504ff29b834227d850a87aa89c2f1f004
3
+ metadata.gz: 07c4fe56c3dc8d165527f6a247bb2ec518508f79
4
+ data.tar.gz: 3b9b5d4f2286f3fb6a0b3924a0c9a762a920da8d
5
5
  SHA512:
6
- metadata.gz: e89544cc94a70bc59cd4696c1dd7e61ded0bf0e8803dcf8d99ffd6cf0be06becf053e6dd8b24638e5dfd8d63db478cd7e8e0f0e29c36f9163848306c5d44c9ad
7
- data.tar.gz: 8df150739c05735a928d93627e0fabc8aa7be8484a85eb186df6ec98aa2c5997f2f32047fcc6ea2da27f002903db1a294a662b71959f7095443f28a773772a70
6
+ metadata.gz: e353c05beb2c569ac6e0a1b18907eaa470f4126ab95b7654731b60ecc45d91451a65c6050e64406ccfc42eec48a7dc73f4cb946113efd4d28c0b6b26cc12a9ff
7
+ data.tar.gz: d3b979cabb34f948811b8f5885e998af582641cfca70c1d5b894f1a84e9453a3b6c3f6b14441161127a88f39d710f60521820fe1665d51d60b14ff55b615f08a
@@ -0,0 +1,22 @@
1
+ require 'pencil_pusher/validations/date_time_validator'
2
+ require 'pencil_pusher/virtus/coercer/date_time'
3
+
4
+ module PencilPusher
5
+ module DateTimeFields
6
+ def required_date_time_field(options={})
7
+ field_name = options.fetch(:field_name)
8
+ format = options.fetch(:format)
9
+
10
+ attribute field_name, PencilPusher::Virtus::Coercer::DateTime, format: format
11
+
12
+ validates field_name,
13
+ 'pencil_pusher/validations/date_time' => {
14
+ format: format,
15
+ messages: {
16
+ blank: options.fetch(:blank_message),
17
+ invalid: options.fetch(:invalid_message)
18
+ }
19
+ }
20
+ end
21
+ end
22
+ end
@@ -10,6 +10,5 @@ module PencilPusher
10
10
  only_integer: true,
11
11
  message: invalid_message}
12
12
  end
13
-
14
13
  end
15
14
  end
@@ -5,8 +5,8 @@ module PencilPusher
5
5
  @model = model
6
6
  @attribute = attribute
7
7
 
8
- if value.nil?
9
- add_error
8
+ if blank?(value)
9
+ append_blank_message
10
10
  else
11
11
  coerce_date(value)
12
12
  end
@@ -16,14 +16,26 @@ module PencilPusher
16
16
 
17
17
  attr_reader :model, :attribute
18
18
 
19
+ def messages
20
+ @messages ||= options.fetch(:messages)
21
+ end
22
+
19
23
  def coerce_date(value)
20
24
  Date.strptime(value, options.fetch(:format))
21
25
  rescue ArgumentError
22
- add_error
26
+ append_invalid_message
27
+ end
28
+
29
+ def blank?(value)
30
+ value.nil? || value.strip == ''
31
+ end
32
+
33
+ def append_blank_message
34
+ model.errors[attribute] << messages.fetch(:blank)
23
35
  end
24
36
 
25
- def add_error
26
- model.errors[attribute] << options.fetch(:message)
37
+ def append_invalid_message
38
+ model.errors[attribute] << messages.fetch(:invalid)
27
39
  end
28
40
  end
29
41
  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.3
4
+ version: 0.0.4
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-08 00:00:00.000000000 Z
12
+ date: 2013-10-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -102,6 +102,7 @@ files:
102
102
  - lib/pencil_pusher/validations/date_time_validator.rb
103
103
  - lib/pencil_pusher/shared_fields.rb
104
104
  - lib/pencil_pusher/have_required_float_field.rb
105
+ - lib/pencil_pusher/date_time_fields.rb
105
106
  - lib/pencil_pusher/form.rb
106
107
  - lib/pencil_pusher/have_required_int_field.rb
107
108
  homepage: