Sha256: 054b70928f152df17f769a2011ded641d800f28a57269772b791b6a94c4c150f
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
# encoding: utf-8 require "active_model" module ServiceObjects module Helpers # Features for service attributes validation # # @note # A target class should **include** the module # # @see http://apidock.com/rails/v4.1.8/ActiveModel/Validations # ActiveModel::Validations module Validations # @!method valid? # Runs validations and checks if the object is valid # @return [Boolean] # Raises <tt>ServiceObjects::Invalid</tt> when {#valid?} method fails # # Mutates the current object by populating its messages # with errors, added by {#valid?} # # @raise [ServiceObjects::Invalid] # when a validation fails # # @return [self] (not changed) # when a validation passes def validate! return self if valid? __errors__.each { |text| add_message text: text, type: "error" } fail Invalid.new(self) end private # @!parse include ServiceObjects::Helpers::Messages # @!parse include ActiveModel::Validations def self.included(klass) klass.include ActiveModel::Validations, Messages super end def __errors__ errors.messages.values.flatten end end # module Validations end # module Helpers end # module ServiceObjects
Version data entries
3 entries across 3 versions & 1 rubygems