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