lib/paradocs/policies.rb in paradocs-1.1.4 vs lib/paradocs/policies.rb in paradocs-1.1.5
- old
+ new
@@ -3,11 +3,11 @@
module Paradocs
module Policies
class Format < Paradocs::BasePolicy
attr_reader :message
- def initialize(fmt, msg = "invalid format")
+ def initialize(fmt, msg="invalid format")
@message = msg
@fmt = fmt
end
def eligible?(value, key, payload)
@@ -16,15 +16,26 @@
def validate(value, key, payload)
!payload.key?(key) || !!(value.to_s =~ @fmt)
end
end
+
+ class Split < Paradocs::BasePolicy
+ def initialize(delimiter=/\s*,\s*/)
+ @delimiter = delimiter
+ end
+
+ def coerce(v, *)
+ v.kind_of?(Array) ? v : v.to_s.split(@delimiter)
+ end
+ end
end
# Default validators
EMAIL_REGEXP = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i.freeze
Paradocs.policy :format, Policies::Format
+ Paradocs.policy :split, Policies::Split
Paradocs.policy :email, Policies::Format.new(EMAIL_REGEXP, 'invalid email')
Paradocs.policy :noop do
eligible do |value, key, payload|
true